次の方法で共有


通話の取り消し

呼び出しキャンセル通知は、 サーバー側のサービス操作とサービス モデル コールバックの操作を取り消します。 このような取り消しには、次の 2 つの理由のいずれかが考えられます。

  • WsAbortServiceHost 関数の呼び出しにより、サービス ホストが操作を停止しました。
  • 基になるチャネルでエラーが発生しました。

キャンセル通知を受け取るために、サービス操作またはサービス モデル コールバックは、wsRegisterOperationForCancel 関数を呼び出してWS_OPERATION_CANCEL_CALLBACKコールバックを登録する必要があります。

必要に応じて、キャンセル通知の登録の一環として、サービス操作またはサービス モデル コールバックで、アプリケーション固有の状態データと WS_OPERATION_FREE_STATE_CALLBACK コールバックを登録することもできます。

状態データは、 WS_OPERATION_CANCEL_CALLBACK コールバックで使用できるようになります。 呼び出しが完了すると、 WS_OPERATION_FREE_STATE_CALLBACK コールバックが呼び出され、アプリケーションに状態データを解放する機会が与えられます。

コード例については、「 BlockingServiceExample」を参照してください。

キャンセル コールバックは、 サーバー側のサービス操作 またはコールバック関数の有効期間中に 1 回だけ呼び出されます。

呼び出しの取り消しは、パラメーターとして WS_OPERATION_CONTEXT を受け取るすべてのサービス ホスト コールバックで使用できます。

次の API 要素は、呼び出しの取り消しに関連しています。

コールバック 説明
WS_OPERATION_CANCEL_CALLBACK サービス ホストのシャットダウンが中止された結果、非同期サービス操作の取り消しを通知するために、サービス モデルによって呼び出されます。
WS_OPERATION_FREE_STATE_CALLBACK キャンセル コールバックに登録された状態データをアプリケーションがクリーンできるように、サービス モデルによって呼び出されます。

 

機能 説明
WsRegisterOperationForCancel サービス操作またはサービス モデル コールバックがキャンセル通知に登録できるようにします。