Annullamento delle chiamate

La notifica di annullamento della chiamata annulla l'operazione delle operazioni sul lato server e dei callback del modello di servizio. Tale annullamento può essere per uno dei due motivi:

  • L'host del servizio ha interrotto le operazioni a causa di una chiamata alla funzione WsAbortServiceHost .
  • Il canale sottostante ha generato un errore.

Per ricevere una notifica di annullamento, il callback del servizio o del modello di servizio deve registrare un callback WS_OPERATION_CANCEL_CALLBACK chiamando la funzione WsRegisterOperationForCancel .

Facoltativamente, come parte della registrazione per la notifica di annullamento, il callback del servizio o del modello di servizio può anche registrare dati di stato specifici dell'applicazione e il callback WS_OPERATION_FREE_STATE_CALLBACK .

I dati sullo stato sono resi disponibili per il callback WS_OPERATION_CANCEL_CALLBACK . Al completamento della chiamata, il callback WS_OPERATION_FREE_STATE_CALLBACK viene chiamato per concedere all'applicazione un'opportunità di liberare i dati sullo stato.

Per un esempio di codice, vedere BlockingServiceExample.

Il callback di annullamento viene chiamato una sola volta per la durata delle operazioni del servizio lato server o della funzione di callback.

L'annullamento delle chiamate è disponibile per tutti i callback host del servizio che accettano WS_OPERATION_CONTEXT come parametro.

Gli elementi API seguenti sono correlati all'annullamento delle chiamate.

Callback Descrizione
WS_OPERATION_CANCEL_CALLBACK Richiamato dal modello di servizio per notificare l'annullamento di un'operazione di servizio asincrona a causa di un arresto interrotto dell'host del servizio.
WS_OPERATION_FREE_STATE_CALLBACK Richiamato dal modello di servizio per consentire a un'applicazione di pulire i dati sullo stato registrati con il callback di annullamento.

 

Funzione Descrizione
WsRegisterOperationForCancel Consente a un'operazione di servizio o al callback del modello di servizio di registrare per una notifica di annullamento.