Bagikan melalui


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
STATUS_BAD_DESCRIPTOR_FORMAT
Buffer yang diarahkan oleh parameter AbsoluteSecurityDescriptor tidak berisi struktur SECURITY_DESCRIPTOR dalam format absolut. STATUS_BAD_DESCRIPTOR_FORMAT adalah kode kesalahan.
STATUS_BUFFER_TOO_SMALL
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

ACL

RtlAbsoluteToSelfRelativeSD

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor