次の方法で共有


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 の詳細については、ディスク設定 を参照してください。
  • 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 を含む)

関連項目

AtaPortGetUncachedExtension