Fungsi ZwOpenFile (wdm.h)
Rutinitas ZwOpenFile membuka file, direktori, perangkat, atau volume yang ada.
Sintaks
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
Penunjuk ke variabel HANDLE yang menerima handel ke file.
[in] DesiredAccess
Menentukan nilai ACCESS_MASK yang menentukan akses yang diminta ke objek. Untuk informasi selengkapnya, lihat parameter DesiredAccess dari ZwCreateFile.
[in] ObjectAttributes
Arahkan ke struktur OBJECT_ATTRIBUTES yang menentukan nama objek dan atribut lainnya. Gunakan InitializeObjectAttributes untuk menginisialisasi struktur ini. Jika pemanggil tidak berjalan dalam konteks utas sistem, pemanggil harus mengatur atribut OBJ_KERNEL_HANDLE saat memanggil InitializeObjectAttributes.
[out] IoStatusBlock
Arahkan ke struktur IO_STATUS_BLOCK yang menerima status penyelesaian akhir dan informasi tentang operasi yang diminta.
[in] ShareAccess
Menentukan jenis akses berbagi untuk file tersebut. Untuk informasi selengkapnya, lihat parameter ShareAccess dari ZwCreateFile.
[in] OpenOptions
Menentukan opsi yang akan diterapkan saat membuka file. Untuk informasi selengkapnya, lihat parameter CreateOptions dari ZwCreateFile.
Nilai kembali
ZwOpenFile mengembalikan STATUS_SUCCESS atau kode kesalahan NTSTATUS yang sesuai. Dalam kasus terakhir, pemanggil dapat menemukan informasi lebih lanjut tentang penyebab kegagalan dengan memeriksa parameter IoStatusBlock .
Keterangan
ZwOpenFile menyediakan handel yang dapat digunakan pemanggil untuk memanipulasi data file, atau status dan atribut objek file. ZwOpenFile menyediakan subset fungsionalitas yang disediakan oleh ZwCreateFile. Untuk informasi selengkapnya, lihat Menggunakan File di Driver.
Setelah handel yang ditunjukkan oleh FileHandle tidak lagi digunakan, driver harus memanggil ZwClose untuk menutupnya.
Jika pemanggil tidak berjalan dalam konteks utas sistem, pemanggil harus memastikan bahwa setiap handel yang dibuatnya adalah handel privat. Jika tidak, handel dapat diakses oleh proses dalam konteks driver yang berjalan. Untuk informasi selengkapnya, lihat Penanganan Objek.
Penelepon ZwOpenFile harus berjalan di IRQL = PASSIVE_LEVEL dan dengan APC kernel khusus diaktifkan.
Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtOpenFile" alih-alih "ZwOpenFile".
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinItas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (lihat bagian Keterangan) |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Lihat juga
Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli