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