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

另请参阅

PBT_APMQUERYSUSPEND

PBT_APMQUERYSUSPENDFAILED

PBT_APMSUSPEND

电源管理功能

SetSuspendState

WM_POWERBROADCAST