Отмена звонка

Уведомление об отмене звонка отменяет операцию операций службы на стороне сервера и обратных вызовов модели службы. Такая отмена может быть одной из двух причин:

  • Узел службы остановил операции из-за вызова функции 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 Позволяет операции службы или обратный вызов модели службы регистрироваться для уведомления об отмене.