PoStartDeviceBusy 函数 (ntifs.h)
PoStartDeviceBusy 例程标志着设备正忙的时间段的开始。
语法
void PoStartDeviceBusy(
[in, out] PULONG IdlePointer
);
参数
[in, out] IdlePointer
指向空闲计数器的指针。 这是以前由 PoRegisterDeviceForIdleDetection 例程返回的指针值。 由于 PoRegisterDeviceForIdleDetection 可能会返回 NULL 指针,因此调用方必须在调用 PoStartDeviceBusy之前验证指针是否为非 NULL。
返回值
没有
言论
PoStartDeviceBusy 和 PoEndDeviceBusy 例程标记设备正忙的时间段的开始和结束。 对 PoStartDeviceBusy 的每个调用都必须后跟对 PoEndDeviceBusy的相应调用。
对于每个设备,电源管理器 维护尚未收到相应 PoEndDeviceBusy 调用的未完成 poStartDeviceBusy 调用数。 PoStartDeviceBusy 调用将忙碌计数增加一个。 PoEndDeviceBusy 调用将忙碌计数减少一个。 非零忙计数禁用设备的空闲计数器。 忙计数达到零后,电源管理器会将空闲计数器重置为超时时段,并启用计数器。
可以调用 PoSetDeviceBusy 例程(或 PoSetDeviceBusy 宏),而不是使用 PoStartDeviceBusy 和 PoEndDeviceBusy 例程来重置空闲计数器。 若要在较长的繁忙时段内禁用空闲计数器,驱动程序可以调用 PoRegisterDeviceForIdleDetection 例程来禁用和启用忙碌时段的开始和结束的空闲通知。 但是,PoStartDeviceBusy 和 PoEndDeviceBusy 通常更方便用于此目的,并且应考虑在为 Windows 7 和更高版本 Windows 编写的新代码中使用这些例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7。 |
目标平台 | 普遍 |
标头 | ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |