PoSetDeviceBusyEx 函式 (ntifs.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 |
目標平臺 | 普遍 |
標頭 | ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 |