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 SetNamedSecurityInfo tidak menyusun ulang ACE yang diizinkan akses atau ditolak akses berdasarkan urutan yang disukai. Saat menyebarkan ACE yang dapat diwariskan ke objek anak yang ada, SetNamedSecurityInfo menempatkan ACE yang diwariskan secara berurutan setelah semua ACE yang tidak diwariskan di DACL objek anak.

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

Lihat juga

ACL

Access Control

Fungsi Access Control Dasar

GetNamedSecurityInfo

GetSecurityInfo

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID

SetSecurityInfo