Condividi tramite


Annullamento delle chiamate

La notifica di annullamento delle chiamate annulla il funzionamento delle operazioni sul lato server e dei callback del modello di servizio. Tale annullamento può essere per uno dei due motivi seguenti:

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

Per ricevere una notifica di annullamento, l'operazione del servizio o il callback del modello di servizio deve registrare un callback WS_OPERATION_CANCEL_CALLBACK chiamando la funzioneWsRegisterOperationForCancel.

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

I dati sullo stato sono resi disponibili al callback WS_OPERATION_CANCEL_CALLBACK. Al completamento della chiamata, viene chiamato il callback WS_OPERATION_FREE_STATE_CALLBACK per consentire all'applicazione 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 di callback.

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

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

Richiamo Descrizione
WS_OPERATION_CANCEL_CALLBACK Richiamato dal modello di servizio per notificare l'annullamento di un'operazione asincrona del servizio a seguito 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 del servizio o al callback del modello di servizio di eseguire la registrazione per una notifica di annullamento.