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 |
ヘッダー | hidspicx.h |
IRQL | PASSIVE_LEVEL |