InitiateSystemShutdownW

指定したコンピュータのシャットダウンと任意の再起動を開始する。(Unicode)

InitiateSystemShutdownW lpMachineName, lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown

lpMachineName : [wstr] シャットダウンするコンピュータのネットワーク名。lpMachineName が NULL または空文字列の場合、関数はローカルコンピュータをシャットダウンする。
lpMessage : [wstr] シャットダウンダイアログボックスに表示するメッセージ。メッセージが不要な場合、このパラメータは NULL でよい。Windows Server 2003 および Windows XP: この文字列はイベントログエントリのコメントとしても保存される。Windows Server 2003 および Windows XP SP1: 文字列は 3072 TCHAR に制限される。
dwTimeout : [int] シャットダウンダイアログボックスを表示する時間 (秒単位)。このダイアログボックスが表示されている間、シャットダウンは AbortSystemShutdown 関数で停止できる。dwTimeout が 0 でない場合、InitiateSystemShutdown は指定されたコンピュータにダイアログボックスを表示する。ダイアログボックスには関数を呼び出したユーザーの名前、lpMessage パラメータで指定されたメッセージが表示され、ユーザーにログオフを促す。ダイアログボックスは作成時にビープ音を鳴らし、システム内の他のウィンドウの上に留まる。ダイアログボックスは移動できるが閉じることはできない。タイマーが強制シャットダウンまでの残り時間をカウントダウンする。dwTimeout が 0 の場合、コンピュータはダイアログボックスを表示せずにシャットダウンし、AbortSystemShutdown でシャットダウンを停止できない。Windows Server 2003 および Windows XP SP1: タイムアウト値は MAX_SHUTDOWN_TIMEOUT 秒に制限される。
bForceAppsClosed : [int] このパラメータが TRUE の場合、未保存の変更があるアプリケーションを強制的に閉じる。これはデータ損失につながる可能性があることに注意すること。このパラメータが FALSE の場合、システムはユーザーにアプリケーションを閉じるよう指示するダイアログボックスを表示する。
bRebootAfterShutdown : [int] このパラメータが TRUE の場合、シャットダウン後にコンピュータを即座に再起動する。このパラメータが FALSE の場合、システムはすべてのキャッシュをディスクにフラッシュし、システムを安全にシャットダウンする。

(プラグイン / モジュール : advapi32.dll)

解説

指定したコンピュータのシャットダウンと任意の再起動を開始する。(Unicode)

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 である。拡張エラー情報を取得するには
GetLastError を呼び出す。

[備考]
ローカルコンピュータをシャットダウンするには、呼び出し元スレッドが SE_SHUTDOWN_NAME
特権を持っている必要がある。リモートコンピュータをシャットダウンするには、呼び出し元スレッドがリモートコンピュータ上で
SE_REMOTE_SHUTDOWN_NAME 特権を持っている必要がある。既定では、ユーザーはログオンしているコンピュータ上で
SE_SHUTDOWN_NAME 特権を有効にでき、管理者はリモートコンピュータ上で SE_REMOTE_SHUTDOWN_NAME
特権を有効にできる。詳細については「Running with Special
Privileges」を参照。失敗の一般的な原因には、無効またはアクセスできないコンピュータ名、不十分な特権などがある。指定したコンピュータで既にシャットダウンが進行中の場合、ERROR_SHUTDOWN_IN_PROGRESS
エラーが返される。高速ユーザー切り替えが有効だがログオンしているユーザーがいない場合、ERROR_NOT_READY
エラーが返されることがある。0
以外の戻り値は、シャットダウン要求の検証が成功し、システムが受け入れたことを示すだけで、ログオフの成功を意味するものではない。この関数を呼び出すとき、呼び出し元は未保存の変更があるアプリケーションを強制的に閉じるかどうかを指定する必要がある。強制しないことを選択し、未保存の変更があるアプリケーションがコンソールセッションで実行されている場合、コンソールセッションにログオンしているユーザーがシャットダウンを中止するか、変更を保存してアプリケーションを閉じるか、強制的にアプリケーションを閉じるまで、シャットダウンは進行中のままとなる。この期間中、シャットダウンはコンソールユーザー以外では中止できず、別のシャットダウンを開始することもできない。bForceAppsClosed
パラメータに TRUE
を指定してこの関数を呼び出すことで、この状況を回避できる。ただし、データ損失につながる可能性があることに注意すること。Windows
Server 2003 および Windows XP: コンピュータがロックされ、bForceAppsClosed パラメータが
FALSE の場合、最後のエラーコードは ERROR_MACHINE_LOCKED
となる。システムが要求を処理する準備ができていない場合、最後のエラーコードは ERROR_NOT_READY
となる。アプリケーションは少し待って呼び出しを再試行すること。

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs