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