InitiateSystemShutdownExW

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

InitiateSystemShutdownExW lpMachineName, lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown, dwReason

lpMachineName : [wstr] シャットダウンするコンピュータのネットワーク名。lpMachineName が NULL または空文字列の場合、関数はローカルコンピュータをシャットダウンする。
lpMessage : [wstr] シャットダウンダイアログボックスに表示するメッセージ。メッセージが不要な場合、このパラメータは NULL でよい。
dwTimeout : [int] シャットダウンダイアログボックスを表示する時間 (秒単位)。このダイアログボックスが表示されている間、シャットダウンは AbortSystemShutdown 関数で停止できる。
bForceAppsClosed : [int] このパラメータが TRUE の場合、未保存の変更があるアプリケーションを強制的に閉じる。このパラメータが FALSE の場合、システムはユーザーにアプリケーションを閉じるよう指示するダイアログボックスを表示する。
bRebootAfterShutdown : [int] このパラメータが TRUE の場合、シャットダウン後にコンピュータを即座に再起動する。このパラメータが FALSE の場合、システムはすべてのキャッシュをディスクにフラッシュし、システムを安全にシャットダウンする。
dwReason : [int] シャットダウンを開始する理由。このパラメータはシステムシャットダウン理由コードの 1 つでなければならない。

(プラグイン / モジュール : 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
となる。アプリケーションは少し待って呼び出しを再試行すること。
> [!NOTE] > winreg.h ヘッダーは InitiateSystemShutdownEx
をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI 版または Unicode
版を自動的に選択する。詳細は [Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

プラグイン / モジュール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