ZwOpenFile-Funktion (wdm.h)
Die ZwOpenFile-Routine öffnet eine vorhandene Datei, ein Verzeichnis, ein Gerät oder ein Volume.
Syntax
NTSYSAPI NTSTATUS ZwOpenFile(
[out] PHANDLE FileHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG ShareAccess,
[in] ULONG OpenOptions
);
Parameter
[out] FileHandle
Zeiger auf eine HANDLE-Variable, die ein Handle auf die Datei empfängt.
[in] DesiredAccess
Gibt einen ACCESS_MASK Wert an, der den angeforderten Zugriff auf das Objekt bestimmt. Weitere Informationen finden Sie im DesiredAccess-Parameter von ZwCreateFile.
[in] ObjectAttributes
Zeiger auf eine OBJECT_ATTRIBUTES-Struktur , die den Objektnamen und andere Attribute angibt. Verwenden Sie InitializeObjectAttributes , um diese Struktur zu initialisieren. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er das attribut OBJ_KERNEL_HANDLE festlegen, wenn initializeObjectAttributes aufgerufen wird.
[out] IoStatusBlock
Zeiger auf eine IO_STATUS_BLOCK-Struktur, die die endgültige Vervollständigung status und Informationen zum angeforderten Vorgang empfängt.
[in] ShareAccess
Gibt den Typ des Freigabezugriffs für die Datei an. Weitere Informationen finden Sie im ShareAccess-Parameter von ZwCreateFile.
[in] OpenOptions
Gibt die Optionen an, die beim Öffnen der Datei angewendet werden sollen. Weitere Informationen finden Sie im CreateOptions-Parameter von ZwCreateFile.
Rückgabewert
ZwOpenFile gibt STATUS_SUCCESS oder den entsprechenden NTSTATUS-Fehlercode zurück. Im letzteren Fall kann der Aufrufer weitere Informationen zur Ursache des Fehlers finden, indem er den IoStatusBlock-Parameter überprüft.
Hinweise
ZwOpenFile stellt ein Handle bereit, mit dem der Aufrufer die Daten einer Datei oder den Zustand und die Attribute des Dateiobjekts bearbeiten kann. ZwOpenFile stellt eine Teilmenge der von ZwCreateFile bereitgestellten Funktionen bereit. Weitere Informationen finden Sie unter Verwenden von Dateien in einem Treiber.
Sobald der von FileHandle angezeigte Handle nicht mehr verwendet wird, muss der Treiber ZwClose aufrufen, um ihn zu schließen.
Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er sicherstellen, dass alle von dem Aufrufer erstellten Handles private Handles sind. Andernfalls kann der Prozess, in dessen Kontext der Treiber ausgeführt wird, auf das Handle zugreifen. Weitere Informationen finden Sie unter Objekthandles.
Aufrufer von ZwOpenFile müssen unter IRQL = PASSIVE_LEVEL und mit aktivierten speziellen Kernel-APCs ausgeführt werden.
Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtOpenFile" anstelle von "ZwOpenFile" verwenden.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (siehe Abschnitt Hinweise) |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |