Fungsi GetServiceA (nspapi.h)
Fungsi GetService mengambil informasi tentang layanan jaringan dalam konteks sekumpulan namespace default atau namespace layanan tertentu. Layanan jaringan ditentukan oleh jenis dan namanya. Informasi tentang layanan diperoleh sebagai sekumpulan struktur data NS_SERVICE_INFO .
Sintaks
INT GetServiceA(
[in] DWORD dwNameSpace,
[in] LPGUID lpGuid,
[in] LPSTR lpServiceName,
[in] DWORD dwProperties,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferSize,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);
Parameter
[in] dwNameSpace
Namespace layanan, atau sekumpulan namespace default, yang harus dikueri sistem operasi untuk informasi tentang layanan jaringan yang ditentukan.
Gunakan salah satu konstanta berikut untuk menentukan namespace.
Sebagian besar panggilan ke GetService harus menggunakan nilai khusus NS_DEFAULT. Ini memungkinkan klien mendapatkan dengan tanpa mengetahui namespace yang tersedia di internetwork. Administrator sistem menentukan akses namespace layanan. Namespace dapat datang dan pergi tanpa klien harus mengetahui perubahan.
[in] lpGuid
Penunjuk ke pengidentifikasi unik global (GUID) yang menentukan jenis layanan jaringan. File header Svcguid.h menyertakan jenis layanan GUID dari banyak layanan terkenal dalam namespace DNS dan SAP.
File header Svcguid.h tidak secara otomatis disertakan oleh file header Winsock2.h .
[in] lpServiceName
Penunjuk ke string yang dihentikan nol yang secara unik mewakili nama layanan. Misalnya, "MY SNA SERVER."
[in] dwProperties
Sekumpulan bendera bit yang menentukan informasi layanan yang diambil fungsi. Masing-masing konstanta bendera bit ini, selain PROP_ALL, sesuai dengan anggota tertentu dari struktur data SERVICE_INFO . Jika bendera diatur, fungsi menempatkan informasi ke dalam anggota struktur data yang sesuai yang disimpan di *lpBuffer. Bendera bit berikut didefinisikan.
[out] lpBuffer
Penunjuk ke buffer untuk menerima array struktur NS_SERVICE_INFO dan informasi layanan terkait. Setiap struktur NS_SERVICE_INFO berisi informasi layanan dalam konteks namespace layanan tertentu. Perhatikan bahwa jika dwNameSpace NS_DEFAULT, fungsi menyimpan lebih dari satu struktur ke dalam buffer; jika tidak, hanya satu struktur yang disimpan.
Setiap struktur NS_SERVICE_INFO berisi struktur SERVICE_INFO . Anggota struktur SERVICE_INFO ini akan berisi data yang valid berdasarkan bendera bit yang diatur dalam parameter dwProperties . Jika bendera bit anggota yang sesuai tidak diatur dalam dwProperties, nilai anggota tidak ditentukan.
Fungsi ini menyimpan struktur NS_SERVICE_INFO dalam array berturut-turut, dimulai di awal buffer. Penunjuk dalam struktur SERVICE_INFO yang terkandung menunjuk ke informasi yang disimpan dalam buffer antara akhir struktur NS_SERVICE_INFO dan akhir buffer.
[in, out] lpdwBufferSize
Penunjuk ke variabel yang, pada input, berisi ukuran, dalam byte, dari buffer yang ditujukkan oleh lpBuffer. Pada output, variabel ini berisi jumlah byte yang diperlukan untuk menyimpan informasi yang diminta. Jika nilai output ini lebih besar dari nilai input, fungsi telah gagal karena ukuran buffer yang tidak mencukup.
[in, optional] lpServiceAsyncInfo
Disiapkan untuk penggunaan masa mendatang. Harus diatur ke NULL.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah jumlah struktur NS_SERVICE_INFO yang disimpan dalam *lpBuffer. Nol menunjukkan bahwa tidak ada struktur yang disimpan.
Jika fungsi gagal, nilai yang dikembalikan adalah SOCKET_ERROR ( – 1). Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError, yang mengembalikan salah satu nilai kesalahan yang diperluas berikut.
Kode kesalahan | Makna |
---|---|
|
Buffer yang ditujukkan oleh lpBuffer terlalu kecil untuk menerima semua informasi yang diminta. Panggil fungsi dengan buffer setidaknya sebesar nilai yang dikembalikan dalam *lpdwBufferSize. |
|
Layanan yang ditentukan tidak ditemukan, atau namespace yang ditentukan tidak digunakan. Nilai pengembalian fungsi adalah nol dalam kasus ini. |
Keterangan
Catatan
Header nspapi.h mendefinisikan GetService 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 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | nspapi.h |
Pustaka | Mswsock.lib |
DLL | Mswsock.dll |