InitiateSystemShutdownA 関数 (winreg.h)
指定したコンピューターのシャットダウンとオプションの再起動を開始します。
シャットダウンの理由をイベント ログに記録するには、InitiateSystemShutdownEx 関数を呼び出します。
構文
BOOL InitiateSystemShutdownA(
[in, optional] LPSTR lpMachineName,
[in, optional] LPSTR lpMessage,
[in] DWORD dwTimeout,
[in] BOOL bForceAppsClosed,
[in] BOOL bRebootAfterShutdown
);
パラメーター
[in, optional] lpMachineName
シャットダウンするコンピューターのネットワーク名。 lpMachineName
[in, optional] lpMessage
シャットダウン ダイアログ ボックスに表示されるメッセージ。 メッセージが不要な場合、このパラメーターは NULL
Windows Server 2003 および Windows XP: この文字列は、イベント ログ エントリにもコメントとして格納されます。
Windows Server 2003 および Windows XP sp1: 文字列は 3072 TCHARに制限されます。
[in] dwTimeout
シャットダウン ダイアログ ボックスを表示する時間 (秒単位)。 このダイアログ ボックスが表示されている間、AbortSystemShutdown 関数によってシャットダウンを停止できます。
dwTimeout
dwTimeout
Windows Server 2003 および Windows XP sp1: タイムアウト値は MAX_SHUTDOWN_TIMEOUT 秒に制限されます。
Windows Server 2003 および Windows XP sp1: シャットダウンするコンピューターがターミナル サービス サーバーの場合、システムは、シャットダウンが開始されたことを警告するすべてのローカルおよびリモート ユーザーにダイアログ ボックスを表示します。 このダイアログ ボックスには、シャットダウンを要求したユーザー、表示メッセージ (lpMessage
[in] bForceAppsClosed
このパラメーターが TRUE
このパラメーターが FALSE
[in] bRebootAfterShutdown
このパラメーターが TRUE
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
備考
ローカル コンピューターをシャットダウンするには、呼び出し元のスレッドに SE_SHUTDOWN_NAME 特権が必要です。 リモート コンピューターをシャットダウンするには、呼び出し元のスレッドにリモート コンピューターの SE_REMOTE_SHUTDOWN_NAME 特権が必要です。 既定では、ユーザーはログオンしているコンピューターで SE_SHUTDOWN_NAME 特権を有効にでき、管理者はリモート コンピューターで SE_REMOTE_SHUTDOWN_NAME 特権を有効にすることができます。 詳細については、「特別な特権を使用した実行 」を参照してください。
エラーの一般的な理由としては、無効なコンピューター名やアクセスできないコンピューター名、権限が不足しているなどがあります。 指定したコンピューターでシャットダウンが既に進行中の場合、エラー ERROR_SHUTDOWN_IN_PROGRESS が返されます。 高速ユーザー切り替えが有効になっているが、ログオンしているユーザーがいない場合は、エラー ERROR_NOT_READY を返すことができます。
ゼロ以外の戻り値は、ログオフが成功したか成功したことを意味するものではありません。 シャットダウンは非同期プロセスであり、API 呼び出しが返された後、またはまったく発生しない場合があります。 タイムアウト値がゼロの場合でも、シャットダウンはアプリケーション、サービス、さらにはシステムによって中止される可能性があります。 0 以外の戻り値は、権限とパラメーターの検証が成功し、システムがシャットダウン要求を受け入れたことを示します。
この関数が呼び出されると、呼び出し元は、変更が保存されていないアプリケーションを強制的に閉じるかどうかを指定する必要があります。 呼び出し元がこれらのアプリケーションを強制的に閉じないように選択し、変更が保存されていないアプリケーションがコンソール セッションで実行されている場合、コンソール セッションにログインしたユーザーがシャットダウンを中止し、変更を保存し、アプリケーションを閉じるか、アプリケーションを強制的に閉じるまで、シャットダウンは進行中のままになります。 この期間中は、コンソール ユーザーを除いてシャットダウンが中止されず、別のシャットダウンが開始されない場合があります。
bForceAppsClosed パラメーターの値を TRUE に設定してこの関数を呼び出すと、このような状況が回避されることに注意してください。 これを行うと、データが失われる可能性があります。
例
例については、「シャットダウン ダイアログ ボックスを表示する」を参照してください。
手記
winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InitiateSystemShutdown を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winreg.h (Windows.h を含む) |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |
関連項目
AbortSystemShutdown の
InitiateSystemShutdownEx の