Bagikan melalui


Fungsi OpenServiceA (winsvc.h)

Membuka layanan yang sudah ada.

Sintaks

SC_HANDLE OpenServiceA(
  [in] SC_HANDLE hSCManager,
  [in] LPCSTR    lpServiceName,
  [in] DWORD     dwDesiredAccess
);

Parameter

[in] hSCManager

Handel ke database manajer kontrol layanan. Fungsi OpenSCManager mengembalikan handel ini. Untuk informasi selengkapnya, lihat Keamanan Layanan dan Hak Akses.

[in] lpServiceName

Nama layanan yang akan dibuka. Ini adalah nama yang ditentukan oleh parameter lpServiceName dari fungsi CreateService ketika objek layanan dibuat, bukan nama tampilan layanan yang ditunjukkan oleh aplikasi antarmuka pengguna untuk mengidentifikasi layanan.

Panjang string maksimum adalah 256 karakter. Database manajer kontrol layanan mempertahankan kasus karakter, tetapi perbandingan nama layanan selalu tidak peka huruf besar/kecil. Garis miring (/) dan garis miring terbelakang (\) adalah karakter nama layanan yang tidak valid.

[in] dwDesiredAccess

Akses ke layanan. Untuk daftar hak akses, lihat Keamanan Layanan dan Hak Akses.

Sebelum memberikan akses yang diminta, sistem memeriksa token akses proses panggilan terhadap daftar kontrol akses diskresi pendeskripsi keamanan yang terkait dengan objek layanan.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke layanan.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Kode kesalahan berikut dapat diatur oleh manajer kontrol layanan. Yang lain dapat diatur oleh fungsi registri yang dipanggil oleh manajer kontrol layanan.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Handel tidak memiliki akses ke layanan.
ERROR_INVALID_HANDLE
Handel yang ditentukan tidak valid.
ERROR_INVALID_NAME
Nama layanan yang ditentukan tidak valid.
ERROR_SERVICE_DOES_NOT_EXIST
Layanan yang ditentukan tidak ada.

Keterangan

Handel yang dikembalikan hanya valid untuk proses yang disebut OpenService. Ini dapat ditutup dengan memanggil fungsi CloseServiceHandle .

Untuk menggunakan OpenService, tidak ada hak istimewa yang diperlukan selain dari SC_MANAGER_CONNECT.

Contoh

Misalnya, lihat Memulai Layanan.

Catatan

Header winsvc.h mendefinisikan OpenService 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 (sertakan Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

ChangeServiceConfig

CloseServiceHandle

ControlService

CreateService

DeleteService

EnumDependentServices

OpenSCManager

QueryServiceConfig

QueryServiceDynamicInformation

QueryServiceObjectSecurity

QueryServiceStatusEx

Handel SCM

Fungsi Layanan

SetServiceObjectSecurity

StartService