次の方法で共有


EVT_HIDSPICX_NOTIFY_POWERDOWN コールバック関数 (hidspicx.h)

EvtHidspicxNotifyPowerdown コールバック関数は、デバイスが低電力状態に移行しようとしているときに通知を受け取るために、クライアント ドライバーによって実装されます。

構文

EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;

NTSTATUS EvtHidspicxNotifyPowerdown(
  WDFDEVICE Device,
  BOOLEAN ArmForWake
)
{...}

パラメーター

Device

WdfDeviceCreate の以前の呼び出しから取得したクライアント ドライバーのフレームワーク デバイス オブジェクトへのハンドル。

ArmForWake

デバイスが、差し迫った電源切り替えのターゲット状態でスリープ解除を行うかどうかを示すブール値。

戻り値

電源切り替えの準備が成功したかどうかを示す NTSTATUS。 このメソッドは実行時に失敗することは想定されておらず、HidSpiCx によってデバイスが失敗する可能性があります。

注釈

クライアント ドライバーは、HidSpiCx が差し迫った電源ダウンをクライアントに通知するために使用するコールバックを実装して提供することが期待されます。 このコールバックの目的は、デバイスが低電力状態に入りそうになっているため、クラス拡張機能がデバイスからの割り込みの処理を停止するようにクライアントに指示できるようにすることです。 クライアントの D0Entry WDF コールバックへのコールバックが発生するまで、クライアントは割り込みの処理を再開しないでください。

この関数の目的は、クラス拡張機能がデバイスにコマンドを送信 SET_POWER SLEEP し、Dx IRP がクラス拡張機能とクライアント ドライバーの両方によって完了する前に、デバイスがスリープ状態に入る前に割り込みをアサートする場合を回避することです。 割り込みのハードウェア処理を停止するようにクライアントに指示する追加のコールバックがないと、ハードウェアはスリープ解除割り込みに応答して SPI 読み取りを発行します。これは、デバイスからの割り込みを処理する前にホストが最初にコマンドを送信 SET_POWER ON する必要があるプロトコルに違反します。

この関数はパッシブ IRQL のクラス拡張機能によって呼び出され、割り込み処理が終了するまでクライアントは戻りません。

デバイスがバス レベルでスリープ解除用に武装されているかどうかは、便利な方法としてクライアントに提供されるため、クライアント ドライバーはバス ドライバーでない場合にコマンドの WAIT_WAKE 監視を回避できます。

要件

要件
サポートされている最小のクライアント Windows 11
Header hidspicx.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

デバイスの電源状態

デバイスの低電力状態