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作一起使用。 对于可能超过此时间段的较长作,请改用 PoStartDeviceBusyPoEndDeviceBusy 例程。

对简短 I/O作发出多个请求的驱动程序应为每个 I/O 请求调用 PoSetDeviceBusyEx

要求

要求 价值
最低支持的客户端 带 SP1 的 Windows Vista
目标平台 普遍
标头 ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy