struktur QUERY_SERVICE_CONFIGA (winsvc.h)
Berisi informasi konfigurasi untuk layanan yang diinstal. Ini digunakan oleh fungsi QueryServiceConfig .
Sintaks
typedef struct _QUERY_SERVICE_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPSTR lpBinaryPathName;
LPSTR lpLoadOrderGroup;
DWORD dwTagId;
LPSTR lpDependencies;
LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
Anggota
dwServiceType
Jenis layanan. Anggota ini bisa menjadi salah satu nilai berikut.
Jika nilainya SERVICE_WIN32_OWN_PROCESS atau SERVICE_WIN32_SHARE_PROCESS, dan layanan berjalan dalam konteks akun LocalSystem, jenis berikut juga dapat ditentukan.
Nilai | Makna |
---|---|
|
Layanan dapat berinteraksi dengan desktop.
Untuk informasi selengkapnya, lihat Layanan Interaktif. |
dwStartType
Kapan memulai layanan. Anggota ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Layanan dimulai secara otomatis oleh manajer kontrol layanan selama startup sistem. |
|
Driver perangkat dimulai oleh pemuat sistem. Nilai ini hanya berlaku untuk layanan driver. |
|
Layanan dimulai oleh manajer kontrol layanan saat proses memanggil fungsi StartService . |
|
Layanan yang tidak dapat dimulai. Upaya untuk memulai layanan menghasilkan kode kesalahan ERROR_SERVICE_DISABLED. |
|
Driver perangkat dimulai oleh fungsi IoInitSystem . Nilai ini hanya berlaku untuk layanan driver. |
dwErrorControl
Tingkat keparahan kesalahan, dan tindakan yang diambil, jika layanan ini gagal dimulai. Anggota ini bisa menjadi salah satu nilai berikut.
lpBinaryPathName
Jalur yang sepenuhnya memenuhi syarat ke file biner layanan.
Jalur ini juga dapat menyertakan argumen untuk layanan mulai otomatis. Argumen ini diteruskan ke titik entri layanan (biasanya fungsi utama ).
lpLoadOrderGroup
Nama grup pemesanan beban tempat layanan ini berada. Jika anggota adalah NULL atau string kosong, layanan bukan milik grup pemesanan beban.
Program startup menggunakan grup pengurutan beban untuk memuat grup layanan dalam urutan tertentu sehubungan dengan grup lain. Daftar grup pengurutan beban terkandung dalam nilai registri berikut:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder
dwTagId
Nilai tag unik untuk layanan ini dalam grup yang ditentukan oleh parameter lpLoadOrderGroup . Nilai nol menunjukkan bahwa layanan belum diberi tag. Anda dapat menggunakan tag untuk memesan startup layanan dalam grup urutan beban dengan menentukan vektor pesanan tag di registri yang terletak di:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList
Tag hanya dievaluasi untuk layanan jenis SERVICE_KERNEL_DRIVER dan SERVICE_FILE_SYSTEM_DRIVER yang memiliki jenis mulai SERVICE_BOOT_START atau SERVICE_SYSTEM_START .
lpDependencies
Penunjuk ke array nama layanan yang dipisahkan null atau grup pengurutan beban yang harus dimulai sebelum layanan ini. Array dihentikan dua kali lipat null. Jika pointer adalah NULL atau jika menunjuk ke string kosong, layanan tidak memiliki dependensi. Jika nama grup ditentukan, nama grup harus diawali oleh karakter SC_GROUP_IDENTIFIER (ditentukan dalam WinSvc.h) untuk membedakannya dari nama layanan, karena layanan dan grup layanan memiliki ruang nama yang sama. Dependensi pada layanan berarti bahwa layanan ini hanya dapat berjalan jika layanan yang bergantung padanya sedang berjalan. Dependensi pada grup berarti bahwa layanan ini dapat berjalan jika setidaknya satu anggota grup berjalan setelah upaya untuk memulai semua anggota grup.
lpServiceStartName
Jika jenis layanan SERVICE_WIN32_OWN_PROCESS atau SERVICE_WIN32_SHARE_PROCESS, anggota ini adalah nama akun tempat proses layanan akan masuk seperti saat berjalan. Nama ini bisa berupa NamaPenggunaDomain\. Jika akun milik domain bawaan, nama dapat berupa .\UserName. Nama ini juga dapat berupa "LocalSystem" jika proses berjalan di bawah akun LocalSystem.
Jika jenis layanan SERVICE_KERNEL_DRIVER atau SERVICE_FILE_SYSTEM_DRIVER, anggota ini adalah nama objek driver (yaitu, \FileSystem\Rdr atau \Driver\Xns) yang digunakan sistem input dan output (I/O) untuk memuat driver perangkat. Jika anggota ini NULL, driver akan dijalankan dengan nama objek default yang dibuat oleh sistem I/O, berdasarkan nama layanan.
lpDisplayName
Nama tampilan yang akan digunakan oleh program kontrol layanan untuk mengidentifikasi layanan. String ini memiliki panjang maksimum 256 karakter. Nama ini dipertahankan huruf besar/kecil di manajer kontrol layanan. Perbandingan nama tampilan selalu tidak peka huruf besar/kecil.
Parameter ini dapat menentukan string yang dilokalkan menggunakan format berikut:
@[Path]DLLName,-StrID
String dengan pengidentifikasi StrID dimuat dari DLLName; Jalur bersifat opsional. Untuk informasi selengkapnya, lihat RegLoadMUIString.
Windows Server 2003 dan Windows XP: String yang dilokalkan tidak didukung hingga Windows Vista.
Keterangan
Informasi konfigurasi untuk layanan awalnya ditentukan saat layanan dibuat oleh panggilan ke fungsi CreateService . Informasi dapat dimodifikasi dengan memanggil fungsi ChangeServiceConfig .
Contoh
Misalnya, lihat Mengkueri Konfigurasi Layanan.
Catatan
Header winsvc.h mendefinisikan QUERY_SERVICE_CONFIG 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] |
Header | winsvc.h (termasuk Windows.h) |