PoSetSystemWake 函式 (wdm.h)

PoSetSystemWake 例程會將指定的 IRP 標示為導致系統從睡眠狀態喚醒的 IRP。

語法

void PoSetSystemWake(
  [in, out] PIRP Irp
);

參數

[in, out] Irp

等候/喚醒 IRP 的指標。

傳回值

備註

驅動程式呼叫 PoSetSystemWake ,將 IRP_MN_WAIT_WAKE IRP 標示為從睡眠狀態喚醒系統。 根據預設,等候/喚醒 IRP 會被視為裝置喚醒 IRP。 終端機裝置在等候/喚醒鏈結中負責判斷它是否喚醒系統,並呼叫 PoSetSystemWake 進行終端機等候/喚醒 IRP。 當驅動程式在 IRP 上呼叫 PoSetSystemWake 時,它標示為已讓系統從睡眠狀態喚醒系統。 堆疊中只有一個驅動程式需要呼叫此例程,而且通常應該是驅動程式堆疊中的總線驅動程式。

等候/喚醒鏈結中的所有其他驅動程式都可以在完成時呼叫 PoGetSystemWake ,以判斷是否應該在即將完成的任何子等候/喚醒 IRP 上呼叫 PoSetSystemWake 。 這可確保系統喚醒資訊會在等候/喚醒鏈結中正常進行。

等候/喚醒 IRP 完成之後,電源管理員會檢查 IRP 是否標示為系統喚醒 IRP。 如果 IRP 標示為系統喚醒 IRP,電源管理員會將 IRP 新增至喚醒系統之裝置的內部清單。 不過,電源管理員只會追蹤處理系統的最特定裝置。 例如,如果裝置 A 新增為喚醒系統的裝置,然後新增裝置 B,也就是裝置 A 的子系,則電源管理員只會保留清單中的裝置 B,因為裝置 B 最明確。 如果電源管理員無法判斷喚醒系統的最特定裝置,電源管理員可能會追蹤報告其喚醒系統的多個裝置。

電源管理員會記錄 Windows (ETW 的事件追蹤) 事件, (全域系統通道中可檢視的事件追蹤,) 包含哪些裝置喚醒系統的相關信息。

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

PoGetSystemWake