Freigeben über


WinAPPCCancelAsyncRequest

Die WinAPPCCancelAsyncRequest-Funktion bricht eine ausstehende WinAsyncAPPC-basierte Anforderung ab.

Syntax

  
    int WINAPI WinAPPCCancelAsyncRequest(   
HANDLE hAsyncTaskID);  

Parameter

hAsyncTaskID
Angegebener Parameter. Gibt die asynchrone Aufgabe an, die abgebrochen werden soll.

Rückgabewert

Der Rückgabewert gibt an, ob die asynchrone Anforderung abgebrochen wurde. Wenn der Wert null ist, wurde die Anforderung abgebrochen. Andernfalls ist der Wert einer der folgenden:

WAPPCINVALID
Ein Fehlercode, der angibt, dass der angegebene asynchrone Aufgabenbezeichner ungültig war.

WAPPCALREADY
Ein Fehlercode, der angibt, dass die asynchrone Routine, die abgebrochen wird, bereits abgeschlossen ist.

Hinweise

Eine asynchrone Aufgabe, die zuvor durch Ausgabe einer der Funktionen WinAsyncAPPC, WinAsyncAPPCEx oder WinAsyncAPPCIOCP initiiert wurde, kann vor Abschluss abgebrochen werden, indem die WinAPPCCancelAsyncRequest-Funktion ausgegeben wird, wobei der asynchrone Aufgabenbezeichner angegeben wird, der von der ursprünglichen Funktion in hAsyncTaskID zurückgegeben wird.

Wenn sich das ausstehende Verb auf eine Unterhaltung 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 schließt die Implementierung Unterhaltungen und Sitzungen zwar so sauber wie möglich, leert aber keine Sendepuffer, wartet auf Bestätigungen usw. Dieser Aufruf ist synchron, und nach Abschluss der oben beschriebenen Verarbeitung wird eine Abschlussmeldung für das abgebrochene Verb gesendet.

Wenn der Versuch, eine vorhandene asynchrone WinAsyncAPPC-Routine abzubrechen, mit dem Fehlercode WAPPCALREADY fehlschlägt, ist einer von zwei Dingen aufgetreten. Entweder wurde die ursprüngliche Routine bereits abgeschlossen, und die Anwendung hat sich mit der resultierenden Nachricht befasst, oder die ursprüngliche Routine ist bereits abgeschlossen, und die resultierende Nachricht wartet weiterhin in der Anwendungsfensterwarteschlange.