次の方法で共有


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 以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー wdm.h (Wudfwdm.h を含む)
IRQL IRQL <= DISPATCH_LEVEL で呼び出されます。

関連項目

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PO_FX_DEVICE

PoFxCompleteDevicePowerNotRequired

PoFxRegisterDevice