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ção WsRegisterOperationForCancel .

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 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 da função de retorno de chamada.

O cancelamento de chamada está disponível em para todos os retornos de chamada de 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 limpo 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 um retorno de chamada de modelo de serviço se registre para uma notificação de cancelamento.