阻止系统电源状态更改

尽管驱动程序无法直接设置系统电源策略,但电源管理器提供了三个例程,通过这些例程驱动程序可以防止系统转换出工作状态: PoSetSystemStatePoRegisterSystemStatePoUnregisterSystemState

通过调用 PoRegisterSystemStatePoSetSystemState,驱动程序可以通知电源管理器用户存在,或者驱动程序需要使用系统或显示器。

PoRegisterSystemState 允许驱动程序注册连续忙状态。 它返回一个句柄,驱动程序稍后可以通过该句柄更改其设置。 只要状态注册有效,电源管理器就不会尝试使系统进入睡眠状态。 驱动程序通过调用 PoUnregisterSystemState 取消状态注册。

使用 PoSetSystemState 时,驱动程序会通知电源管理器 (用户存在、系统需要、显示所需的) 相同的条件,但此设置不是连续的。 它的作用是重启与指定条件关联的任何空闲倒计时。

使用这些例程,驱动程序可以阻止许多(但不是全部)转换脱离工作状态。 当即将断电或用户显式请求关闭时,电源管理器始终关闭系统。