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
ERROR_ACCESS_DENIED
Akses yang diminta ditolak.
ERROR_DATABASE_DOES_NOT_EXIST
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

Lihat juga

CloseServiceHandle

CreateService

EnumServicesStatusEx

OpenService

Handel SCM

Fungsi Layanan