PoSetDeviceBusyEx 函式 (wdm.h)
PoSetDeviceBusyEx 例程會通知電源管理員,與指定閑置計數器相關聯的裝置忙碌中。
語法
void PoSetDeviceBusyEx(
[in, out] PULONG IdlePointer
);
參數
[in, out] IdlePointer
閑置計數器的指標。 這是先前由 PoRegisterDeviceForIdleDetection 例程傳回的指標值。 由於 PoRegisterDeviceForIdleDetection 可能會傳回 NULL 指標,因此呼叫端必須在呼叫 PoSetDeviceBusyEx 之前先確認指標為非 NULL。
傳回值
無
備註
此例程是 PoSetDeviceBusy 宏的直接取代。 如果您要撰寫 Windows Vista 的新驅動程式程式代碼搭配 Service Pack 1 (SP1) 和更新版本的 Windows,請呼叫 PoSetDeviceBusyEx ,而不是 PoSetDeviceBusy。
驅動程式會呼叫 PoSetDeviceBusyEx 和 PoRegisterDeviceForIdleDetection 例程,以啟用其裝置的系統閒置偵測。 如果註冊閑置偵測的裝置在驅動程式指定的逾時期間保持閑置狀態,電源管理員會傳送 IRP_MN_SET_POWER 要求,讓裝置處於要求的睡眠狀態。
PoSetDeviceBusyEx 報告 裝置忙碌中,讓電源管理員可以重新啟動其閑置倒數計時。 如果裝置處於睡眠狀態, PoSetDeviceBusyEx 不會變更裝置的狀態。 也就是說,這不會讓系統傳送 IRP_MN_SET_POWER 要求來喚醒裝置。
PoSetDeviceBusyEx 是專為與閑置計數器逾時期間相對簡短的 I/O 作業搭配使用而設計。 對於可能超過此期間較長的作業,請改用 PoStartDeviceBusy 和 PoEndDeviceBusy 例程。
針對簡短 I/O 作業提出多個要求的驅動程式,應該針對它所做的每個 I/O 要求呼叫 PoSetDeviceBusyEx 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows Vista SP1 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |