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. |