Fungsi SeAssignSecurityEx (wdm.h)
Rutinitas SeAssignSecurityEx membangun deskriptor keamanan relatif mandiri untuk objek baru mengingat parameter opsional berikut: deskriptor keamanan direktori induk objek, deskriptor keamanan eksplisit untuk objek, dan jenis objek.
Sintaks
NTSTATUS SeAssignSecurityEx(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in, optional] PSECURITY_DESCRIPTOR ExplicitDescriptor,
[out] PSECURITY_DESCRIPTOR *NewDescriptor,
[in, optional] GUID *ObjectType,
[in] BOOLEAN IsDirectoryObject,
[in] ULONG AutoInheritFlags,
[in] PSECURITY_SUBJECT_CONTEXT SubjectContext,
[in] PGENERIC_MAPPING GenericMapping,
[in] POOL_TYPE PoolType
);
Parameter
[in, optional] ParentDescriptor
Arahkan ke SECURITY_DESCRIPTOR objek induk yang berisi objek baru yang sedang dibuat. ParentDescriptor bisa NULL, atau memiliki daftar kontrol akses sistem NULL (SACL) atau daftar kontrol akses diskresi NULL (DACL).
[in, optional] ExplicitDescriptor
Arahkan ke SECURITY_DESCRIPTOR eksplisit yang diterapkan ke objek baru. ExplicitDescriptor dapat berupa NULL, atau memiliki NULL SACL atau NULL DACL.
[out] NewDescriptor
Menerima penunjuk ke SECURITY_DESCRIPTOR yang dikembalikan. SeAssignSecurityEx mengalokasikan buffer dari kumpulan memori halaman.
[in, optional] ObjectType
Penunjuk ke GUID untuk jenis objek yang sedang dibuat. Jika objek tidak memiliki GUID, ObjectType harus diatur ke NULL.
[in] IsDirectoryObject
Menentukan apakah objek baru adalah objek direktori. Jika IsDirectoryObject diatur ke TRUE, objek baru adalah objek direktori, jika tidak, objek baru bukan objek direktori.
[in] AutoInheritFlags
Menentukan jenis pewarisan otomatis yang diterapkan ke entri kontrol akses (ACE) dalam daftar kontrol akses (ACL) yang ditentukan oleh ParentDescriptor. AutoInheritFlags juga mengontrol pemeriksaan hak istimewa, pemeriksaan pemilik, dan pengaturan pemilik dan grup default untuk NewDescriptor. AutoInheritFlags harus diatur ke logis OR dari satu atau beberapa nilai berikut:
Nilai | Makna |
---|---|
SEF_DACL_AUTO_INHERIT | ACE dalam DACL ParentDescriptor diwarisi oleh NewDescriptor, selain ACE eksplisit yang ditentukan oleh ExplicitDescriptor. |
SEF_SACL_AUTO_INHERIT | ACE dalam SACL ParentDescriptor diwarisi oleh NewDescriptor, selain ACE eksplisit yang ditentukan oleh ExplicitDescriptor. |
SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT | ExplicitDescriptor adalah deskriptor default untuk jenis objek yang ditentukan oleh ObjectType. ExplicitDescriptor tidak digunakan jika ACE diwarisi dari ParentDescriptor. |
SEF_AVOID_PRIVILEGE_CHECK | Pemeriksaan hak istimewa tidak dilakukan. Bendera ini berguna dengan pewarisan otomatis karena menghindari pemeriksaan hak istimewa pada setiap anak yang perlu diperbarui. |
SEF_AVOID_OWNER_CHECK | Pemeriksaan pemilik belum selesai. |
SEF_DEFAULT_OWNER_FROM_PARENT |
Jika pemilik ditentukan oleh ExplicitDescriptor, bendera ini tidak digunakan, dan pemilik NewDescriptor diatur ke pemilik yang ditentukan oleh ExplictDescriptor.
Jika pemilik tidak ditentukan oleh ExplicitDescriptor, bendera ini digunakan dengan cara berikut: Jika bendera diatur, pemilik NewDescriptor diatur ke pemilik ParentDescriptor. Jika tidak, pemilik NewDescriptor diatur ke pemilik yang ditentukan oleh SubjectContext. |
SEF_DEFAULT_GROUP_FROM_PARENT |
Jika grup ditentukan oleh ExplicitDescriptor, bendera ini tidak digunakan, dan grup NewDescriptor diatur ke grup yang ditentukan oleh ExplictDescriptor.
Jika grup tidak ditentukan oleh ExplicitDescriptor, bendera ini digunakan dengan cara berikut: Jika bendera diatur, grup NewDescriptor diatur ke grup ParentDescriptor. Jika tidak, grup NewDescriptor diatur ke grup yang ditentukan oleh SubjectContext. |
Penetapan ACL sistem dan diskresi dijelaskan dalam tabel berikut:
Deskriptor eksplisit nondefault(1) | Deskriptor eksplisit default(2) | NULL Deskriptor eksplisit | |
---|---|---|---|
ACL diwarisi dari deskriptor induk(3). | Tetapkan ACL yang diwariskan dan eksplisit(5)(6). | Tetapkan ACL yang diwariskan. | Tetapkan ACL yang diwariskan. |
ACL tidak diwariskan dari deskriptor induk(4). | Tetapkan ACL nondefault. | Tetapkan ACL default. | Tidak menetapkan ACL. |
Catatan Penugasan
- Bendera SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT tidak ditentukan.
- Bendera SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT ditentukan.
- Bendera pewarisan otomatis untuk ACL ditentukan (SEF_DACL_AUTO_INHERIT atau SEF_SACL_AUTO_INHERIT).
- Bendera warisan otomatis untuk ACL tidak ditentukan.
- ACE dengan bit INHERITED_ACE diatur dalam anggota AceFlags mereka tidak disalin ke deskriptor keamanan yang ditetapkan.
- ACE yang diwarisi dari deskriptor induk ditambahkan setelah ACE yang ditentukan oleh deskriptor eksplisit.
[in] SubjectContext
Arahkan ke konteks keamanan subjek yang membuat objek. SubjectContext digunakan untuk mengambil informasi keamanan default untuk objek baru, termasuk pemilik default, grup utama, dan kontrol akses diskresi.
[in] GenericMapping
Penunjuk ke array nilai masker akses yang menentukan pemetaan antara setiap hak generik ke hak khusus objek.
[in] PoolType
Parameter ini tidak digunakan. Buffer untuk menahan deskriptor keamanan baru selalu dialokasikan dari kumpulan halaman.
Mengembalikan nilai
SeAssignSecurityEx mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Penugasan berhasil. |
|
SID yang disediakan sebagai pemilik deskriptor keamanan baru bukanlah SID yang diizinkan penelepon untuk ditetapkan sebagai pemilik objek. |
|
Pemanggil tidak memiliki hak istimewa (SeSecurityPrivilege) yang diperlukan untuk secara eksplisit menetapkan SACL yang ditentukan. |
Keterangan
SeAssignSecurityEx memperluas operasi dasar SeAssignSecurity dengan cara berikut:
- ObjectType secara opsional menentukan jenis objek. Pewarisan khusus objek dikendalikan oleh anggota ACE khusus objek berikut: Bendera, InheritedObjectType, dan Header.AceFlags.
- AutoInheritFlags menentukan jenis pewarisan otomatis ACE yang digunakan. AutoInheritFlags juga mengontrol pemeriksaan hak istimewa, pemeriksaan pemilik, dan pengaturan pemilik dan grup default untuk NewDescriptor.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk