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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk