Bagikan melalui


Makro InitializeObjectAttributes (ntdef.h)

Makro InitializeObjectAttributes menginisialisasi struktur OBJECT_ATTRIBUTES buram, yang menentukan properti handel objek ke rutinitas yang membuka handel.

Sintaks

VOID InitializeObjectAttributes(
  [out]          POBJECT_ATTRIBUTES   p,
  [in]           PUNICODE_STRING      n,
  [in]           ULONG                a,
  [in]           HANDLE               r,
  [in, optional] PSECURITY_DESCRIPTOR s
);

Parameter

p

Penunjuk ke struktur OBJECT_ATTRIBUTES untuk diinisialisasi.

n

Penunjuk ke string Unicode yang berisi nama objek tempat handel akan dibuka. Ini harus berupa nama objek yang sepenuhnya memenuhi syarat, atau nama jalur relatif ke direktori objek yang ditentukan oleh parameter RootDirectory.

a

Menentukan satu atau beberapa bendera berikut:

Bendera Deskripsi
OBJ_INHERIT Handel ini dapat diwariskan oleh proses turunan dari proses saat ini.
OBJ_PERMANENT Bendera ini hanya berlaku untuk objek yang diberi nama dalam manajer objek. Secara default, objek tersebut dihapus ketika semua handel terbuka ditutup. Jika bendera ini ditentukan, objek tidak dihapus ketika semua handel yang terbuka ditutup. Driver dapat menggunakan ZwMakeTemporaryObject untuk menghapus objek permanen.
OBJ_EXCLUSIVE Hanya satu handel yang dapat dibuka untuk objek ini.
OBJ_CASE_INSENSITIVE Jika bendera ini ditentukan, perbandingan tidak peka huruf besar/kecil digunakan saat mencocokkan parameter ObjectName dengan nama objek yang ada. Jika tidak, nama objek dibandingkan menggunakan pengaturan sistem default.
OBJ_OPENIF Jika bendera ini ditentukan ke rutinitas yang membuat objek, dan objek tersebut sudah ada maka rutinitas harus membuka objek tersebut. Jika tidak, rutinitas membuat objek mengembalikan kode NTSTATUS STATUS_OBJECT_NAME_COLLISION.
OBJ_KERNEL_HANDLE Menentukan bahwa handel hanya dapat diakses dalam mode kernel.
OBJ_FORCE_ACCESS_CHECK Pembukaan rutin handel harus memberlakukan semua pemeriksaan akses untuk objek, bahkan jika handel dibuka dalam mode kernel.

r

Handel ke direktori objek akar untuk nama jalur yang ditentukan dalam parameter ObjectName. Jika ObjectName adalah nama objek yang sepenuhnya memenuhi syarat, RootDirectory adalah NULL. Gunakan ZwCreateDirectoryObject ZwCreateDirectoryObject untuk mendapatkan handel ke direktori objek.

s

Menentukan deskriptor keamanan untuk diterapkan ke objek saat dibuat. Parameter ini bersifat opsional. Driver dapat menentukan NULL untuk menerima keamanan default untuk objek. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

Menampilkan nilai

Tidak ada

Keterangan

InitializeObjectAttributes menginisialisasi struktur OBJECT_ATTRIBUTES yang menentukan properti handel objek yang akan dibuka. Penelepon kemudian dapat meneruskan pointer ke struktur ini ke rutinitas yang benar-benar membuka handel.

Rutinitas driver yang berjalan dalam konteks proses selain proses sistem harus mengatur bendera OBJ_KERNEL_HANDLE untuk parameter Atribut . Bendera ini membatasi penggunaan handel yang dibuka untuk objek tersebut untuk memproses hanya berjalan dalam mode kernel. Jika tidak, handel dapat diakses oleh proses dalam konteks driver yang berjalan.

Perhatikan bahwa InitializeObjectAttributes selalu mengatur anggota SecurityQualityOfServicedari OBJECT_ATTRIBUTES ke NULL. Driver yang memerlukan nilai non-NULL dapat mengatur SecurityQualityOfService secara langsung.

Persyaratan

   
Target Platform Desktop
Header ntdef.h (termasuk Wdm.h, Ntddk.h, Ntdef.h)

Lihat juga

ExCreateCallback

IoCreateFile

OBJECT_ATTRIBUTES

PsCreateSystemThread

SECURITY_DESCRIPTOR

UNICODE_STRING

ZwCreateDirectoryObject

ZwCreateFile

ZwCreateKey

ZwMakeTemporaryObject

ZwOpenFile

ZwOpenKey

ZwOpenSection

ZwOpenSymbolicLinkObject