poStartDeviceBusy 函数 (ntifs.h)

PoStartDeviceBusy 例程标记设备繁忙时段的开始时间。

语法

void PoStartDeviceBusy(
  [in, out] PULONG IdlePointer
);

参数

[in, out] IdlePointer

指向空闲计数器的指针。 这是之前由 PoRegisterDeviceForIdleDetection 例程返回的指针值。 由于 PoRegisterDeviceForIdleDetection 可能会返回 NULL 指针,因此调用方必须先验证指针是否为非 NULL,然后才能调用 PoStartDeviceBusy

返回值

备注

PoStartDeviceBusyPoEndDeviceBusy 例程标记设备繁忙时段的开始和结束时间。 每次调用 PoStartDeviceBusy 后,都必须对 PoEndDeviceBusy 进行相应的调用。

对于每个设备, 电源管理器 维护尚未收到相应 PoEndDeviceBusy 呼叫的未完成 PoStartDeviceBusy 呼叫数的计数。 PoStartDeviceBusy 调用会将忙碌计数递增 1。 PoEndDeviceBusy 调用会将忙碌计数减 1。 非零忙计数禁用设备的空闲计数器。 忙计数达到零后,电源管理器会将空闲计数器重置为超时期限并启用计数器。

可以调用 PoSetDeviceBusyEx 例程 (或 PoSetDeviceBusy 宏) ,而不是使用 PoStartDeviceBusyPoEndDeviceBusy 例程重置空闲计数器。 若要在长时间的忙碌期间禁用空闲计数器,驱动程序可以调用 PoRegisterDeviceForIdleDetection 例程,以在繁忙时段开始和结束时禁用和启用空闲通知。 但是, PoStartDeviceBusyPoEndDeviceBusy 通常更方便用于此目的,你应考虑在为 Windows 7 及更高版本的 Windows 编写的新代码中使用这些例程。

要求

要求
最低受支持的客户端 Windows 7。
目标平台 通用
标头 ntifs.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy