Fungsi EnumServicesStatusA (winsvc.h)
Menghitung layanan dalam database manajer kontrol layanan yang ditentukan. Nama dan status setiap layanan disediakan.
Fungsi ini telah digantikan oleh fungsi EnumServicesStatusEx . Ini mengembalikan informasi yang sama yang dikembalikan EnumServicesStatus , ditambah pengidentifikasi proses dan informasi tambahan untuk layanan. Selain itu, EnumServicesStatusEx memungkinkan Anda menghitung layanan yang termasuk dalam grup tertentu.
Sintaks
BOOL EnumServicesStatusA(
[in] SC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSA lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned,
[in, out, optional] LPDWORD lpResumeHandle
);
Parameter
[in] hSCManager
Handel ke database manajer kontrol layanan. Handel ini dikembalikan oleh fungsi OpenSCManager , dan harus memiliki hak akses SC_MANAGER_ENUMERATE_SERVICE. Untuk informasi selengkapnya, lihat Keamanan Layanan dan Hak Akses.
[in] dwServiceType
Jenis layanan yang akan dijumlahkan. Parameter ini bisa menjadi satu atau beberapa nilai berikut.
Nilai | Makna |
---|---|
|
Layanan jenis SERVICE_KERNEL_DRIVER dan SERVICE_FILE_SYSTEM_DRIVER. |
|
Layanan driver sistem file. |
|
Layanan driver. |
|
Layanan jenis SERVICE_WIN32_OWN_PROCESS dan SERVICE_WIN32_SHARE_PROCESS. |
|
Layanan yang berjalan dalam proses mereka sendiri. |
|
Layanan yang berbagi proses dengan satu atau beberapa layanan lainnya. Untuk informasi selengkapnya, lihat Program Layanan. |
[in] dwServiceState
Status layanan yang akan dijumlahkan. Parameter ini bisa menjadi salah satu nilai berikut.
[out, optional] lpServices
Penunjuk ke buffer yang berisi array struktur ENUM_SERVICE_STATUS yang menerima informasi nama dan status layanan untuk setiap layanan dalam database. Buffer harus cukup besar untuk menahan struktur, ditambah string yang ditunjukkan anggotanya.
Ukuran maksimum array ini adalah 256K 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.
Windows Server 2003 dan Windows XP: Ukuran maksimum array ini adalah 64K byte. Batas ini ditingkatkan pada Windows Server 2003 dengan SP1 dan Windows XP dengan SP2.
[in] cbBufSize
Ukuran buffer yang diacu oleh parameter lpServices , dalam byte.
[out] pcbBytesNeeded
Penunjuk ke variabel yang menerima jumlah byte yang diperlukan untuk mengembalikan entri layanan yang tersisa, jika buffer terlalu kecil.
[out] lpServicesReturned
Penunjuk ke variabel yang menerima jumlah entri layanan yang dikembalikan.
[in, out, optional] lpResumeHandle
Penunjuk ke variabel yang, pada input, menentukan titik awal enumerasi. Anda harus mengatur nilai ini ke nol saat pertama kali fungsi ini dipanggil. Pada output, nilai ini nol jika fungsi berhasil. Namun, jika fungsi mengembalikan nol dan fungsi GetLastError mengembalikan ERROR_MORE_DATA, nilai ini digunakan untuk menunjukkan entri layanan berikutnya yang akan dibaca ketika fungsi dipanggil untuk mengambil data tambahan.
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.
Kode kesalahan berikut dapat diatur oleh manajer kontrol layanan. Kode kesalahan lainnya dapat diatur oleh fungsi registri yang dipanggil oleh manajer kontrol layanan.
Menampilkan kode | Deskripsi |
---|---|
|
Handel tidak memiliki hak akses SC_MANAGER_ENUMERATE_SERVICE. |
|
Handel yang ditentukan tidak valid. |
|
Parameter yang ditentukan tidak valid. |
|
Ada lebih banyak entri layanan daripada yang akan masuk ke dalam buffer lpServices . Jumlah aktual entri layanan yang ditulis ke lpServices dikembalikan dalam parameter lpServicesReturned . Jumlah byte yang diperlukan untuk mendapatkan entri yang tersisa dikembalikan dalam parameter pcbBytesNeeded . Layanan yang tersisa dapat dijumlahkan dengan panggilan tambahan ke EnumServicesStatus dengan parameter lpResumeHandle yang menunjukkan layanan berikutnya untuk dibaca. |
Keterangan
Catatan
Header winsvc.h mendefinisikan EnumServicesStatus 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
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk