次の方法で共有


WTSShutdownSystem 関数 (wtsapi32.h)

指定したリモート デスクトップ セッション ホスト (RD セッション ホスト) サーバーをシャットダウン (および必要に応じて再起動) します。

システムをシャットダウンまたは再起動するには、呼び出し元プロセスで SE_SHUTDOWN_NAME 特権が有効になっている必要があります。 セキュリティ特権の詳細については、「 Privileges and Authorization Constants」を参照してください。

構文

BOOL WTSShutdownSystem(
  [in] HANDLE hServer,
  [in] DWORD  ShutdownFlag
);

パラメーター

[in] hServer

RD セッション ホスト サーバーへの処理。 WTSOpenServer 関数によって開かれたハンドルを指定するか、WTS_CURRENT_SERVER_HANDLEを指定して、アプリケーションが実行されている RD セッション ホスト サーバーを示します。

[in] ShutdownFlag

シャットダウンの種類を示します。 このパラメーターには、次の値のいずれかを指定できます。

WTS_WSD_LOGOFF

すべてのクライアント セッションを強制的にログオフし ( WTSShutdownSystem を呼び出すセッションを除く)、後続のリモート ログオンを無効にします。 これは、シャットダウンする前のステップとして使用できます。 リモート デスクトップ サービス サービスが再起動されると、ログオンが再び有効になります。

この値は、リモート デスクトップ サービス コンソールでのみ使用します。

WTS_WSD_POWEROFF

RD セッション ホスト サーバー上のシステムをシャットダウンし、AC 電源のソフトウェア制御をサポートするコンピューターで電源をオフにします。 これは、EWX_SHUTDOWNEWX_POWEROFFを使用して ExitWindowsEx を呼び出すことと同じです。 呼び出し元のプロセスでは、 SE_SHUTDOWN_NAME 特権が有効になっている必要があります。

WTS_WSD_REBOOT

RD セッション ホスト サーバーでシステムをシャットダウンしてから再起動します。 これは、EWX_REBOOTを使用して ExitWindowsEx を呼び出すことと同じです。 呼び出し元のプロセスでは、 SE_SHUTDOWN_NAME 特権が有効になっている必要があります。

WTS_WSD_SHUTDOWN

RD セッション ホスト サーバー上のシステムをシャットダウンします。 これは、EWX_SHUTDOWNを使用して ExitWindowsEx 関数を呼び出すことと同じです。 呼び出し元のプロセスでは、 SE_SHUTDOWN_NAME 特権が有効になっている必要があります。

WTS_WSD_FASTREBOOT

この値は現在サポートされていません。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

システムシャットダウンは、すべてのユーザーとアクティブなプログラムを終了します。 シャットダウン中に次の手順が実行されます。

  1. 終了コマンドは、すべてのアクティブ・ユーザー・アプリケーションに対して発行されます。
  2. アプリケーションが特定の期間内に終了しない場合、アプリケーションは終了します。
  3. ユーザーのすべてのアプリケーションが終了すると、ユーザーはログオフされます。
  4. すべてのユーザーがログオフされると、すべてのシステム・サービスに終了コマンドが発行されます。
  5. システム サービスが特定の期間内に終了しない場合、サービスは終了します。
  6. ファイル システム キャッシュはディスクに書き込まれます。
  7. ディスクは読み取り専用としてマークされます。
  8. RD セッション ホスト サーバーには、"コンピューターの電源をオフにしても安全です" というメッセージが表示されるか、 WTS_WSD_REBOOT が指定されている場合はシステムが再起動されます。 (すべてのクライアント セッションが終了したため、コンソールにメッセージが表示されます)。
メモ 大規模なマルチユーザー構成では多くのユーザーとプロセスが存在する可能性があるため、大規模なシステム構成が正常にシャットダウンされるまでに時間がかかる場合があります。 システムが完全にシャットダウンされるようにすることが重要です。
 
Windows Server 2008 と Windows Vista: リモート 接続マネージャー (RCM) が無効になっている場合、WTSShutdownSystem の呼び出しは機能しません。 これは、リモート デスクトップ サービス サービスが停止した場合です。

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー wtsapi32.h
Library Wtsapi32.lib
[DLL] Wtsapi32.dll

こちらもご覧ください

ExitWindowsEx