Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die WinAPPCCancelBlockingCall-Funktion bricht alle ausstehenden Blockierungsvorgänge für den Thread ab. Jeder ausstehende blockierte Aufruf, der abgebrochen wurde, führt dazu, dass ein Fehlercode von WAPPCCANCEL generiert wird.
Syntax
BOOL WINAPI WinAPPCCancelBlockingCall(
void
);
Rückgabewert
Der Rückgabewert gibt an, ob die Abbruchanforderung erfolgreich war. Wenn der Wert 0 ist, wurde die Anforderung abgebrochen. Andernfalls lautet der Wert wie folgt:
WAPPCINVALID
Ein Fehlercode, der angibt, dass kein blockierender Aufruf aussteht.
Hinweise
Wenn sich das ausstehende Verb auf eine Konversation bezieht (z. B. SEND_DATA oder RECEIVE_AND_WAIT), wird das Verb gelöscht, und die Sitzung wird geschlossen. Wenn sich das Verb auf einen TP bezieht (z. B. RECEIVE_ALLOCATE oder TP_STARTED), wird das TP beendet. In beiden Fällen führt die Implementierung zwar Unterhaltungen und Sitzungen so sauber wie möglich herunter, aber sendepuffer werden nicht geleert, auf Bestätigungen gewartet usw. Dieser Aufruf ist synchron, und nachdem die oben beschriebene Verarbeitung abgeschlossen ist, ist die Funktion abgeschlossen.
In Microsoft Windows kann eine Multithreadanwendung mehrere Blockierungsvorgänge ausstehen, aber nur einen pro Thread. Um zwischen mehreren ausstehenden Aufrufen zu unterscheiden, bricht WinAPPCCancelBlockingCall den ausstehenden Vorgang für den aktuellen oder aufrufenden Anwendungsthread ab, sofern vorhanden; andernfalls tritt ein Fehler auf. In Windows setzt Windows APPC standardmäßig den aufrufenden Anwendungsthread an, während ein Vorgang aussteht. Infolgedessen wird der Thread, für den der Blockierungsvorgang initiiert wurde, die Kontrolle nicht wiedererlangt (und kann daher keinen Aufruf von WinAPPCCancelBlockingCall ausstellen), es sei denn, ein blockierender Hook wird für den Thread mithilfe von WinAPPCSetBlockingHook registriert.