Bagikan melalui


Fungsi SetPrivateObjectSecurity (securitybaseapi.h)

Fungsi SetPrivateObjectSecurity memodifikasi deskriptor keamanan objek privat.

Untuk menentukan apakah server yang dilindungi mendukung pewarisan otomatis entri kontrol akses (ACE), gunakan fungsi SetPrivateObjectSecurityEx .

Sintaks

BOOL SetPrivateObjectSecurity(
  [in]           SECURITY_INFORMATION SecurityInformation,
  [in]           PSECURITY_DESCRIPTOR ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
  [in]           PGENERIC_MAPPING     GenericMapping,
  [in, optional] HANDLE               Token
);

Parameter

[in] SecurityInformation

Menunjukkan bagian deskriptor keamanan yang akan diatur. Nilai ini bisa menjadi kombinasi dari bendera bit SECURITY_INFORMATION .

[in] ModificationDescriptor

Penunjuk ke struktur SECURITY_DESCRIPTOR . Bagian dari deskriptor keamanan ini yang ditunjukkan oleh parameter SecurityInformation diterapkan ke deskriptor keamanan ObjectsSecurityDescriptor .

[in, out] ObjectsSecurityDescriptor

Penunjuk ke penunjuk ke struktur SECURITY_DESCRIPTOR . Deskriptor keamanan ini harus dalam bentuk relatif mandiri . Memori untuk deskriptor keamanan harus dialokasikan dari timbunan proses (GetProcessHeap) dengan fungsi HeapAlloc.

Pada input, ini adalah pendeskripsi keamanan objek privat saat ini. Fungsi memodifikasinya untuk menghasilkan deskriptor keamanan baru. Jika perlu, fungsi SetPrivateObjectSecurity mengalokasikan memori tambahan untuk menghasilkan deskriptor keamanan yang lebih besar.

[in] GenericMapping

Penunjuk ke struktur GENERIC_MAPPING yang menentukan hak akses spesifik dan standar yang sesuai dengan setiap hak akses generik.

[in, optional] Token

Handel ke token akses untuk klien atas nama keamanan objek privat sedang dimodifikasi. Parameter ini diperlukan untuk memastikan bahwa klien telah memberikan nilai yang sah untuk pengidentifikasi keamanan pemilik (SID) baru. Token harus terbuka untuk akses TOKEN_QUERY.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan bukan nol.

Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Fungsi ini hanya ditujukan untuk digunakan oleh manajer sumber daya. Untuk menerapkan semantik kontrol akses standar untuk memperbarui deskriptor keamanan, manajer sumber daya harus memverifikasi bahwa kondisi berikut terpenuhi sebelum memanggil SetPrivateObjectSecurity:

  • Jika pemilik objek sedang diatur, proses panggilan harus memiliki izin WRITE_OWNER atau menjadi pemilik objek.
  • Jika daftar kontrol akses diskresi objek (DACL) sedang diatur, proses panggilan harus memiliki izin WRITE_DAC atau menjadi pemilik objek.
  • Jika daftar kontrol akses sistem (SACL) objek sedang diatur, hak istimewa SE_SECURITY_NAME harus diaktifkan untuk proses panggilan.
Jika kondisi sebelumnya tidak terpenuhi, panggilan ke fungsi ini tidak gagal; namun, kebijakan akses standar tidak diberlakukan.

Proses yang memanggil fungsi ini tidak boleh meniru klien karena klien biasanya tidak memiliki hak istimewa yang sesuai yang diperlukan untuk operasi token yang mendasar.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header securitybaseapi.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

Fungsi Access Control Klien/Server

Gambaran Umum Access Control Klien/Server

CreatePrivateObjectSecurity

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurityEx

SetUserObjectSecurity