次の方法で共有


通話の取り消し

呼び出しの取り消し通知は、サーバー側のサービス操作 およびサービス モデル コールバック 操作を取り消します。 このような取り消しには、次の 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 サービス操作またはサービス モデル コールバックがキャンセル通知に登録できるようにします。