Deskriptor Keamanan Absolut dan Self-Relative

Deskriptor keamanan dapat dalam format absolut atau relatif mandiri. Dalam format absolut, deskriptor keamanan berisi penunjuk ke informasinya, bukan informasi itu sendiri. Dalam format relatif mandiri, deskriptor keamanan menyimpan struktur SECURITY_DESCRIPTOR dan informasi keamanan terkait dalam blok memori yang berdekatan. Untuk menentukan apakah deskriptor keamanan relatif mandiri atau absolut, panggil fungsi GetSecurityDescriptorControl dan periksa bendera SE_SELF_RELATIVE parameter SECURITY_DESCRIPTOR_CONTROL . Anda dapat menggunakan fungsi MakeSelfRelativeSD dan MakeAbsoluteSD untuk mengonversi di antara kedua format ini.

Format absolut berguna ketika Anda membangun deskriptor keamanan dan memiliki penunjuk ke semua komponen, misalnya, ketika pengaturan default untuk pemilik, grup, dan ACL diskresi tersedia. Dalam hal ini, Anda dapat memanggil fungsi InitializeSecurityDescriptor untuk menginisialisasi struktur SECURITY_DESCRIPTOR , lalu memanggil fungsi seperti SetSecurityDescriptorDacl untuk menetapkan penunjuk ACL dan SID ke deskriptor keamanan.

Dalam format relatif mandiri, deskriptor keamanan selalu dimulai dengan struktur SECURITY_DESCRIPTOR , tetapi komponen lain dari deskriptor keamanan dapat mengikuti struktur dalam urutan apa pun. Alih-alih menggunakan alamat memori, komponen deskriptor keamanan diidentifikasi oleh offset dari awal deskriptor. Format ini berguna ketika deskriptor keamanan harus disimpan pada disk, ditransmisikan melalui protokol komunikasi, atau disalin dalam memori.

Kecuali untuk MakeAbsoluteSD, semua fungsi yang mengembalikan deskriptor keamanan melakukannya menggunakan format relatif mandiri. Deskriptor keamanan yang diteruskan sebagai argumen ke fungsi dapat berupa bentuk relatif mandiri atau absolut. Untuk informasi selengkapnya, lihat dokumentasi untuk fungsi tersebut.