Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghitung layanan dalam database manajer kontrol layanan yang ditentukan. Nama dan status setiap layanan disediakan, bersama dengan data tambahan berdasarkan tingkat informasi yang ditentukan.
Sintaksis
BOOL EnumServicesStatusExA(
[in] SC_HANDLE hSCManager,
[in] SC_ENUM_TYPE InfoLevel,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
[out, optional] LPBYTE lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned,
[in, out, optional] LPDWORD lpResumeHandle,
[in, optional] LPCSTR pszGroupName
);
Parameter
[in] hSCManager
Handel ke database manajer kontrol layanan. Handel ini dikembalikan oleh fungsi OpenSCManager
[in] InfoLevel
Atribut layanan yang akan dikembalikan. Gunakan SC_ENUM_PROCESS_INFO untuk mengambil informasi nama dan status layanan untuk setiap layanan dalam database. Parameter lpServices
Saat ini, tidak ada tingkat informasi lain yang ditentukan.
[in] dwServiceType
Jenis layanan yang akan dijumlahkan. Parameter ini bisa berupa satu atau beberapa nilai berikut.
[in] dwServiceState
Status layanan yang akan dijumlahkan. Parameter ini bisa menjadi salah satu nilai berikut.
[out, optional] lpServices
Penunjuk ke buffer yang menerima informasi status. Format data ini tergantung pada nilai parameter InfoLevel.
Ukuran maksimum array ini adalah 256K byte. Untuk menentukan ukuran yang diperlukan, tentukan
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
[out] pcbBytesNeeded
Pointer ke variabel yang menerima jumlah byte yang diperlukan untuk mengembalikan entri layanan yang tersisa, jika buffer terlalu kecil.
[out] lpServicesReturned
Pointer 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 EnumServicesStatusEx dipanggil. Pada output, nilai ini nol jika fungsi berhasil. Namun, jika fungsi mengembalikan nol dan fungsi GetLastError
[in, optional] pszGroupName
Nama grup urutan beban. Jika parameter ini adalah string, satu-satunya layanan yang dijumlahkan adalah yang termasuk dalam grup yang memiliki nama yang ditentukan oleh string. Jika parameter ini adalah string kosong, hanya layanan yang bukan milik grup apa pun yang dijumlahkan. Jika parameter ini null, keanggotaan grup diabaikan dan semua layanan dijumlahkan.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError. Kesalahan berikut dapat dikembalikan.
| Mengembalikan kode | Deskripsi |
|---|---|
|
Handel tidak memiliki hak akses SC_MANAGER_ENUMERATE_SERVICE. |
|
Buffer terlalu kecil. Tidak semua data dalam database aktif dapat dikembalikan. Parameter pcbBytesNeeded berisi jumlah byte yang diperlukan untuk menerima entri yang tersisa. |
|
Nilai parameter ilegal digunakan. |
|
Handel tidak valid. |
|
Parameter InfoLevel |
|
Sistem sedang dimatikan; fungsi ini tidak dapat dipanggil. |
Komentar
Jika penelepon tidak memiliki hak akses SERVICE_QUERY_STATUS ke layanan, layanan akan dihilangkan secara diam-diam dari daftar layanan yang dikembalikan ke klien.
Nota
Header winsvc.h mendefinisikan EnumServicesStatusEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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
| Syarat | Nilai |
|---|---|
| klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
| Platform Target |
Windows |
| Header |
winsvc.h (termasuk Windows.h) |
| Pustaka |
Advapi32.lib |
| DLL |
Advapi32.dll |
Lihat juga