Отмена звонка
Уведомление об отмене звонка отменяет операцию операций службы на стороне сервера и обратных вызовов модели службы. Такая отмена может быть одной из двух причин:
- Узел службы остановил операции из-за вызова функции WsAbortServiceHost .
- Базовый канал вызвал ошибку.
Чтобы получить уведомление об отмене, операция службы или обратный вызов модели службы должна зарегистрировать обратный вызов WS_OPERATION_CANCEL_CALLBACK путем вызова функции WsRegisterOperationForCancel .
При необходимости в процессе регистрации для уведомления об отмене операция службы или обратный вызов модели службы также может регистрировать данные состояния конкретного приложения и обратный вызов WS_OPERATION_FREE_STATE_CALLBACK .
Данные о состоянии предоставляются обратному вызову WS_OPERATION_CANCEL_CALLBACK . При завершении вызова вызывается обратный вызов WS_OPERATION_FREE_STATE_CALLBACK , чтобы предоставить приложению возможность освободить данные о состоянии.
Пример кода см. в разделе BlockingServiceExample.
Обратный вызов отмены вызывается только один раз в течение всего времени существования операций службы на стороне сервера или функции обратного вызова.
Отмена звонка доступна для всех обратных вызовов узла службы, которые принимают WS_OPERATION_CONTEXT в качестве параметра.
Следующие элементы API связаны с отменой вызова.
Обратный вызов | Описание |
---|---|
WS_OPERATION_CANCEL_CALLBACK | Вызывается моделью службы для уведомления об отмене асинхронной операции службы в результате прерванного завершения работы узла службы. |
WS_OPERATION_FREE_STATE_CALLBACK | Вызывается моделью службы, чтобы разрешить приложению очищать данные состояния, зарегистрированные при обратном вызове отмены. |
Функция | Описание |
---|---|
WsRegisterOperationForCancel | Позволяет операции службы или обратный вызов модели службы регистрироваться для уведомления об отмене. |