Partilhar via


Cancelamento de chamadas

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 de dois motivos:

  • O host de serviço interrompeu as operações devido a uma chamada para a funçãoWsAbortServiceHost.
  • O canal subjacente levantou 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 para 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 do estado são disponibilizados para o retorno de chamada WS_OPERATION_CANCEL_CALLBACK. Na conclusão da chamada, o retorno de chamada WS_OPERATION_FREE_STATE_CALLBACK é chamado para dar ao aplicativo uma 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 em todos os retornos de chamada do host de serviço que tomam WS_OPERATION_CONTEXT como parâmetro.

Os seguintes elementos da API estão relacionados ao cancelamento de chamadas.

Retorno de chamada 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 abortado 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 que foram registrados com o retorno de chamada de cancelamento.

 

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