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

ACCESS_MASK

InitializeObjectAttributes

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwCreateFile