次の方法で共有


WsCloseChannel 関数 (webservices.h)

指定した チャネルを閉じます。

構文

HRESULT WsCloseChannel(
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

パラメーター

[in] channel

閉じるチャネルを表す WS_CHANNEL 構造体へのポインター。

[in, optional] asyncContext

関数を非同期的に呼び出すための情報を含む WS_ASYNC_CONTEXT データ構造体へのポインター。 関数を同期的に呼び出すには 、NULL 値を渡します。

[in, optional] error

関数 が失敗 した場合に追加のエラー情報が格納されるWS_ERROR構造体へのポインター。

戻り値

関数が成功した場合は、NO_ERRORを返します。それ以外の場合は、HRESULT エラー コードを返します。

リターン コード 説明
WS_S_ASYNC
非同期操作はまだ保留中です。
WS_E_OPERATION_ABORTED
チャネルが閉じている間に 、WsAbortChannel の呼び出しによってチャネルクロージャが中止されました。
WS_E_INVALID_OPERATION
チャネルが不適切な状態でした (「解説」セクションを参照)。
WS_E_ENDPOINT_DISCONNECTED
リモート エンドポイントとの接続が終了しました。
WS_E_ENDPOINT_FAILURE
リモート エンドポイントが要求を処理できませんでした。
WS_E_INVALID_FORMAT
入力データの形式が正しくないか、予期した値が指定されていませんでした。
WS_E_OPERATION_TIMED_OUT
割り当てられた時間内に操作が完了しませんでした。
WS_E_QUOTA_EXCEEDED
クォータを超えました。
E_OUTOFMEMORY
操作を完了するためのメモリ不足。
E_INVALIDARG
1 つ以上の引数が無効です。
その他のエラー
この関数は、上記以外のエラーを返す場合があります。

注釈

チャネルを開いた場合、またはチャネルを正常に受け入れる場合は、不要になったらチャネルを閉じる必要があります。 チャネルが閉じられた後は、関連付けられているリソースを安全に解放できます。

チャネル終了プロセスは、既に開始され、保留中の I/O が完了するまで待機します。

チャネルに対して現在読み取りまたは書き込まれているメッセージがない場合、チャネルは正常なシャットダウンを試みます。 それ以外の場合、チャネル自体で保留中のすべての I/O が中止され、チャネルが失礼なシャットダウンを実行します。

チャネルが正常なシャットダウンを試行してもエラーが発生した場合、 WsCloseChannel はエラーを返しますが、チャネルは引き続き閉じられます。

この操作は、チャネルがWS_CHANNEL_STATE_OPENまたはWS_CHANNEL_STATE_FAULTED状態の場合にのみ許可されます。

チャネルを閉じると、読み取り中または書き込み中のメッセージの関連付けが自動的に解除されます。 そのため、WsCloseChannel を呼び出す前に WsAbandonMessage を呼び出す必要はありません。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll