NtOpenFile-Funktion (ntifs.h)
Die NtOpenFile Routine öffnet eine vorhandene Datei, ein Verzeichnis, ein Gerät oder ein Volume.
Syntax
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenFile(
[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 für 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 parameter DesiredAccess von NtCreateFile.
[in] ObjectAttributes
Zeigen Sie 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 das attribut OBJ_KERNEL_HANDLE festgelegt werden, wenn er InitializeObjectAttributesaufruft.
[out] IoStatusBlock
Zeigen Sie auf eine IO_STATUS_BLOCK Struktur, die den endgültigen Abschlussstatus und Informationen zum angeforderten Vorgang empfängt.
[in] ShareAccess
Gibt den Typ des Freigabezugriffs für die Datei an. Weitere Informationen finden Sie im parameter ShareAccess von NtCreateFile.
[in] OpenOptions
Gibt die Beim Öffnen der Datei anzuwendenden Optionen an. Weitere Informationen finden Sie im parameter CreateOptions von NtCreateFile.
Rückgabewert
NtOpenFile- gibt STATUS_SUCCESS oder den entsprechenden NTSTATUS-Fehlercode zurück. Im letzteren Fall kann der Aufrufer weitere Informationen zur Ursache des Fehlers finden, indem der IoStatusBlock Parameter überprüft wird.
Bemerkungen
NtOpenFile- stellt ein Handle bereit, mit dem der Aufrufer die Daten einer Datei oder den Status und Attribute des Dateiobjekts bearbeiten kann. NtOpenFile- stellt eine Teilmenge der Funktionen bereit, die von NtCreateFile-bereitgestellt werden. Weitere Informationen finden Sie unter Verwenden von Dateien in einem Treiber-.
Sobald der Von FileHandle- darauf verwiesene Handle nicht mehr verwendet wird, muss der Treiber NtClose- aufrufen, um es zu schließen.
Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss sichergestellt werden, dass es sich bei den erstellten Handles um private Handles handelt. Andernfalls kann über den Prozess, in dem der Treiber ausgeführt wird, auf das Handle zugegriffen werden kann. Weitere Informationen finden Sie unter Object Handles.
Aufrufer von NtOpenFile- müssen unter IRQL = PASSIVE_LEVEL und mit speziellen Kernel-APCs ausgeführt werden, dieaktiviert sind.
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, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL (siehe Abschnitt "Hinweise") |
DDI-Complianceregeln | HwStorPortProhibitedDIs, PowerIrpDDis |