WSManDisconnectShell 関数 (wsman.h)
アクティブなシェルとそれに関連付けられているコマンドのネットワーク接続を切断します。
構文
void WSManDisconnectShell(
[in, out] WSMAN_SHELL_HANDLE shell,
DWORD flags,
[in] WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo,
[in] WSMAN_SHELL_ASYNC *async
);
パラメーター
[in, out] shell
WSManCreateShell 関数の呼び出しによって返されるハンドルを指定します。 このパラメーターを NULL にすることはできません。
flags
WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP フラグまたはWSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK フラグを指定できます。
[in] disconnectInfo
サーバー セッションで適用できるアイドルタイムアウトを指定する WSMAN_SHELL_DISCONNECT_INFO 構造体へのポインター。 このパラメーターが NULL の場合、サーバー セッションのアイドルタイムアウトは変更されません。
[in] async
省略可能なユーザー コンテキストと必須のコールバック関数を含む非同期構造体を定義します。 詳細については、「 WSMAN_SHELL_ASYNC」を参照してください。 このパラメーターを NULL にすることはできません。
戻り値
なし
解説
この関数は、アクティブに接続されているサーバー セッションへのネットワーク接続を中断します。 WSManRunShellCommand、WSManSendShellInput、WSManSignalShell などのシェル インスタンスで実行される操作は、切断前に完了するようにバインドされます。 これにより、 WSManSendShellInput を介して送信されたデータは、シェルが切断される前にサーバー セッションによって確実に受信されます。 必要に応じて、クライアントはフラグを使用してサーバー バッファリング モードを変更できます。 次の動作が観察されます。
- WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP- バッファーがいっぱいになると、サーバーは応答ストリーム バッファーの以前のデータを削除して、対応するコマンド操作が引き続き実行されるようにします。
-
WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK – 応答ストリーム バッファーがいっぱいになると、サーバーはコマンドの実行をブロックします。 フラグが指定されていない場合、サーバーは、シェルの作成時に指定された構成済みモードまたはモードを引き続き使用します。 ネットワーク障害が発生した場合、クライアントがセッションに接続してシェルを切断できない場合は、次のエラーが返されます。
ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL
クライアント セッションは引き続き切断状態になりますが、セッションが切断される前に以前の操作が完了したとは限りません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | Windows |
ヘッダー | wsman.h |
Library | WsmSvc.lib |
[DLL] | WsmSvc.dll |