Bagikan melalui


Fungsi IoGetDriverDirectory (wdm.h)

Mengembalikan handel ke direktori pada disk tempat driver dapat membaca dan menulis file. File dalam direktori tersebut berlaku untuk objek driver tertentu.

Sintaks

NTSTATUS IoGetDriverDirectory(
  [_In_]  PDRIVER_OBJECT        DriverObject,
  [_In_]  DRIVER_DIRECTORY_TYPE DirectoryType,
  [_In_]  ULONG                 Flags,
  [_Out_] PHANDLE               DriverDirectoryHandle
);

Parameter

[_In_] DriverObject

Penunjuk ke objek driver (struktur DRIVER_OBJECT ) dari driver panggilan.

[_In_] DirectoryType

Nilai jenis _DRIVER_DIRECTORY_TYPE yang menunjukkan jenis direktori yang diminta.

[_In_] Flags

Harus 0.

[_Out_] DriverDirectoryHandle

Penunjuk ke variabel yang menerima HANDLE ke direktori driver yang diminta. Pemanggil tidak boleh melewati NULL.

Nilai kembali

Mengembalikan nilai NTSTATUS yang sesuai. Nilai yang mungkin termasuk:

Kode kesalahan Deskripsi
STATUS_SUCCESS Panggilan berhasil membuka handel ke direktori driver yang diminta.
STATUS_INVALID_PARAMETER Nilai input ke fungsi ini tidak valid. Misalnya, DriverObject atau DriverDirectoryHandle adalah NULL; Bendera bukan 0.

Keterangan

Jika IoGetDriverDirectory dipanggil sebelum disk dan volume yang diperlukan dimulai, fungsi tidak membuka handel dan mengembalikan kesalahan.

Driver biasanya menggunakan ZwOpenFile dan ZwCreateFile untuk mengakses/membuat file. Salah satu parameter untuk fungsi tersebut adalah struktur OBJECT_ATTRIBUTES , yang berisi nama objek dan direktori akar. Jika direktori akar adalah NULL, maka nama objek harus merupakan jalur yang sepenuhnya memenuhi syarat. Namun, jika Anda memberikan handel untuk direktori akar, maka nama objek harus relatif terhadap objek (dalam kasus file, direktori), yang diwakili oleh handel.

Setelah panggilan IoGetDriverDirectory berhasil, gunakan HANDLE yang diterima sebagai direktori akar di OBJECT_ATTRIBUTES yang Anda berikan ke ZwOpenFile dan ZwCreateFile.

Driver harus memanggil ZwClose untuk menutup handel yang diterima ketika akses tidak lagi diperlukan.

Pemanggil IoGetDriverDirectory harus berjalan di IRQL = PASSIVE_LEVEL dalam konteks utas sistem.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10 versi 1803
Header wdm.h
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Lihat juga

DRIVER_OBJECT

_DRIVER_DIRECTORY_TYPE

ZwOpenFile

ZwCreateFile

ZwClose

OBJECT_ATTRIBUTES

InitializeObjectAttributes