Bagikan melalui


Fungsi GetServiceA (nspapi.h)

Fungsi GetService mengambil informasi tentang layanan jaringan dalam konteks sekumpulan namespace default atau namespace yang ditentukan. Layanan jaringan ditentukan oleh jenis dan namanya. Informasi tentang layanan diperoleh sebagai sekumpulan struktur data NS_SERVICE_INFO.

Note Fungsi GetService adalah ekstensi khusus Microsoft untuk spesifikasi Windows Sockets 1.1. Fungsi ini usang. Untuk kenyamanan pengembang Windows Sockets 1.1, materi referensi ini disertakan.
 
Catatan Fungsi yang dirinci dalam resolusi nama Protocol-Independent menyediakan fungsionalitas yang setara di Windows Sockets 2.
 

Sintaksis

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 layanan.

Nilai Arti
NS_DEFAULT
Sekumpulan namespace default. Sistem operasi mengkueri setiap namespace dalam set ini. Kumpulan namespace default biasanya mencakup semua namespace layanan yang diinstal pada sistem. Namun, administrator sistem dapat mengecualikan namespace tertentu dari set. NS_DEFAULT adalah nilai yang harus digunakan sebagian besar aplikasi untuk dwNameSpace.
NS_DNS
Sistem Nama Domain yang digunakan di Internet untuk resolusi nama host.
NS_NETBT
NetBIOS melalui lapisan TCP/IP. Semua sistem operasi mendaftarkan nama komputer mereka dengan NetBIOS. Namespace ini digunakan untuk mengatasi nama komputer ke alamat IP menggunakan pendaftaran ini. Perhatikan bahwa NS_NETBT dapat mengakses server WINS untuk melakukan resolusi.
NS_SAP
Protokol Iklan NetWare Service. Ini dapat mengakses bindery NetWare jika sesuai. NS_SAP adalah namespace dinamis yang memungkinkan pendaftaran layanan.
NS_TCPIP_HOSTS
Mencari nama host dan alamat IP dalam file systemroot <>\system32\drivers\etc\hosts.
NS_TCPIP_LOCAL
Mekanisme resolusi nama TCP/IP lokal, termasuk perbandingan dengan nama host lokal dan mencari nama host dan alamat IP dalam cache pemetaan host ke alamat IP.
 

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 mencakup 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.

Nilai Arti
PROP_COMMENT
Jika bendera ini diatur, fungsi menyimpan data di lpComment anggota struktur data yang disimpan di *lpBuffer.
PROP_LOCALE
Jika bendera ini diatur, fungsi menyimpan data di lpLocale anggota struktur data yang disimpan di *lpBuffer.
PROP_DISPLAY_HINT
Jika bendera ini diatur, fungsi menyimpan data di dwDisplayHint anggota struktur data yang disimpan di *lpBuffer.
PROP_VERSION
Jika bendera ini diatur, fungsi menyimpan data di dwVersion anggota struktur data yang disimpan di *lpBuffer.
PROP_START_TIME
Jika bendera ini diatur, fungsi menyimpan data di dwTime anggota struktur data yang disimpan di *lpBuffer.
PROP_MACHINE
Jika bendera ini diatur, fungsi menyimpan data di lpMachineName anggota struktur data yang disimpan di *lpBuffer.
PROP_ADDRESSES
Jika bendera ini diatur, fungsi menyimpan data di lpServiceAddress anggota struktur data yang disimpan di *lpBuffer.
PROP_SD
Jika bendera ini diatur, fungsi menyimpan data di ServiceSpecificInfo anggota struktur data yang disimpan di *lpBuffer.
PROP_ALL
Jika bendera ini diatur, fungsi menyimpan data di semua anggota struktur data yang disimpan di *lpBuffer.

[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 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 diacu 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

Dicadangkan untuk digunakan di masa mendatang. Harus diatur keNULL .

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian adalah jumlah struktur NS_SERVICE_INFO yang disimpan dalam *lpBuffer. Zero menunjukkan bahwa tidak ada struktur yang disimpan.

Jika fungsi gagal, nilai pengembalian adalah SOCKET_ERROR ( – 1). Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError, yang mengembalikan salah satu nilai kesalahan yang diperluas berikut.

Kode kesalahan Arti
ERROR_INSUFFICIENT_BUFFER
Buffer yang ditujukkan oleh lpBuffer terlalu kecil untuk menerima semua informasi yang diminta. Panggil fungsi dengan buffer setidaknya sebesar nilai yang dikembalikan dalam *lpdwBufferSize.
ERROR_SERVICE_NOT_FOUND
Layanan yang ditentukan tidak ditemukan, atau namespace yang ditentukan tidak digunakan. Nilai pengembalian fungsi adalah nol dalam kasus ini.

Komentar

Nota

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

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header nspapi.h
Pustaka Mswsock.lib
DLL Mswsock.dll

Lihat juga

NS_SERVICE_INFO

SERVICE_INFO

SetService

Winsock Functions

Referensi Winsock