Fungsi SetNamedSecurityInfoA (aclapi.h)
Fungsi SetNamedSecurityInfo menetapkan informasi keamanan tertentu dalam deskriptor keamanan objek tertentu. Pemanggil mengidentifikasi objek berdasarkan nama.
Sintaks
DWORD SetNamedSecurityInfoA(
[in] LPSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Parameter
[in] pObjectName
Penunjuk ke string yang dihentikan null yang menentukan nama objek untuk mengatur informasi keamanan. Ini bisa menjadi nama file atau direktori lokal atau jarak jauh pada sistem file NTFS, berbagi jaringan, kunci registri, semaphore, peristiwa, mutex, pemetaan file, atau timer yang dapat di tunggu.
Untuk deskripsi format string untuk jenis objek yang berbeda, lihat SE_OBJECT_TYPE.
[in] ObjectType
Nilai enumerasi SE_OBJECT_TYPE yang menunjukkan jenis objek yang dinamai oleh parameter pObjectName .
[in] SecurityInfo
Sekumpulan bendera bit yang menunjukkan jenis informasi keamanan yang akan diatur. Parameter ini dapat menjadi kombinasi dari bendera bit SECURITY_INFORMATION .
[in, optional] psidOwner
Penunjuk ke struktur SID yang mengidentifikasi pemilik objek. Jika pemanggil tidak memiliki konstanta SeRestorePrivilege (lihat Konstanta Hak Istimewa), SID ini harus terkandung dalam token pemanggil, dan harus mengaktifkan izin SE_GROUP_OWNER . Parameter SecurityInfo harus menyertakan bendera OWNER_SECURITY_INFORMATION. Untuk mengatur pemilik, pemanggil harus memiliki akses WRITE_OWNER ke objek atau mengaktifkan hak istimewa SE_TAKE_OWNERSHIP_NAME. Jika Anda tidak mengatur SID pemilik, parameter ini bisa NULL.
[in, optional] psidGroup
Penunjuk ke SID yang mengidentifikasi grup utama objek. Parameter SecurityInfo harus menyertakan bendera GROUP_SECURITY_INFORMATION. Jika Anda tidak mengatur SID grup utama, parameter ini bisa NULL.
[in, optional] pDacl
Penunjuk ke DACL baru untuk objek . Parameter SecurityInfo harus menyertakan bendera DACL_SECURITY_INFORMATION. Pemanggil harus memiliki akses WRITE_DAC ke objek atau menjadi pemilik objek. Jika Anda tidak mengatur DACL, parameter ini bisa NULL.
[in, optional] pSacl
Penunjuk ke SACL baru untuk objek . Parameter SecurityInfo harus menyertakan salah satu bendera berikut: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION, atau BACKUP_SECURITY_INFORMATION.
Jika mengatur SACL_SECURITY_INFORMATION atau SCOPE_SECURITY_INFORMATION, pemanggil harus mengaktifkan hak istimewa SE_SECURITY_NAME. Jika Anda tidak mengatur SACL, parameter ini bisa NULL.
Menampilkan nilai
Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.
Jika fungsi gagal, fungsi mengembalikan kode kesalahan bukan nol yang ditentukan dalam WinError.h.
Keterangan
Jika Anda mengatur daftar kontrol akses diskresi (DACL) atau elemen apa pun dalam daftar kontrol akses sistem (SACL) objek, sistem secara otomatis menyebarluaskan entri kontrol akses (ASE) yang dapat diwariskan ke objek anak yang ada, sesuai dengan aturan pewarisan.
Anda dapat menggunakan fungsi SetNamedSecurityInfo dengan jenis objek berikut:
- File atau direktori lokal atau jarak jauh pada NTFS
- Printer lokal atau jarak jauh
- Layanan Windows lokal atau jarak jauh
- Berbagi jaringan
- Kunci registri
- Semaphores, peristiwa, mutex, dan timer yang dapat diantrekan
- Objek pemetaan file
- Objek layanan direktori
Fungsi ini mentransfer informasi dalam teks biasa. Informasi yang ditransfer oleh fungsi ini ditandatangani kecuali penandatanganan telah dimatikan untuk sistem, tetapi tidak ada enkripsi yang dilakukan.
Saat Anda memperbarui hak akses folder yang ditunjukkan oleh jalur UNC, misalnya \Test\TestFolder, ACE asli yang diwariskan dihapus dan jalur volume lengkap tidak disertakan.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Memodifikasi ACL Objek atau Mengambil Kepemilikan Objek.
Catatan
Header aclapi.h mendefinisikan SetNamedSecurityInfo sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | aclapi.h |
Pustaka | Advapi32.lib |
DLL | Advapi32.dll |