共用方式為


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

驅動程式會呼叫 PoSetDeviceBusyExPoRegisterDeviceForIdleDetection 例程,以啟用其裝置的系統閒置偵測。 如果註冊閑置偵測的裝置在驅動程式指定的逾時期間保持閑置狀態,電源管理員會傳送 IRP_MN_SET_POWER 要求,讓裝置處於要求的睡眠狀態。

PoSetDeviceBusyEx 報告 裝置忙碌中,讓電源管理員可以重新啟動其閑置倒數計時。 如果裝置處於睡眠狀態, PoSetDeviceBusyEx 不會變更裝置的狀態。 也就是說,這不會讓系統傳送 IRP_MN_SET_POWER 要求來喚醒裝置。

PoSetDeviceBusyEx 是專為與閑置計數器逾時期間相對簡短的 I/O 作業搭配使用而設計。 對於可能超過此期間較長的作業,請改用 PoStartDeviceBusyPoEndDeviceBusy 例程。

針對簡短 I/O 作業提出多個要求的驅動程式,應該針對它所做的每個 I/O 要求呼叫 PoSetDeviceBusyEx

規格需求

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

另請參閱

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy