Fungsi NtOpenFile (ntifs.h)

Rutinitas NtOpenFile membuka file, direktori, perangkat, atau volume yang ada.

Sintaks

__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

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 NtCreateFile.

[in] ObjectAttributes

Penunjuk ke struktur OBJECT_ATTRIBUTES yang menentukan nama objek dan atribut lainnya. Gunakan InitializeObjectAttributes untuk menginisialisasi struktur ini. Jika penelepon 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. Untuk informasi selengkapnya, lihat parameter ShareAccess dari NtCreateFile.

[in] OpenOptions

Menentukan opsi yang akan diterapkan saat membuka file. Untuk informasi selengkapnya, lihat parameter CreateOptions dari NtCreateFile.

Nilai kembali

NtOpenFile mengembalikan STATUS_SUCCESS atau kode kesalahan NTSTATUS yang sesuai. Dalam kasus terakhir, penelepon dapat menemukan informasi lebih lanjut tentang penyebab kegagalan dengan memeriksa parameter IoStatusBlock .

Keterangan

NtOpenFile menyediakan handel yang dapat digunakan pemanggil untuk memanipulasi data file, atau status dan atribut objek file. NtOpenFile menyediakan subset fungsionalitas yang disediakan oleh NtCreateFile. Untuk informasi selengkapnya, lihat Menggunakan File di Driver.

Setelah handel yang ditunjukkan oleh FileHandle tidak lagi digunakan, driver harus memanggil NtClose untuk menutupnya.

Jika penelepon 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.

Pemanggil NtOpenFile 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 menafsirkan 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
Klien minimum yang didukung Windows 2000
Target Platform Universal
Header ntifs.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (lihat bagian Keterangan)
Aturan kepatuhan DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Lihat juga

ACCESS_MASK

InitializeObjectAttributes

NtClose

NtCreateFile