次の方法で共有


システムが S0 に戻ったときのデバイス電源オンの報告

[KMDF のみに適用]

システムが低電力状態から動作 (S0) 状態に戻ると、PnP マネージャーは、システムの セットパワー IRP (IRP_MN_SET_POWER) を送信して、デバイスを動作 (D0) 状態に戻します。 WDF は、システム の セットパワー IRP を処理します。 ただし、マルチコンポーネント シナリオでは、ドライバーが電源管理フレームワーク (PoFx) に直接登録されているため、デバイスが完全にオン (D0) 電源状態への移行が完了したら、ドライバーは PoFxReportDevicePoweredOn を呼び出す必要があります。 ドライバーは、システムのセットパワー IRP が到着したときに通知を受信する WDM 前処理ルーチンを登録することによってこれを実現できます。

ドライバーは、次の手続を使用できます:

  1. WdfDeviceInitAssignWdmIrpPreprocessCallbackを呼び出して、IRP_MN_SET_POWEREvtDeviceWdmIrpPreprocess コールバック関数を登録します。 コールバックでは、ドライバーは、次のEvtDeviceD0Entryコールバックから PoFxReportDevicePoweredOnを呼び出す必要があることを示すフラグをデバイス拡張機能に設定します。
  2. EvtDeviceD0Entryでは、フラグが設定されている場合、ドライバーはフラグをクリアし、PoFxReportDevicePoweredOnを呼び出します。
  3. トライバーはEvtDeviceSelfManagedIoFlush内のフラグもチェックします。 フラグが設定されている場合、デバイスは D0 に戻ることができず、デバイスは取り外されました。 この場合、ドライバーは PoFxReportDevicePoweredOnを呼び出し、電源フレームワークで登録を解除します。