IDE_HW_CONTROL コールバック関数 (irb.h)
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 の詳細については、「 ディスクの設定」を参照してください。
- コントロール アクション IdeStart を使用してミニポート ドライバー ルーチン IdeHwControl が呼び出されたとき:
- 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のパラメーター フィールドから Value フィールドを取得し、適切なミニポート ドライバー固有の電源管理アクションを実行します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | irb.h (Irb.h を含む) |