PoStartDeviceBusy 函数 (ntifs.h)

PoStartDeviceBusy 例程标志着设备正忙的时间段的开始。

语法

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

参数

[in, out] IdlePointer

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

返回值

没有

言论

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

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

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

要求

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

另请参阅

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy