Compartilhar via


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 interrompeu 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 deve registrar um retorno de chamada WS_OPERATION_CANCEL_CALLBACK chamando a funçãoWsRegisterOperationForCancel.

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 pode 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 durante o tempo de vida das operações de serviço do lado do servidor ou função de retorno de chamada.

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

Os seguintes elementos de API 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.