Fungsi OpenSCManagerA (winsvc.h)
Membuat koneksi ke manajer kontrol layanan pada komputer yang ditentukan dan membuka database manajer kontrol layanan yang ditentukan.
Sintaks
SC_HANDLE OpenSCManagerA(
[in, optional] LPCSTR lpMachineName,
[in, optional] LPCSTR lpDatabaseName,
[in] DWORD dwDesiredAccess
);
Parameter
[in, optional] lpMachineName
Nama komputer target. Jika penunjuk NULL atau menunjuk ke string kosong, fungsi akan tersambung ke manajer kontrol layanan di komputer lokal.
[in, optional] lpDatabaseName
Nama database manajer kontrol layanan. Parameter ini harus diatur ke SERVICES_ACTIVE_DATABASE. Jika NULL, database SERVICES_ACTIVE_DATABASE dibuka secara default.
[in] dwDesiredAccess
Akses ke manajer kontrol layanan. Untuk daftar hak akses, lihat Keamanan Layanan dan Hak Akses.
Sebelum memberikan hak akses yang diminta, sistem memeriksa token akses proses panggilan terhadap daftar kontrol akses diskresi deskriptor keamanan yang terkait dengan manajer kontrol layanan.
Hak akses SC_MANAGER_CONNECT ditentukan secara implisit dengan memanggil fungsi ini.
Mengembalikan nilai
Jika fungsi berhasil, nilai pengembalian adalah handel ke database manajer kontrol layanan yang ditentukan.
Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Kode kesalahan berikut dapat diatur oleh SCM. Kode kesalahan lainnya dapat diatur oleh fungsi registri yang dipanggil oleh SCM.
Menampilkan kode | Deskripsi |
---|---|
|
Akses yang diminta ditolak. |
|
Database yang ditentukan tidak ada. |
Keterangan
Ketika proses menggunakan fungsi OpenSCManager untuk membuka handel ke database manajer kontrol layanan, sistem melakukan pemeriksaan keamanan sebelum memberikan akses yang diminta. Untuk informasi selengkapnya, lihat Keamanan Layanan dan Hak Akses.
Jika pengguna saat ini tidak memiliki akses yang tepat saat menyambungkan ke layanan di komputer lain, panggilan fungsi OpenSCManager gagal. Untuk menyambungkan ke layanan dari jarak jauh, panggil fungsi LogonUser dengan LOGON32_LOGON_NEW_CREDENTIALS lalu panggil ImpersonateLoggedOnUser sebelum memanggil OpenSCManager. Untuk informasi selengkapnya tentang menyambungkan ke layanan dari jarak jauh, lihat Layanan dan RPC/TCP.
Hanya proses dengan hak istimewa Administrator yang dapat membuka handel database yang dapat digunakan oleh fungsi CreateService .
Handel yang dikembalikan hanya valid untuk proses yang disebut fungsi OpenSCManager . Ini dapat ditutup dengan memanggil fungsi CloseServiceHandle .
Contoh
Misalnya, lihat Mengubah Konfigurasi Layanan.
Catatan
Header winsvc.h mendefinisikan OpenSCManager sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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 [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 |