CancelIoEx-Funktion

Markiert alle ausstehenden E/A-Vorgänge für das angegebene Dateihandle. Die Funktion bricht nur E/A-Vorgänge im aktuellen Prozess ab, unabhängig davon, welcher Thread den E/A-Vorgang erstellt hat.

Syntax

BOOL WINAPI CancelIoEx(
  _In_     HANDLE       hFile,
  _In_opt_ LPOVERLAPPED lpOverlapped
);

Parameter

hFile [ In]

Ein Handle für die Datei.

lpOverlapped [ in, optional]

Ein Zeiger auf eine OVERLAPPED-Datenstruktur, die die für asynchrone E/A verwendeten Daten enthält.

Wenn dieser Parameter NULL ist, werden alle E/A-Anforderungen für den hFile-Parameter abgebrochen.

Wenn dieser Parameter nicht NULL ist, werden nur die spezifischen E/A-Anforderungen, die für die Datei mit der angegebenen lpOverlapped-Überlappungsstruktur ausgegeben wurden, als abgebrochen markiert. Das bedeutet, dass Sie eine oder mehrere Anforderungen abbrechen können, während die CancelIo-Funktion alle ausstehenden Anforderungen für ein Dateihandle abbricht.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. Der Abbruchvorgang für alle ausstehenden E/A-Vorgänge, die vom aufrufenden Prozess für das angegebene Dateihandle ausgegeben wurden, wurde erfolgreich angefordert. Die Anwendung darf die OVERLAPPED-Struktur, die den abgebrochenen E/A-Vorgängen zugeordnet ist, erst wiederverwenden oder freigeben, wenn sie abgeschlossen ist. Der Thread kann die GetOverlappedResult-Funktion verwenden, um zu bestimmen, wann die E/A-Vorgänge selbst abgeschlossen wurden.

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (null). Um erweiterte Fehlerinformationen abzurufen, rufen Sie die GetLastError-Funktion auf.

Wenn diese Funktion keine Anforderung zum Abbrechen finden kann, ist der Rückgabewert 0 (null), und GetLastError gibt ERROR NOT FOUND _ _ zurück.

Hinweise

Mit der CancelIoEx-Funktion können Sie Anforderungen in anderen Threads als dem aufrufenden Thread abbrechen. Die CancelIo-Funktion bricht nur Anforderungen im gleichen Thread ab, der die CancelIo-Funktion aufgerufen hat. CancelIoEx bricht nur ausstehende E/A für das Handle ab. Der Zustand des Handles wird nicht geändert. Dies bedeutet, dass Sie sich nicht auf den Zustand des Handles verlassen können, da Sie nicht wissen können, ob der Vorgang erfolgreich abgeschlossen oder abgebrochen wurde.

Wenn für das angegebene Dateihandle ausstehende E/A-Vorgänge ausgeführt werden, markiert die CancelIoEx-Funktion diese für den Abbruch. Die meisten Arten von Vorgängen können sofort abgebrochen werden. andere Vorgänge können bis zum Abschluss fortgesetzt werden, bevor sie tatsächlich abgebrochen werden und der Aufrufer benachrichtigt wird. Die CancelIoEx-Funktion wartet nicht auf den Abschluss aller abgebrochenen Vorgänge.

Wenn das Dateihandle einem Abschlussport zugeordnet ist, wird ein E/A-Abschlusspaket nicht in die Warteschlange des Ports eingereiht, wenn ein synchroner Vorgang erfolgreich abgebrochen wurde. Bei asynchronen Vorgängen, die noch ausstehen, stellt der Abbruchvorgang ein E/A-Abschlusspaket in die Warteschlange.

Der abgebrochene Vorgang wird mit einem von drei Status abgeschlossen. Sie müssen den Abschlussstatus überprüfen, um den Abschlussstatus zu bestimmen. Die drei Status sind:

  • Der Vorgang wurde normal abgeschlossen. Dies kann auch auftreten, wenn der Vorgang abgebrochen wurde, da die Abbruchanforderung möglicherweise nicht rechtzeitig übermittelt wurde, um den Vorgang abzubrechen.
  • Der Vorgang wurde abgebrochen. Die GetLastError-Funktion gibt ERROR OPERATION _ _ ABORTED zurück.
  • Der Vorgang ist mit einem weiteren Fehler fehlgeschlagen. Die GetLastError-Funktion gibt den relevanten Fehlercode zurück.

In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
Server Message Block (SMB) 3.0-Protokoll
Ja
Transparentes SMB 3.0-Failover (TFO)
Ja
SMB 3.0 mit Dateifreigaben mit aufskalieren (SO)
Ja
Freigegebenes Clustervolume File System (CsvFS)
Ja
Robustes Dateisystem (Resilient File System, ReFS)
Ja

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows [Vista-Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server)
Windows UWP-Apps für Server [ 2008-Desktop-Apps |]
Header
IoAPI.h (include Windows.h);
WinBase.h auf Windows Server 2008 R2, Windows 7, Windows Server 2008 und Windows Vista (einschließlich Windows.h)
Bibliothek
Kernel32.lib
DLL
Kernel32.dll

Siehe auch

CancelIo

CancelSynchronousIo

Abbrechen ausstehender E/A-Vorgänge

Dateiverwaltungsfunktionen

Synchrone und asynchrone E/A