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 |