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.
Mengambil nama dan status setiap layanan yang bergantung pada layanan yang ditentukan; artinya, layanan yang ditentukan harus berjalan sebelum layanan dependen dapat berjalan.
Sintaksis
BOOL EnumDependentServicesW(
[in] SC_HANDLE hService,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSW lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned
);
Parameter
[in] hService
Handel ke layanan. Handel ini dikembalikan oleh OpenService
[in] dwServiceState
Status layanan yang akan dijumlahkan. Parameter ini bisa menjadi salah satu nilai berikut.
[out, optional] lpServices
Penunjuk ke array struktur ENUM_SERVICE_STATUS yang menerima informasi nama dan status layanan untuk setiap layanan dependen dalam database. Buffer harus cukup besar untuk menahan struktur, ditambah string yang ditunjuk anggota mereka.
Urutan layanan dalam array ini adalah kebalikan dari urutan awal layanan. Dengan kata lain, layanan pertama dalam array adalah layanan yang akan dimulai terakhir, dan layanan terakhir dalam array adalah layanan yang akan dimulai terlebih dahulu.
Ukuran maksimum array ini adalah 64.000 byte. Untuk menentukan ukuran yang diperlukan, tentukan
[in] cbBufSize
Ukuran buffer yang diacu oleh parameter lpServices
[out] pcbBytesNeeded
Penunjuk ke variabel yang menerima jumlah byte yang diperlukan untuk menyimpan array entri layanan. Variabel hanya menerima nilai ini jika buffer yang ditunjukkan oleh lpServices terlalu kecil, ditunjukkan oleh kegagalan fungsi dan kesalahan ERROR_MORE_DATA; jika tidak, konten pcbBytesNeeded tidak terdefinisi.
[out] lpServicesReturned
Pointer ke variabel yang menerima jumlah entri layanan yang dikembalikan.
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.
Kode kesalahan berikut dapat diatur oleh manajer kontrol layanan. Kode kesalahan lainnya dapat diatur oleh fungsi registri yang dipanggil oleh manajer kontrol layanan.
| Mengembalikan kode | Deskripsi |
|---|---|
|
Handel tidak memiliki hak akses SERVICE_ENUMERATE_DEPENDENTS. |
|
Handel yang ditentukan tidak valid. |
|
Parameter yang ditentukan tidak valid. |
|
Buffer yang ditujukkan oleh lpServices tidak cukup besar. Fungsi mengatur variabel yang diarahkan ke lpServicesReturned ke jumlah entri layanan aktual yang disimpan ke dalam buffer. Fungsi mengatur variabel yang ditunjukkan oleh pcbBytesNeeded ke jumlah byte yang diperlukan untuk menyimpan semua entri layanan. |
Komentar
Entri layanan yang dikembalikan diurutkan dalam urutan terbalik dari urutan mulai, dengan urutan grup yang diperhitungkan. Jika Anda perlu menghentikan layanan dependen, Anda dapat menggunakan urutan entri yang ditulis ke lpServices buffer untuk menghentikan layanan dependen dalam urutan yang tepat.
Contoh
Misalnya, lihat MenghentikanLayanan .
Nota
Header winsvc.h mendefinisikan EnumDependentServices 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