powerSetRequest 函数 (winbase.h)

递增电源请求对象的指定类型的电源请求计数。

语法

BOOL PowerSetRequest(
  [in] HANDLE             PowerRequest,
  [in] POWER_REQUEST_TYPE RequestType
);

参数

[in] PowerRequest

电源请求对象的句柄。

[in] RequestType

要递增的电源请求类型。 此参数的取值可为下列值之一:

说明
PowerRequestDisplayRequired 即使长时间没有用户输入,显示器也会保持打开状态。

注意: 除了 PowerRequestDisplayRequired 外,还必须使用 PowerRequestSystemRequired ,以确保显示器保持打开状态,并且系统在请求期间不会进入睡眠状态。
PowerRequestSystemRequired 系统在用户不活动一段时间后继续运行,而不是进入睡眠状态。
PowerRequestAwayModeRequired 系统进入离开模式而不是睡眠模式,以响应用户的显式操作。 在离开模式下,系统继续运行,但会关闭音频和视频,以呈现睡眠状态。 PowerRequestAwayModeRequired 仅适用于传统睡眠 (S3) 系统。
PowerRequestExecutionRequired 调用进程将继续运行,而不是被进程生存期管理机制挂起或终止。 允许进程运行的时间和时长取决于操作系统和电源策略设置。

在传统睡眠 (S3) 系统上,活动的 PowerRequestExecutionRequired 请求意味着 PowerRequestSystemRequired

返回值

如果函数成功,则返回非零值。

如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。

注解

在采用 DC 电源的新式待机系统上,系统睡眠超时过期后 5 分钟终止系统和执行所需的电源请求。

传统睡眠 (S3) 系统上的 PowerRequestAwayModeRequired 除外,在用户启动的系统睡眠进入 (电源按钮、关闭盖子或从“开始”菜单) 选择“睡眠”时,电源请求将终止。

为了节省电源并提供最佳用户体验,使用电源请求的应用程序应遵循以下最佳做法:

  • 创建电源请求时,请提供一个本地化文本字符串,用于描述 REASON_CONTEXT 结构中的请求原因。
  • 在需要请求的方案之前立即调用 PowerSetRequest
  • 调用 PowerClearRequest 以在方案完成后立即递减请求的引用计数。
  • 在进程退出或服务停止之前,清理所有请求对象和关联的句柄。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

PowerClearRequest

PowerCreateRequest