Fungsi RtlSelfRelativeToAbsoluteSD (ntifs.h)
Rutinitas RtlSelfRelativeToAbsoluteSD membuat deskriptor keamanan baru dalam format absolut dengan menggunakan deskriptor keamanan dalam format relatif mandiri sebagai templat.
Sintaks
NTSYSAPI NTSTATUS RtlSelfRelativeToAbsoluteSD(
[in] PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
[in, out] PULONG AbsoluteSecurityDescriptorSize,
[out] PACL Dacl,
[in, out] PULONG DaclSize,
[out] PACL Sacl,
[in, out] PULONG SaclSize,
[out] PSID Owner,
[in, out] PULONG OwnerSize,
[out] PSID PrimaryGroup,
[in, out] PULONG PrimaryGroupSize
);
Parameter
[in] SelfRelativeSecurityDescriptor
Penunjuk ke buffer yang dialokasikan pemanggil yang berisi struktur SECURITY_DESCRIPTOR dalam format relatif mandiri. RtlSelfRelativeToAbsoluteSD membuat versi deskriptor keamanan ini dalam format absolut tanpa memodifikasi yang asli.
[out] AbsoluteSecurityDescriptor
Penunjuk ke buffer yang dialokasikan pemanggil yang menerima isi utama deskriptor keamanan format absolut. Informasi ini diformat sebagai struktur SECURITY_DESCRIPTOR.
[in, out] AbsoluteSecurityDescriptorSize
Penunjuk ke variabel yang dialokasikan pemanggil yang menentukan ukuran, dalam byte, dari buffer yang diarahkan oleh parameter AbsoluteSecurityDescriptor . Jika buffer tidak cukup besar untuk menahan deskriptor keamanan, RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke ukuran minimum yang diperlukan.
[out] Dacl
Penunjuk ke buffer yang dialokasikan pemanggil yang menerima DACL deskriptor keamanan berformat absolut. Isi utama deskriptor keamanan format absolut mereferensikan penunjuk ini.
[in, out] DaclSize
Penunjuk ke variabel yang dialokasikan pemanggil yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter Dacl . Jika buffer tidak cukup besar untuk menahan DACL, RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke ukuran minimum yang diperlukan.
[out] Sacl
Penunjuk ke buffer yang dialokasikan pemanggil yang menerima SACL dari deskriptor keamanan berformat absolut. Isi utama deskriptor keamanan format absolut mereferensikan penunjuk ini.
[in, out] SaclSize
Penunjuk ke variabel yang dialokasikan pemanggil yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter Sacl . Jika buffer tidak cukup besar untuk menahan SACL, RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke ukuran minimum yang diperlukan.
[out] Owner
Penunjuk ke buffer yang dialokasikan penelepon yang menerima SID pemilik deskriptor keamanan format absolut. Isi utama deskriptor keamanan format absolut mereferensikan penunjuk ini.
[in, out] OwnerSize
Penunjuk ke variabel yang dialokasikan penelepon yang menentukan ukuran, dalam byte, dari buffer yang ditujukkan oleh parameter Pemilik . Jika buffer tidak cukup besar untuk menahan SID, RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke ukuran minimum yang diperlukan.
[out] PrimaryGroup
Penunjuk ke buffer yang dialokasikan pemanggil yang menerima SID grup utama deskriptor keamanan format absolut. Isi utama deskriptor keamanan format absolut mereferensikan penunjuk ini.
[in, out] PrimaryGroupSize
Penunjuk ke variabel yang dialokasikan pemanggil yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter PrimaryGroup . Jika buffer tidak cukup besar untuk menahan SID, RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke ukuran minimum yang diperlukan.
Nilai kembali
RtlSelfRelativeToAbsoluteSD mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti salah satu hal berikut ini:
Menampilkan kode | Deskripsi |
---|---|
|
Buffer yang diarahkan oleh parameter AbsoluteSecurityDescriptor tidak berisi struktur SECURITY_DESCRIPTOR dalam format absolut. STATUS_BAD_DESCRIPTOR_FORMAT adalah kode kesalahan. |
|
Buffer yang ditunjukkan oleh parameter AbsoluteSecurityDescriptor , Dacl, Sacl, Owner, atau PrimaryGroup terlalu kecil. STATUS_BUFFER_TOO_SMALL adalah kode kesalahan. |
Keterangan
Deskriptor keamanan dalam format absolut berisi penunjuk ke informasi, daripada berisi informasi itu sendiri. Deskriptor keamanan dalam format relatif mandiri berisi informasi dalam blok memori yang berdekatan. Dalam deskriptor keamanan relatif mandiri, struktur SECURITY_DESCRIPTOR selalu memulai informasi, tetapi komponen lain deskriptor keamanan dapat mengikuti struktur SECURITY_DESCRIPTOR dalam urutan apa pun. Alih-alih menggunakan alamat memori, komponen deskriptor keamanan diidentifikasi oleh offset dari awal deskriptor keamanan. Format ini berguna ketika deskriptor keamanan harus disimpan pada disket atau ditransmisikan melalui protokol komunikasi.
Perhatikan bahwa parameter AbsoluteSecurityDescriptor hanya menerima isi utama deskriptor keamanan absolut. Seluruh deskriptor keamanan absolut terdiri dari isi utama ini, ditambah semua komponen deskriptor keamanan yang dikembalikan dalam buffer Dacl, Sacl, Owner, dan PrimaryGroup . Dengan demikian, pemanggil tidak dapat membebaskan buffer ini setelah memanggil RtlSelfRelativeToAbsoluteSD, karena melakukannya akan membatalkan deskriptor keamanan absolut.
Untuk membuat deskriptor keamanan baru dalam format relatif mandiri dengan menggunakan deskriptor keamanan dalam format absolut sebagai templat, gunakan RtlAbsoluteToSelfRelativeSD.
Untuk informasi selengkapnya tentang keamanan dan kontrol akses, lihat dokumentasi Microsoft Windows SDK.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Server 2003 SP1 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
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