指定したコンピュータのシャットダウンと任意の再起動を開始し、任意でシャットダウンの理由を記録する。(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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_advapi32_gen2.hs |