共用方式為


在篩選或函式驅動程式中失敗系統Query-Power IRP

不是裝置電源原則擁有者的篩選或函式驅動程式) (,如果下列任一項為 true, IRP_MN_QUERY_POWER 要求可能會失敗:

  • 裝置已啟用喚醒,而要求的系統電源狀態比 SystemWake的值低,指定裝置可以喚醒系統的最低電源狀態。 例如,可從 S2 喚醒系統的裝置,但無法從 S3 喚醒系統,會失敗 S3 的查詢,但會成功查詢 S2。

  • 輸入對應至要求狀態的裝置電源狀態,會強制驅動程式放棄會遺失資料的作業,例如開啟的數據機連線。 驅動程式很少會因為這個原因而失敗查詢;在大部分情況下,應用程式會處理這類情況。

若要讓系統電源狀態 的IRP_MN_QUERY_POWER 要求失敗,驅動程式應採取下列步驟:

  1. 呼叫 PoStartNextPowerIrp 以指出驅動程式已準備好處理下一個電源 IRP。 (Windows Server 2003、Windows XP 和 Windows 2000 僅)

  2. Irp-IoStatus.Status > 設定為失敗狀態,並呼叫 IoCompleteRequest,並指定IO_NO_INCREMENT。 請勿將 IRP 進一步傳遞至裝置堆疊。

  3. 呼叫 IoReleaseRemoveLock 以釋放先前取得的鎖定。

  4. 其 DispatchPower 常式傳回失敗狀態。