Freigeben über


NtCancelIoFile-Funktion

Bricht alle ausstehenden Eingabe- und Ausgabevorgänge (E/A) ab, die vom aufrufenden Thread für die angegebene Datei ausgegeben werden. Die Funktion bricht keine E/A-Vorgänge ab, die andere Threads für ein Dateihandle aufrufen.

Um E/A-Vorgänge aus einem anderen Thread abzubrechen, verwenden Sie die NtCancelIoFileEx-Funktion .

Hinweis

Diese Funktion ist der Benutzermodus, der der Funktion CancelIo Win32 entspricht.

Syntax

BOOL WINAPI NtCancelIoFile(
  _In_ HANDLE hFile
);

Parameter

hFile [in]

Ein Handle zur Datei.

Die Funktion bricht alle ausstehenden E/A-Vorgänge für dieses Dateihandle ab.

Gibt zurück

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. Der Abbruchvorgang für alle ausstehenden E/A-Vorgänge, die vom aufrufenden Thread für das angegebene Dateihandle ausgegeben wurden, wurde erfolgreich angefordert. Der Thread kann mithilfe der GetOverlappedResult-Funktion bestimmen, wann die E/A-Vorgänge selbst abgeschlossen wurden.

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

Bemerkungen

Wenn E/A-Vorgänge für das angegebene Dateihandle ausstehen und vom aufrufenden Thread ausgegeben werden, werden sie von der NtCancelIoFile-Funktion abgebrochen. NtCancelIoFile bricht nur ausstehende E/A-Vorgänge auf dem Handle ab, der Zustand des Handles wird nicht geändert. Dies bedeutet, dass Sie sich nicht auf den Status des Handles verlassen können, da Sie nicht wissen können, ob der Vorgang erfolgreich abgeschlossen oder abgebrochen wurde.

Die E/A-Vorgänge müssen als überlappende E/A-Vorgänge ausgeführt werden. Andernfalls werden die E/A-Vorgänge nicht zurückgegeben, damit der Thread die NtCancelIoFile-Funktion aufrufen kann. Das Aufrufen der NtCancelIoFile-Funktion mit einem Dateihandle, das nicht mit FILE_FLAG_OVERLAPPED geöffnet wird, bewirkt nichts.

Alle E/A-Vorgänge, die abgebrochen werden, werden mit dem Fehler ERROR_OPERATION_ABORTED abgeschlossen, und alle Abschlussbenachrichtigungen für die E/A-Vorgänge erfolgen normal.

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

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block)
Ja
SMB 3.0 Transparent Failover (TFO)
Ja
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO)
Ja
Dateisystem mit freigegebenen Clustervolumes (CsvFS)
Ja
Robustes Dateisystem (Resilient File System, ReFS)
Ja

Anforderungen

Anforderung Wert
Header
ntioapi.h
Bibliothek
ntdll.lib

Siehe auch

CancelIoEx