Bagikan melalui


Fungsi QueryServiceConfigA (winsvc.h)

Mengambil parameter konfigurasi dari layanan yang ditentukan. Parameter konfigurasi opsional tersedia menggunakan fungsi QueryServiceConfig2 .

Sintaks

BOOL QueryServiceConfigA(
  [in]            SC_HANDLE               hService,
  [out, optional] LPQUERY_SERVICE_CONFIGA lpServiceConfig,
  [in]            DWORD                   cbBufSize,
  [out]           LPDWORD                 pcbBytesNeeded
);

Parameter

[in] hService

Handel ke layanan. Handel ini dikembalikan oleh fungsi OpenService atau CreateService , dan harus memiliki hak akses SERVICE_QUERY_CONFIG. Untuk informasi selengkapnya, lihat Keamanan Layanan dan Hak Akses.

[out, optional] lpServiceConfig

Penunjuk ke buffer yang menerima informasi konfigurasi layanan. Format data adalah struktur QUERY_SERVICE_CONFIG .

Ukuran maksimum array ini adalah 8K byte. Untuk menentukan ukuran yang diperlukan, tentukan NULL untuk parameter ini dan 0 untuk parameter cbBufSize . Fungsi akan gagal dan GetLastError akan mengembalikan ERROR_INSUFFICIENT_BUFFER. Parameter pcbBytesNeeded akan menerima ukuran yang diperlukan.

[in] cbBufSize

Ukuran buffer yang diacu oleh parameter lpServiceConfig , dalam byte.

[out] pcbBytesNeeded

Penunjuk ke variabel yang menerima jumlah byte yang diperlukan untuk menyimpan semua informasi konfigurasi, jika fungsi gagal dengan ERROR_INSUFFICIENT_BUFFER.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. 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 hak akses SERVICE_QUERY_CONFIG.
ERROR_INSUFFICIENT_BUFFER
Ada lebih banyak informasi konfigurasi layanan daripada yang akan masuk ke dalam buffer lpServiceConfig . Jumlah byte yang diperlukan untuk mendapatkan semua informasi dikembalikan dalam parameter pcbBytesNeeded . Tidak ada yang ditulis ke lpServiceConfig.
ERROR_INVALID_HANDLE
Handel yang ditentukan tidak valid.

Keterangan

Fungsi QueryServiceConfig mengembalikan informasi konfigurasi layanan yang disimpan dalam registri untuk layanan tertentu. Informasi konfigurasi ini pertama kali diatur oleh program kontrol layanan menggunakan fungsi CreateService . Informasi ini mungkin telah diperbarui oleh program konfigurasi layanan menggunakan fungsi ChangeServiceConfig .

Jika layanan berjalan saat informasi konfigurasi terakhir diubah, informasi yang dikembalikan oleh QueryServiceConfig tidak akan mencerminkan konfigurasi layanan saat ini. Sebaliknya, ini akan mencerminkan konfigurasi layanan ketika dijalankan berikutnya. Kunci DisplayName adalah pengecualian untuk ini. Ketika kunci DisplayName diubah, kunci tersebut langsung berlaku, terlepas dari apakah layanan sedang berjalan.

Contoh

Misalnya, lihat Mengkueri Konfigurasi Layanan.

Catatan

Header winsvc.h mendefinisikan QueryServiceConfig 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

ChangeServiceConfig

CreateService

OpenService

QUERY_SERVICE_CONFIG

QueryServiceConfig2

QueryServiceDynamicInformation

QueryServiceObjectSecurity

Konfigurasi Layanan

Fungsi Layanan