Fungsi QueryServiceStatusEx (winsvc.h)
Mengambil status layanan yang ditentukan saat ini berdasarkan tingkat informasi yang ditentukan.
Sintaks
BOOL QueryServiceStatusEx(
[in] SC_HANDLE hService,
[in] SC_STATUS_TYPE InfoLevel,
[out, optional] LPBYTE lpBuffer,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded
);
Parameter
[in] hService
Handel ke layanan. Handel ini dikembalikan oleh fungsi CreateService atau OpenService , dan harus memiliki hak akses SERVICE_QUERY_STATUS. Untuk informasi selengkapnya, lihat Keamanan Layanan dan Hak Akses.
[in] InfoLevel
Atribut layanan yang akan dikembalikan. Gunakan SC_STATUS_PROCESS_INFO untuk mengambil informasi status layanan. Parameter lpBuffer adalah penunjuk ke struktur SERVICE_STATUS_PROCESS .
Saat ini, tidak ada tingkat informasi lain yang ditentukan.
[out, optional] lpBuffer
Penunjuk ke buffer yang menerima informasi status. Format data ini tergantung pada nilai parameter InfoLevel .
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 lpBuffer , dalam byte.
[out] pcbBytesNeeded
Penunjuk ke variabel yang menerima jumlah byte yang diperlukan untuk menyimpan semua informasi status, jika fungsi gagal dengan ERROR_INSUFFICIENT_BUFFER.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Kesalahan berikut dapat dikembalikan.
Menampilkan kode | Deskripsi |
---|---|
|
Handel tidak valid. |
|
Handel tidak memiliki hak akses SERVICE_QUERY_STATUS. |
|
Buffer terlalu kecil untuk struktur SERVICE_STATUS_PROCESS . Tidak ada yang ditulis ke struktur. |
|
Anggota cbSizedari SERVICE_STATUS_PROCESS tidak valid. |
|
Parameter InfoLevel berisi nilai yang tidak didukung. |
|
Sistem dimatikan; fungsi ini tidak dapat dipanggil. |
Keterangan
Fungsi QueryServiceStatusEx mengembalikan informasi status layanan terbaru yang dilaporkan ke manajer kontrol layanan. Jika layanan baru saja mengubah statusnya, layanan mungkin belum memperbarui manajer kontrol layanan.
Pengidentifikasi proses yang dikembalikan dalam struktur SERVICE_STATUS_PROCESS valid asalkan status layanan adalah salah satu dari SERVICE_RUNNING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED, atau SERVICE_CONTINUE_PENDING. Namun, jika layanan dalam status SERVICE_START_PENDING atau SERVICE_STOP_PENDING, pengidentifikasi proses mungkin tidak valid, dan jika layanan dalam status SERVICE_STOPPED, layanan tidak pernah valid.
Contoh
Misalnya, lihat Memulai Layanan atau Menghentikan Layanan.
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 |