Fungsi SeSetSecurityDescriptorInfoEx (ntifs.h)
Rutinitas SeSetSecurityDescriptorInfoEx memodifikasi deskriptor keamanan objek dan menentukan apakah objek mendukung pewarisan otomatis entri kontrol akses (ACE).
Sintaks
NTSTATUS SeSetSecurityDescriptorInfoEx(
[in, optional] PVOID Object,
[in] PSECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR ModificationDescriptor,
[in, out] PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
[in] ULONG AutoInheritFlags,
[in] POOL_TYPE PoolType,
[in] PGENERIC_MAPPING GenericMapping
);
Parameter
[in, optional] Object
Penunjuk ke objek yang deskriptor keamanannya akan dimodifikasi. Ini digunakan untuk memperbarui informasi kuota keamanan.
[in] SecurityInformation
Penunjuk ke nilai yang menentukan informasi keamanan mana yang akan diatur. Dapat berupa kombinasi dari satu atau beberapa hal berikut ini.
Nilai | Makna |
---|---|
DACL_SECURITY_INFORMATION | Menunjukkan daftar kontrol akses diskresi (DACL) objek sedang diatur. Membutuhkan akses WRITE_DAC. |
GROUP_SECURITY_INFORMATION | Menunjukkan pengidentifikasi grup utama objek sedang diatur. Membutuhkan akses WRITE_OWNER. |
OWNER_SECURITY_INFORMATION | Menunjukkan pengidentifikasi pemilik objek sedang diatur. Membutuhkan akses WRITE_OWNER. |
SACL_SECURITY_INFORMATION | Menunjukkan sistem ACL (SACL) objek sedang diatur. Membutuhkan akses ACCESS_SYSTEM_SECURITY. |
ModificationDescriptor
Pendeskripsi keamanan input yang akan diterapkan ke objek. Penelepon rutin ini diharapkan untuk memeriksa dan menangkap pendeskripsi keamanan yang diteruskan sebelum memanggil, dan melepaskannya setelah memanggil.
[in, out] ObjectsSecurityDescriptor
Arahkan ke penunjuk ke deskriptor keamanan objek. Deskriptor keamanan harus dalam format relatif mandiri. Struktur ini harus dibatalkan alokasinya oleh pemanggil.
[in] AutoInheritFlags
Bitmask yang mengontrol pewarisan otomatis ACE. Atur ke LOGICAL OR dari satu atau beberapa bendera bit berikut:
Bendera Informasi Keamanan | Makna |
---|---|
SEF_DACL_AUTO_INHERIT | Jika bendera ini diatur, DACL diperlakukan sebagai DACL pewarisan otomatis dan diproses seperti yang dijelaskan di bagian Keterangan berikut. Bit ini diabaikan jika DACL_SECURITY_INFORMATION tidak diatur dalam parameter SecurityInformation . |
SEF_SACL_AUTO_INHERIT | Jika bendera ini diatur, SACL diperlakukan sebagai SACL yang diwarisi secara otomatis dan diproses seperti yang dijelaskan di bagian Keterangan berikut. Bit ini diabaikan jika SACL_SECURITY_INFORMATION tidak diatur dalam parameter SecurityInformation . |
[in] PoolType
Menentukan jenis kumpulan yang akan digunakan saat mengalokasikan deskriptor keamanan baru, yang bisa menjadi salah satu dari berikut ini:
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Biasanya, pemanggil menentukan PagedPool, atau NonPagedPool jika buffer akan diakses di IRQL >= DISPATCH_LEVEL atau dalam konteks utas arbitrer.
Jenis kumpulan NonPagedPoolMustSucceed dan NonPagedPoolCacheAlignedMustS sudah usang dan tidak boleh lagi digunakan.
[in] GenericMapping
Penunjuk ke struktur GENERIC_MAPPING yang menentukan pemetaan generik ke jenis akses tertentu dan standar untuk objek yang diakses. Struktur pemetaan ini diharapkan aman untuk diakses (yaitu, ditangkap jika perlu) sebelum diteruskan ke rutinitas ini.
Nilai kembali
Menampilkan kode | Deskripsi |
---|---|
STATUS_SUCCESS | Deskriptor keamanan objek berhasil dimodifikasi. |
STATUS_BAD_DESCRIPTOR_FORMAT | Deskriptor keamanan objek yang disediakan tidak dalam format relatif mandiri. |
STATUS_NO_SECURITY_ON_OBJECT | Objek tidak memiliki pendeskripsi keamanan. |
Keterangan
Jika parameter AutoInheritFlags adalah nol, efek memanggil SeSetSecurityDescriptorInfoEx sama dengan memanggil SeSetSecurityDescriptorInfo.
Jika AutoInheritFlags menentukan bit SEF_DACL_AUTO_INHERIT, SeSetSecurityDescriptorInfoEx menerapkan aturan berikut ke DACL untuk membuat deskriptor keamanan baru dari deskriptor saat ini:
Jika bendera SE_DACL_PROTECTED tidak diatur dalam bit kontrol deskriptor keamanan saat ini atau input SecurityDescriptor, SeSetSecurityDescriptorInfoEx membangun pendeskripsi keamanan output dari ACE yang diwariskan dari deskriptor keamanan saat ini dan ASE yang tidak diwariskan dari SecurityDescriptor. Artinya, tidak mungkin untuk mengubah ACE yang diwariskan dengan mengubah ACL pada objek. Perilaku ini mempertahankan ACE yang diwariskan saat diwarisi dari kontainer induk.
Jika SE_DACL_PROTECTED diatur dalam input SecurityDescriptor, deskriptor keamanan saat ini diabaikan. Deskriptor keamanan output dibangun sebagai salinan input SecurityDescriptor dengan bit INHERITED_ACE dimatikan.
Idealnya editor ACL harus menonaktifkan bit INHERITED_ACE yang menunjukkan kepada pemanggilnya bahwa ACE yang diwarisi dari induk objek sekarang sedang diatur secara eksplisit pada objek.
- Jika SE_DACL_PROTECTED diatur dalam deskriptor keamanan saat ini dan bukan di SecurityDescriptor, deskriptor keamanan saat ini diabaikan. Deskriptor keamanan output dibuat sebagai salinan SecurityDescriptor. Adalah tanggung jawab pemanggil untuk memastikan bahwa ACE yang benar mengaktifkan bit INHERITED_ACE.
Jika AutoInheritFlags menentukan bit SEF_SACL_AUTO_INHERIT, SeSetSecurityDescriptorInfoEx menerapkan aturan serupa ke SACL baru.
Untuk informasi selengkapnya tentang kontrol akses dan pewarisan ACE, lihat bagian Keamanan dari dokumentasi Microsoft Windows SDK.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |