共用方式為


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

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

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

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

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

規格需求

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

另請參閱

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy