SetSystemPowerState 函数 (winbase.h)
[SetSystemPowerState 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 为 Windows Vista 及更高版本编写的应用程序应改用 SetSuspendState 。]
通过关闭电源来挂起系统。 根据 ForceFlag 参数,函数会立即暂停操作,或者在执行此操作之前向所有应用程序和设备驱动程序请求权限。
语法
BOOL SetSystemPowerState(
[in] BOOL fSuspend,
[in] BOOL fForce
);
参数
[in] fSuspend
如果此参数为 TRUE,则系统暂停。 如果 参数为 FALSE,则系统将休眠。
[in] fForce
此参数不起作用。
返回值
如果电源已暂停并随后恢复,则返回值为非零值。
如果系统未挂起,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
调用进程必须具有 SE_SHUTDOWN_NAME 特权。 若要启用 SE_SHUTDOWN_NAME 权限,请使用 AdjustTokenPrivileges 函数。 有关详细信息,请参阅 更改令牌中的权限。
如果任何应用程序或驱动程序拒绝暂停操作的权限,函数会将 PBT_APMQUERYSUSPENDFAILED 事件广播到每个应用程序和驱动程序。 如果电源暂停,则仅在系统操作恢复且相关 WM_POWERBROADCAST 消息已广播到所有应用程序和驱动程序后,此函数才会返回。
此函数类似于 SetSuspendState 函数。
若要编译使用此函数的应用程序,请将_WIN32_WINNT宏定义为0x0400或更高版本。 有关详细信息,请参阅 使用 Windows 标头。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |