Fungsi SetServiceObjectSecurity (winsvc.h)
[SetServiceObjectSecurity tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan fungsi SetNamedSecurityInfo .]
Fungsi SetServiceObjectSecurity mengatur deskriptor keamanan objek layanan.
Sintaks
BOOL SetServiceObjectSecurity(
[in] SC_HANDLE hService,
[in] SECURITY_INFORMATION dwSecurityInformation,
[in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);
Parameter
[in] hService
Handel ke layanan. Handel ini dikembalikan oleh fungsi OpenService atau CreateService . Akses yang diperlukan untuk handel ini tergantung pada informasi keamanan yang ditentukan dalam parameter dwSecurityInformation .
[in] dwSecurityInformation
Menentukan komponen deskriptor keamanan yang akan diatur. Parameter ini bisa menjadi kombinasi dari nilai berikut. Perhatikan bahwa bendera yang tidak ditangani oleh SetServiceObjectSecurity akan diabaikan secara diam-diam.
Nilai | Makna |
---|---|
|
Mengatur daftar kontrol akses diskresi (DACL) objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_DAC, atau proses panggilan harus menjadi pemilik objek. |
|
Mengatur pengidentifikasi keamanan grup utama (SID) objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_OWNER, atau proses panggilan harus menjadi pemilik objek. |
|
Mengatur SID pemilik objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_OWNER, atau proses panggilan harus menjadi pemilik objek atau mengaktifkan hak istimewa SE_TAKE_OWNERSHIP_NAME. |
|
Mengatur daftar kontrol akses sistem (SACL) objek. Handel yang ditentukan oleh hService harus memiliki akses ACCESS_SYSTEM_SECURITY.
Untuk mendapatkan akses ACCESS_SYSTEM_SECURITY
|
[in] lpSecurityDescriptor
Penunjuk ke struktur SECURITY_DESCRIPTOR yang berisi informasi keamanan baru.
Nilai kembali
Jika fungsi berhasil, fungsi mengembalikan bukan nol.
Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Kode kesalahan berikut dapat diatur oleh manajer kontrol layanan. Kode kesalahan lainnya dapat diatur oleh fungsi registri yang dipanggil oleh manajer kontrol layanan.
Menampilkan kode | Deskripsi |
---|---|
|
Handel yang ditentukan tidak dibuka dengan akses yang diperlukan, atau proses panggilan bukan pemilik objek. |
|
Handel yang ditentukan tidak valid. |
|
Informasi keamanan atau deskriptor keamanan yang ditentukan tidak valid. |
|
Layanan yang ditentukan telah ditandai untuk penghapusan. |
Keterangan
Fungsi SetServiceObjectSecurity menetapkan bagian yang ditentukan dari deskriptor keamanan objek layanan berdasarkan informasi yang ditentukan dalam buffer lpSecurityDescriptor . Fungsi ini menggantikan salah satu atau semua informasi keamanan yang terkait dengan objek layanan, sesuai dengan bendera yang diatur dalam parameter dwSecurityInformation dan tunduk pada hak akses proses panggilan.
Saat layanan dibuat, manajer kontrol layanan menetapkan pendeskripsi keamanan default ke objek layanan. Untuk mengambil salinan deskriptor keamanan untuk objek layanan, panggil fungsi QueryServiceObjectSecurity . Untuk deskripsi pendeskripsi keamanan default untuk objek layanan, lihat Keamanan Layanan dan Hak Akses.
Perhatikan bahwa memberikan akses tertentu ke pengguna yang tidak tepercaya (seperti SERVICE_CHANGE_CONFIG atau SERVICE_STOP) dapat memungkinkan mereka untuk mengganggu eksekusi layanan Anda dan mungkin memungkinkan mereka untuk menjalankan aplikasi di bawah akun LocalSystem.
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 | winsvc.h (termasuk Windows.h) |
Pustaka | Advapi32.lib |
DLL | Advapi32.dll |