次の方法で共有


InitiateShutdownA 関数 (winreg.h)

指定したコンピューターのシャットダウンと再起動を開始し、再起動のために登録されているアプリケーションを再起動します。

構文

DWORD InitiateShutdownA(
  [in, optional] LPSTR lpMachineName,
  [in, optional] LPSTR lpMessage,
  [in]           DWORD dwGracePeriod,
  [in]           DWORD dwShutdownFlags,
  [in]           DWORD dwReason
);

パラメーター

[in, optional] lpMachineName

シャットダウンするコンピューターの名前。 このパラメーターの値が NULL場合、ローカル コンピューターはシャットダウンされます。

[in, optional] lpMessage

対話型シャットダウン ダイアログ ボックスに表示されるメッセージ。

[in] dwGracePeriod

コンピューターをシャットダウンするまでに待機する秒数。 このパラメーターの値が 0 の場合、コンピューターはすぐにシャットダウンされます。 この値は MAX_SHUTDOWN_TIMEOUTに制限されます。

このパラメーターの値が 0 より大きく、dwShutdownFlags パラメーターでフラグ SHUTDOWN_GRACE_OVERRIDEを指定すると、関数は失敗し、エラー コード ERROR_BAD_ARGUMENTSを返します。

[in] dwShutdownFlags

シャットダウンのオプションを指定する 1 つ以上のビット フラグ。 次の値が定義されています。

価値 意味
SHUTDOWN_FORCE_OTHERS
0x00000001 (0x1)
すべてのセッションは強制的にログオフされます。 このフラグが設定されておらず、現在のユーザー以外のユーザーが lpMachineName パラメーターで指定されたコンピューターにログオンしている場合、この関数は ERROR_SHUTDOWN_USERS_LOGGED_ONの戻り値で失敗します。
SHUTDOWN_FORCE_SELF
0x00000002 (0x2)
元のセッションが強制的にログオフされることを指定します。 このフラグが設定されていない場合、元のセッションは対話形式でシャットダウンされるため、関数が正常に戻ってもシャットダウンは保証されません。
SHUTDOWN_GRACE_OVERRIDE
0x00000020 (0x20)
コンピューターがすぐにシャットダウンされるように、猶予期間をオーバーライドします。
SHUTDOWN_HYBRID
0x00000200 (0x200)
Windows 8 で実行されている InitiateShutdown 以降では、シャットダウンのオプションを指定するには、SHUTDOWN_HYBRID フラグを 1 つ以上のフラグと共にこの表に含める必要があります。

Windows 8 以降、InitiateShutdownSHUTDOWN_HYBRID フラグがない場合は常にシステムの完全シャットダウンを開始します。

SHUTDOWN_INSTALL_UPDATES
0x00000040 (0x40)
コンピューターは、シャットダウンを開始する前に更新プログラムをインストールします。
SHUTDOWN_NOREBOOT
0x00000010 (0x10)
コンピューターはシャットダウンされていますが、電源が切れたり再起動されたりしません。
SHUTDOWN_POWEROFF
0x00000008 (0x8)
コンピューターがシャットダウンされ、電源が切れている。
SHUTDOWN_RESTART
0x00000004 (0x4)
コンピューターがシャットダウンされ、再起動されます。
SHUTDOWN_RESTARTAPPS
0x00000080 (0x80)
システムは、EWX_RESTARTAPPS フラグを指定した ExitWindowsEx 関数を使用して再起動されます。 これにより、RegisterApplicationRestart 関数を使用して、再起動のために登録されたすべてのアプリケーションが再起動されます。

[in] dwReason

シャットダウンを開始する理由。 このパラメーターは、システムシャットダウン理由コードのいずれかである必要があります。 このパラメーターが 0 の場合、既定値は未定義のシャットダウンであり、"この理由でタイトルが見つかりませんでした" としてログに記録されます。 既定では、計画外のシャットダウンでもあります。 システムの構成方法に応じて、計画外のシャットダウンによって、システム状態情報を含むファイルの作成がトリガーされ、シャットダウンが遅れる可能性があります。 したがって、このパラメーターにはゼロを使用しないでください。

戻り値

関数が成功した場合は、ERROR_SUCCESSを返します。

関数が失敗すると、次のいずれかのエラー コードが返されます。

リターン コード 形容
ERROR_ACCESS_DENIED
呼び出し元には、この操作を実行するために必要な特権 (SE_SHUTDOWN_PRIVILEGEまたはSE_REMOTE_SHUTDOWN_PRIVILEGE) がありません。
ERROR_BAD_NETPATH
指定したコンピューターが存在しないか、アクセスできません。
ERROR_INVALID_COMPUTERNAME
指定したコンピューター名が有効なコンピューター名ではありません。
ERROR_INVALID_FUNCTION
指定されたコンピューターは、シャットダウン インターフェイスをサポートしていません。
ERROR_INVALID_PARAMETER
無効なパラメーターのセットが渡されました。 これには、次の組み合わせが含まれます。
  • lpMachineName パラメーターはリモート コンピューターを指定し、dwShutdownFlags パラメーターは SHUTDOWN_FORCE_SELFを指定しません。
  • dwGracePeriod の値が 0 より大きく、dwShutdownFlags パラメーターで SHUTDOWN_FORCE_SELFが指定されていません。
  • dwGracePeriod の値が 0 より大きく、dwShutdownFlags パラメーターは SHUTDOWN_GRACE_OVERRIDEを指定します。
ERROR_SHUTDOWN_IN_PROGRESS
指定したコンピューターでシャットダウンが既に開始されています。
ERROR_SHUTDOWN_IS_SCHEDULED
指定したコンピューターのシャットダウンがスケジュールされていますが、開始されていません。 この関数を成功させるには、SHUTDOWN_GRACE_OVERRIDE フラグを設定する必要があります。
ERROR_SHUTDOWN_USERS_LOGGED_ON
現在のユーザー以外の 1 人以上のユーザーが指定されたコンピューターにログオンしており、SHUTDOWN_FORCE_OTHERS フラグが設定されていません。

備考

ローカル コンピューターをシャットダウンするには、呼び出し元のスレッドにSE_SHUTDOWN_NAME特権が必要です。 リモート コンピューターをシャットダウンするには、呼び出し元のスレッドにリモート コンピューターのSE_REMOTE_SHUTDOWN_NAME特権が必要です。 既定では、ユーザーはログオンしているコンピューターでSE_SHUTDOWN_NAME特権を有効にでき、管理者はリモート コンピューターでSE_REMOTE_SHUTDOWN_NAME特権を有効にすることができます。 詳細については、「特別な特権を使用した実行 」を参照してください。

エラーの一般的な理由としては、無効なコンピューター名やアクセスできないコンピューター名、権限が不足しているなどがあります。 指定したコンピューターでシャットダウンが既に進行中の場合、エラー ERROR_SHUTDOWN_IN_PROGRESSが返されます。 高速ユーザー切り替えが有効になっているが、ログオンしているユーザーがいない場合は、エラー ERROR_NOT_READYを返すことができます。

ゼロ以外の戻り値は、ログオフが成功したか成功したことを意味するものではありません。 シャットダウンは非同期プロセスであり、API 呼び出しが返された後、またはまったく発生しない場合があります。 タイムアウト値がゼロの場合でも、シャットダウンはアプリケーション、サービス、さらにはシステムによって中止される可能性があります。 0 以外の戻り値は、権限とパラメーターの検証が成功し、システムがシャットダウン要求を受け入れたことを示します。

手記

winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InitiateShutdown を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winreg.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

シャットダウン