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