Bagikan melalui


Fungsi SetNamedSecurityInfoW (aclapi.h)

Fungsi SetNamedSecurityInfo menetapkan informasi keamanan yang ditentukan dalam pendeskripsi keamanan dari objek tertentu. Pemanggil mengidentifikasi objek berdasarkan nama.

Sintaksis

DWORD SetNamedSecurityInfoW(
  [in]           LPWSTR               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 nulldihentikan 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 ditunda.

Untuk deskripsi format string untuk berbagai jenis objek, lihat SE_OBJECT_TYPE.

[in] ObjectType

Nilai enumerasi SE_OBJECT_TYPE yang menunjukkan jenis objek bernama dengan 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 pemilik SID, parameter ini dapat 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 dapat 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 dapat 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 pengaturan SACL_SECURITY_INFORMATION atau SCOPE_SECURITY_INFORMATION, pemanggil harus mengaktifkan hak istimewa SE_SECURITY_NAME. Jika Anda tidak mengatur SACL, parameter ini dapat NULL.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.

Jika fungsi gagal, fungsi mengembalikan kode kesalahan bukan nol yang ditentukan dalam WinError.h.

Komentar

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 yang dapat diwariskan (ACE) ke objek turunan yang ada, sesuai dengan aturan warisan.

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 di tunggu
  • Objek pemetaan file
  • Objek layanan direktori
Fungsi SetNamedSecurityInfo tidak menyusun ulang ACE yang diizinkan akses atau ditolak akses berdasarkan urutan yang diinginkan. Saat menyebarkan ACE yang dapat diwariskan ke objek anak yang ada, SetNamedSecurityInfo menempatkan ACE yang diwariskan secara berurutan setelah semua ACE yang tidak diwariskan dalam DACL objek anak.

Fungsi ini mentransfer informasi dalamteks 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.

Nota

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

Syarat Nilai
klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header aclapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

ACL

Kontrol Akses

Fungsi Kontrol Akses Dasar

getNamedSecurityInfo

GetSecurityInfo

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID

SetSecurityInfo