次の方法で共有


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、WSManSendShellInputWSManSignalShell などのシェル インスタンスで実行される操作は、切断前に完了するようにバインドされます。 これにより、 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