NtCancelIoFileEx-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.
Hinweis
Diese Funktion ist der Benutzermodus, der der CancelIoEX Win32-Funktion entspricht.
Syntax
BOOL WINAPI NtCancelIoFileEx(
_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 Daten enthält, die für asynchrone E/A-Vorgänge verwendet werden.
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, was bedeutet, dass Sie mindestens eine Anforderung abbrechen können, während die NtCancelIoFile-Funktion alle ausstehenden Anforderungen für ein Dateihandle abbricht.
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 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, wenn sie abgeschlossen sind. 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). Rufen Sie die GetLastError-Funktion auf, um erweiterte Fehlerinformationen abzurufen.
Wenn diese Funktion keine Anforderung zum Abbrechen finden kann, ist der Rückgabewert 0 (null), und GetLastError gibt ERROR_NOT_FOUND zurück.
Bemerkungen
Mit der NTCancelIoFileEx-Funktion können Sie Anforderungen in anderen Threads als dem aufrufenden Thread abbrechen. Die NtCancelIoFile-Funktion bricht nur Anforderungen im selben Thread ab, der die NtCancelIoFile-Funktion aufgerufen hat. NtCancelIoFileEx 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.
Wenn für das angegebene Dateihandle ausstehende E/A-Vorgänge ausgeführt werden, markiert die NtCancelIoFileEx-Funktion diese zum Abbrechen. 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 NtCancelIoFileEx-Funktion wartet nicht, bis alle abgebrochenen Vorgänge abgeschlossen sind.
Wenn das Dateihandle einem Vervollständigungsport zugeordnet ist, wird ein E/A-Vervollständigungspaket nicht an den Port in die Warteschlange gestellt, wenn ein synchroner Vorgang erfolgreich abgebrochen wurde. Bei asynchronen Vorgängen, die noch ausstehen, stellt der Abbruchvorgang ein E/A-Vervollständigungspaket in die Warteschlange.
Der abgebrochene Vorgang wird mit einem von drei Status abgeschlossen. Sie müssen die vervollständigung status überprüfen, um den Abschlussstatus zu ermitteln. 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 anderen 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 |
SMB 3.0 Transparent Failover (TFO) |
Ja |
SMB 3.0 mit Horizontalskalieren von Dateifreigaben (SO) |
Ja |
Freigegebenes Clustervolume-Dateisystem (CsvFS) |
Ja |
Robustes Dateisystem (Resilient File System, ReFS) |
Ja |
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|