Bagikan melalui


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.

Nilai Makna
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Layanan driver sistem file.
SERVICE_KERNEL_DRIVER
0x00000001
Layanan driver.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Layanan yang berjalan dalam prosesnya sendiri.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Layanan yang berbagi proses dengan layanan lain.
 

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
SERVICE_INTERACTIVE_PROCESS
0x00000100
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
SERVICE_AUTO_START
0x00000002
Layanan dimulai secara otomatis oleh manajer kontrol layanan selama startup sistem.
SERVICE_BOOT_START
0x00000000
Driver perangkat dimulai oleh pemuat sistem. Nilai ini hanya berlaku untuk layanan driver.
SERVICE_DEMAND_START
0x00000003
Layanan dimulai oleh manajer kontrol layanan saat proses memanggil fungsi StartService .
SERVICE_DISABLED
0x00000004
Layanan yang tidak dapat dimulai. Upaya untuk memulai layanan menghasilkan kode kesalahan ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
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.

Nilai Makna
SERVICE_ERROR_CRITICAL
0x00000003
Program startup mencatat kesalahan dalam log peristiwa, jika memungkinkan. Jika konfigurasi baik yang terakhir diketahui sedang dimulai, operasi startup gagal. Jika tidak, sistem dimulai ulang dengan konfigurasi baik yang terakhir diketahui.
SERVICE_ERROR_IGNORE
0x00000000
Program startup mengabaikan kesalahan dan melanjutkan operasi startup.
SERVICE_ERROR_NORMAL
0x00000001
Program startup mencatat kesalahan dalam log peristiwa dan melanjutkan operasi startup.
SERVICE_ERROR_SEVERE
0x00000002
Program startup mencatat kesalahan dalam log peristiwa. Jika konfigurasi baik yang terakhir diketahui sedang dimulai, operasi startup berlanjut. Jika tidak, sistem dimulai ulang dengan konfigurasi terakhir yang diketahui baik.

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)

Lihat juga

ChangeServiceConfig

CreateService

QueryServiceConfig

StartService