WinAPPCCancelBlockingCall
La funzione WinAPPCCancelBlockingCall annulla qualsiasi operazione di blocco in sospeso per il thread. Qualsiasi chiamata bloccata in sospeso annullata causerà la generazione di un codice di errore di WAPPCCANCEL.
Sintassi
BOOL WINAPI WinAPPCCancelBlockingCall(
void
);
Valore restituito
Il valore restituito specifica se la richiesta di annullamento ha avuto esito positivo. Se il valore è zero, la richiesta è stata annullata. In caso contrario, il valore è il seguente:
WAPPCINVALID
Codice di errore che indica che non esiste alcuna chiamata di blocco in sospeso.
Commenti
Se il verbo in sospeso si riferisce a una conversazione (ad esempio, SEND_DATA o RECEIVE_AND_WAIT), il verbo viene eliminato e la sessione viene chiusa. Se il verbo si riferisce a un TP (ad esempio, RECEIVE_ALLOCATE o TP_STARTED), il TP viene terminato. In entrambi i casi, mentre l'implementazione riduce le conversazioni e le sessioni il più pulito possibile, non scarica buffer di invio, attendere le conferme e così via. Questa chiamata è sincrona e dopo il completamento dell'elaborazione descritta in precedenza, la funzione viene completata.
In Microsoft Windows un'applicazione multithreading può avere più operazioni di blocco in sospeso, ma solo una per thread. Per distinguere tra più chiamate in sospeso, WinAPPCCancelBlockingCall annulla l'operazione in sospeso sul thread corrente o chiamante, se presente; in caso contrario, ha esito negativo. Per impostazione predefinita in Windows, Windows APPC sospende il thread dell'applicazione chiamante mentre un'operazione è in sospeso. Di conseguenza, il thread in cui è stata avviata l'operazione di blocco non restituirà il controllo (e pertanto, non sarà in grado di emettere una chiamata a WinAPPCCancelBlockingCall) a meno che non venga registrato un hook di blocco per il thread usando WinAPPCSetBlockingHook.