PoStartDeviceBusy 函数 (wdm.h)

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

语法

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

参数

[in, out] IdlePointer

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

返回值

备注

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

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

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

要求

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

另请参阅

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy