Cancelamento de chamada

A notificação de cancelamento de chamada cancela a operação de operações de serviço do lado do servidor e retornos de chamada do modelo de serviço. Esse cancelamento pode ser por um dos dois motivos:

  • O host de serviço parou as operações devido a uma chamada para a função WsAbortServiceHost .
  • O canal subjacente gerou uma falha.

Para receber uma notificação de cancelamento, a operação de serviço ou o retorno de chamada do modelo de serviço devem registrar um retorno de chamada WS_OPERATION_CANCEL_CALLBACK chamando a função WsRegisterOperationForCancel .

Opcionalmente, como parte do registro de notificação de cancelamento, a operação de serviço ou o retorno de chamada do modelo de serviço também podem registrar dados de estado específicos do aplicativo e o retorno de chamada WS_OPERATION_FREE_STATE_CALLBACK .

Os dados de estado são disponibilizados para o retorno de chamada WS_OPERATION_CANCEL_CALLBACK. Após a conclusão da chamada, o retorno de chamada WS_OPERATION_FREE_STATE_CALLBACK é chamado para dar ao aplicativo a oportunidade de liberar os dados de estado.

Para obter um exemplo de código, consulte BlockingServiceExample.

O retorno de chamada de cancelamento é chamado apenas uma vez para o tempo de vida das operações de serviço do lado do servidor ou da função de retorno de chamada.

O cancelamento de chamada está disponível para todos os retornos de chamada do host de serviço que levam WS_OPERATION_CONTEXT como um parâmetro.

Os elementos de API a seguir estão relacionados ao cancelamento de chamadas.

Callback Descrição
WS_OPERATION_CANCEL_CALLBACK Invocado pelo modelo de serviço para notificar um cancelamento de uma operação de serviço assíncrona como resultado de um desligamento anulado do host de serviço.
WS_OPERATION_FREE_STATE_CALLBACK Invocado pelo modelo de serviço para permitir que um aplicativo limpe os dados de estado registrados com o retorno de chamada de cancelamento.

 

Função Descrição
WsRegisterOperationForCancel Permite que uma operação de serviço ou um retorno de chamada do modelo de serviço se registre para uma notificação de cancelamento.