PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK コールバック関数 (wdm.h)
DevicePowerNotRequiredCallback コールバック ルーチンは、デバイスが D0 電源状態を維持するために必要ないことをデバイス ドライバーに通知します。
構文
PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK PoFxDevicePowerNotRequiredCallback;
void PoFxDevicePowerNotRequiredCallback(
[in] PVOID Context
)
{...}
パラメーター
[in] Context
デバイス コンテキストへのポインター。 デバイス ドライバーは、このコンテキストを使用して、デバイスの現在の電源状態に関する情報を格納します。 デバイス ドライバーは、デバイスを電源管理フレームワーク (PoFx) に登録するためにドライバーが使用したPO_FX_DEVICE構造体の DeviceContext メンバーにこのポインターを指定しました。 このコンテキストは PoFx に対して不透明です。
戻り値
なし
解説
PoFx がドライバーの DevicePowerNotRequiredCallback ルーチンを呼び出すとき、ドライバーはまず、低電力 Dx 状態への移行を開始するか ( IRP_MN_SET_POWER 要求をデバイス スタックに送信して) D0 状態のままにするかを決定する必要があります。 次に、Dx 遷移の完了を待たずに、ドライバーは PoFxCompleteDevicePowerNotRequired ルーチンを呼び出して、ドライバーが DevicePowerNotRequiredCallback コールバックへの応答を完了したことを PoFx に通知する必要があります。 ドライバーは、DevicePowerNotRequiredCallback ルーチンが返す前または後に PoFxCompleteDevicePowerNotRequired を呼び出すことができます。
デバイスが D0 状態で、デバイス内のコンポーネントの Fx 状態またはアクティブ/アイドル状態が変わると、PoFx は、デバイスが低電力 Dx 状態に入ることができるか、D0 状態のままにしておく必要があるかを評価します。 デバイスが低電力 Dx 状態になる場合、PoFx はドライバーの DevicePowerNotRequiredCallback ルーチンを 呼び出します。
デバイスが DevicePowerNotRequiredCallback コールバックに応答して低電力 Dx 状態になるが、PoFx が後でデバイスが D0 状態に入る必要があると判断した場合、PoFx はドライバーの DevicePowerRequiredCallback ルーチンを呼び出します。 この呼び出しに応答して、デバイスは D0 状態に入る必要があります。
例
DevicePowerNotRequiredCallback コールバック ルーチンを定義するには、まず、定義するコールバック ルーチンの種類を識別する関数宣言を指定する必要があります。 Windows には、ドライバーのコールバック関数型のセットが用意されています。 コールバック関数の種類を使用して関数を宣言すると、 ドライバーのコード分析、 静的ドライバー検証ツール (SDV)、およびその他の検証ツールでエラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。
たとえば、 という名前MyDevicePowerNotRequiredCallback
の DevicePowerNotRequiredCallback コールバック ルーチンを定義するには、次のコード例に示すように、PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK型を使用します。
PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK MyDevicePowerNotRequiredCallback;
次に、コールバック ルーチンを次のように実装します。
_Use_decl_annotations_
VOID
MyDevicePowerNotRequiredCallback(
PVOID Context
)
{
// Function body
}
PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK関数の種類は、Wdm.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、必ず注釈を _Use_decl_annotations_
関数定義に追加してください。 注釈により _Use_decl_annotations_
、ヘッダー ファイル内のPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「 WDM ドライバーの関数ロール型を使用して関数を宣言する」を参照してください。 の詳細 _Use_decl_annotations_
については、「 関数の動作に注釈を付ける」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | wdm.h (Wudfwdm.h を含む) |
IRQL | IRQL <= DISPATCH_LEVELで呼び出されます。 |