SetSystemPowerState 関数 (winbase.h)

[SetSystemPowerState は、[要件] セクションで指定したオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 Windows Vista 以降用に作成されたアプリケーションでは、代わりに SetSuspendState を 使用する必要があります。

電源を切ってシステムを中断します。 ForceFlag パラメーターに応じて、関数は操作を直ちに中断するか、すべてのアプリケーションとデバイス ドライバーにアクセス許可を要求してから実行します。

構文

BOOL SetSystemPowerState(
  [in] BOOL fSuspend,
  [in] BOOL fForce
);

パラメーター

[in] fSuspend

このパラメーターが TRUE の場合、システムは中断されます。 パラメーターが FALSE の場合、システムは休止状態になります。

[in] fForce

このパラメーターは何も作用しません。

戻り値

電源が中断され、その後復元された場合、戻り値は 0 以外です。

システムが中断されていない場合、戻り値は 0 です。 詳細なエラー情報を得るには、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

Power Management Functions

SetSuspendState

WM_POWERBROADCAST