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