IdeHwControl ミニポート ドライバー ルーチンは、プラグ アンド プレイ (PnP) と電源イベントについてミニポート ドライバーに通知します。
注 ATA ポート ドライバーと ATA ミニポート ドライバー モデルは、将来変更されたり使用できなくなったりする可能性があります。 代わりに、Storport ドライバー を使用し、Storport ミニポート ドライバー モデル することをお勧めします。
構文
IDE_HW_CONTROL IdeHwControl;
BOOLEAN IdeHwControl(
[in] PVOID ChannelExtension,
[in] IDE_CONTROL_ACTION ControlAction,
[in, out] PVOID Parameters
)
{...}
パラメーター
[in] ChannelExtension
チャネル拡張機能へのポインター。
[in] ControlAction
実行するコントロール アクションを示す IDE_CONTROL_ACTION 型の列挙子値を格納します。
[in, out] Parameters
コントロール アクションに関連付けられているパラメーターを格納しているバッファーへのポインター。 このパラメーターには、次の表のいずれかの値を指定できます。
| コントロール アクション | パラメーター | 形容 |
|---|---|---|
| IdeStart | パラメーターは、IDE_CHANNEL_CONFIGURATION型の構造体を指します。 | ポート ドライバーがチャネルを開始していることを示します。 |
| IdeVendorDefined | パラメーターは、IDE_VENDOR_DEFINED_POWER_INFO型の構造体を指します。 | ベンダー定義の電源イベントが発生していることを示します。 |
戻り値
IdeHwControl は、操作が成功した場合 TRUE を返します。 それ以外の場合は、FALSE 返します。
備考
ポート ドライバーは、このルーチンを呼び出す前に、チャネルに未処理の I/O がないことを確認します。 ミニポート ドライバーは、システムが別の電源状態になったときに、独自の電源ポリシー メソッドを持つことができます。 これを実現するには、ミニポート ドライバーは、次の操作を行う必要があります。
- ミニポート ドライバーの INF ファイルに電源ポリシー設定スキームを追加します。 ミニポート ドライバーで定義された電源ポリシーを表示するには、GUID が必要です。 電源設定ディレクティブの詳細については、INF AddPowerSetting ディレクティブの を参照してください。 GUID の詳細については、ディスク設定 を参照してください。
- IdeHwControl ミニポート ドライバー ルーチンが、IdeStart 制御アクションで呼び出されたとき:
- ChannelConfiguration 構造体の SupportedAdvances.AdvancedChannelConfigurationSupported フィールドを確認します。
- ChannelConfiguration 構造体の AdvancedChannelConfiguration->Present.VendorDefinedPower フィールドを確認します。
- 前に示した 2 つのフィールドの値が両方とも TRUE 場合、このバージョンの ATA ポート ドライバーはベンダー定義の電源管理をサポートします。
- ベンダー定義の電源管理が ATA ポート ドライバーでサポートされている場合、ミニポート ドライバーは、AdvancedChannelConfiguration->VendorDefinedPower.ValidGuids フィールドと AdvancedChannelConfiguration->VendorDefinedPower.Guid[] フィールドを設定することで、特別な電源管理処理を登録できます (後者はミニポート ドライバーの INF ファイルの電源ポリシーの GUID である必要があります)。
- ベンダー定義の電源管理が登録されると、ミニポート ドライバーは、システムの電源スキームが変更されたときに、IdeVendorDefined コントロール アクションを使用して、IdeHwControl ルーチンへの呼び出しを受け取ることができるようになります。
- ミニポート ドライバーは、IdeVendorDefined コントロール アクションを使用して、IdeHwControl ルーチンを処理しますが、次の操作を行う必要があります。
- 構造体IDE_VENDOR_DEFINED_POWER_INFOのパラメーター フィールドの SettingGuid フィールドを、ミニポート ドライバーが登録した GUID と比較して、呼び出しがこのチャネル用であることを確認します。 GUID が一致しない場合、ミニポート ドライバーは、呼び出しを完了し、アクションを実行する必要があります。
- 構造体IDE_VENDOR_DEFINED_POWER_INFOのパラメーター フィールドから 値 フィールドを取得し、適切なミニポート ドライバー固有の電源管理アクションを実行します。
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | irb.h (Irb.h を含む) |