Bagikan melalui


Fungsi SetAddrInfoExA (ws2tcpip.h)

Fungsi SetAddrInfoEx mendaftarkan atau membatalkan pendaftaran nama, nama layanan, dan alamat terkait dengan penyedia namespace layanan tertentu.

Sintaks

INT WSAAPI SetAddrInfoExA(
  [in]            PCSTR                              pName,
  [in]            PCSTR                              pServiceName,
  [in, out]       SOCKET_ADDRESS                     *pAddresses,
  [in]            DWORD                              dwAddressCount,
  [in, optional]  LPBLOB                             lpBlob,
  [in]            DWORD                              dwFlags,
  [in]            DWORD                              dwNameSpace,
  [in, optional]  LPGUID                             lpNspId,
  [in, optional]  timeval                            *timeout,
  [in, optional]  LPOVERLAPPED                       lpOverlapped,
  [in, optional]  LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
  [out, optional] LPHANDLE                           lpNameHandle
);

Parameter

[in] pName

Penunjuk ke string yang dihentikan NULL yang berisi nama di mana alamat akan didaftarkan atau didaftarkan. Interpretasi parameter ini khusus untuk penyedia namespace layanan.

[in] pServiceName

Penunjuk ke string opsional yang dihentikan NULL yang berisi nama layanan yang terkait dengan nama yang didaftarkan. Interpretasi parameter ini khusus untuk penyedia namespace layanan.

[in, out] pAddresses

Penunjuk ke daftar alamat opsional untuk mendaftar dengan penyedia namespace layanan.

[in] dwAddressCount

Jumlah alamat yang diteruskan dalam parameter pAddresses . Jika parameter ini nol, parameter pName dibatalkan pendaftarannya dari penyedia namespace.

[in, optional] lpBlob

Penunjuk opsional ke data yang digunakan untuk mengatur informasi namespace khusus penyedia yang terkait dengan parameter pName di luar daftar alamat. Informasi apa pun yang tidak dapat diteruskan dalam parameter pAddresses dapat diteruskan dalam parameter lpBlob . Format informasi ini khusus untuk penyedia namespace layanan.

[in] dwFlags

Sekumpulan bendera yang mengontrol bagaimana parameter pName dan pServiceName akan didaftarkan ke penyedia namespace layanan. Interpretasi informasi ini khusus untuk penyedia namespace layanan.

[in] dwNameSpace

Pengidentifikasi namespace yang menentukan penyedia namespace layanan mana yang akan mendaftarkan informasi ini. Meneruskan pengidentifikasi namespace tertentu akan mengakibatkan pendaftaran informasi ini hanya dengan penyedia namespace layanan yang mendukung namespace yang ditentukan. Menentukan NS_ALL akan mengakibatkan pendaftaran informasi dengan semua penyedia namespace yang terinstal dan aktif.

Opsi untuk parameter dwNameSpace tercantum dalam file sertakan Winsock2.h . Beberapa penyedia namespace disertakan dengan Windows Vista dan yang lebih baru. Penyedia namespace layanan lain dapat diinstal, sehingga nilai yang mungkin berikut ini hanyalah yang umumnya tersedia. Banyak orang lain yang mungkin.

Nilai Makna
NS_ALL
Semua namespace layanan yang terinstal dan aktif.
NS_BTH
Namespace Bluetooth. Pengidentifikasi namespace ini didukung pada Windows Vista dan yang lebih baru.
NS_DNS
Namespace sistem nama domain (DNS).
NS_EMAIL
Namespace email. Pengidentifikasi namespace ini didukung pada Windows Vista dan yang lebih baru.
NS_NLA
Namespace layanan kesadaran lokasi jaringan (NLA). Pengidentifikasi namespace ini didukung pada Windows XP dan yang lebih baru.
NS_PNRPNAME
Namespace peer-to-peer untuk nama serekan tertentu. Pengidentifikasi namespace ini didukung pada Windows Vista dan yang lebih baru.
NS_PNRPCLOUD
Namespace peer-to-peer untuk kumpulan nama serekan. Pengidentifikasi namespace ini didukung pada Windows Vista dan yang lebih baru.

[in, optional] lpNspId

Penunjuk ke GUID opsional dari penyedia namespace layanan tertentu untuk mendaftarkan informasi ini dalam kasus di mana beberapa penyedia namespace terdaftar di bawah namespace layanan tunggal seperti NS_DNS. Meneruskan GUID untuk penyedia namespace tertentu akan mengakibatkan informasi didaftarkan hanya dengan penyedia namespace yang ditentukan. Fungsi WSAEnumNameSpaceProviders dapat dipanggil untuk mengambil GUID untuk penyedia namespace.

[in, optional] timeout

Parameter opsional yang menunjukkan waktu, dalam milidetik, untuk menunggu respons dari penyedia namespace sebelum membatalkan panggilan. Parameter ini saat ini dicadangkan dan harus diatur ke NULL karena opsi batas waktu tidak didukung.

[in, optional] lpOverlapped

Penunjuk opsional ke struktur tumpang tindih yang digunakan untuk operasi asinkron. Parameter ini saat ini dicadangkan dan harus diatur ke NULL karena operasi asinkron tidak didukung.

[in, optional] lpCompletionRoutine

Penunjuk opsional ke fungsi yang akan dipanggil setelah berhasil diselesaikan untuk operasi asinkron. Parameter ini saat ini dicadangkan dan harus diatur ke NULL karena operasi asinkron tidak didukung.

[out, optional] lpNameHandle

Penunjuk opsional hanya digunakan untuk operasi asinkron. Parameter ini saat ini dicadangkan dan harus diatur ke NULL karena operasi asinkron tidak didukung.

Mengembalikan nilai

Jika berhasil, SetAddrInfoEx mengembalikan NO_ERROR (0). Kegagalan mengembalikan kode kesalahan Windows Sockets nonzero, seperti yang ditemukan di Kode Kesalahan Soket Windows.

Kode kesalahan Makna
WSANOTINITIALISED
Panggilan WSAStartup yang berhasil harus terjadi sebelum menggunakan fungsi ini.
WSATRY_AGAIN
Terjadi kegagalan sementara dalam resolusi nama.
WSAEINVAL
Parameter yang tidak valid disediakan. Kesalahan ini dikembalikan jika salah satu parameter yang dipesan bukan NULL.
WSAENOBUFS
Ruang buffer tidak cukup tersedia.
WSANO_RECOVERY
Terjadi kegagalan yang tidak dapat dipulihkan dalam resolusi nama.
WSA_NOT_ENOUGH_MEMORY
Terjadi kegagalan alokasi memori.

Keterangan

Fungsi SetAddrInfoEx menyediakan metode independen protokol untuk mendaftarkan atau membatalkan pendaftaran nama dan satu atau beberapa alamat dengan penyedia namespace layanan. Penyedia namespace NS_EMAIL di Windows Vista dan kemudian mendukung pendaftaran dan deregistrasi alamat. Penyedia namespace NS_DNS, NS_PNRPNAME, dan NS_PNRPNAME default saat ini tidak mendukung pendaftaran nama.

Jika fungsi SetAddrInfoEx dipanggil dengan NS_ALL ditetapkan sebagai parameter dwNameSpace dan parameter lpNspId tidak ditentukan, maka SetAddrInfoEx akan mencoba mendaftarkan atau membatalkan pendaftaran nama dan alamat terkait dengan semua namespace yang diinstal dan aktif. Fungsi SetAddrInfoEx akan mengembalikan keberhasilan jika salah satu penyedia namespace berhasil mendaftarkan atau membatalkan pendaftaran nama, tetapi tidak akan ada indikasi penyedia namespace layanan mana yang berhasil atau mana yang gagal dalam permintaan.

Ketika UNICODE atau _UNICODE ditentukan, SetAddrInfoEx didefinisikan ke SetAddrInfoExW, versi Unicode dari fungsi ini. Parameter string didefinisikan ke jenis data PWSTR .

Ketika UNICODE atau _UNICODE tidak ditentukan, SetAddrInfoEx didefinisikan ke SetAddrInfoExA, versi ANSI dari fungsi ini. Parameter string adalah dari jenis data PCSTR .

Informasi yang terdaftar di penyedia namespace dapat dikembalikan dengan memanggil fungsi GetAddrInfoEx, getaddrinfo, atau GetAddrInfoW . Fungsi GetAddrInfoEx adalah versi yang disempurnakan dari fungsi getaddrinfo dan GetAddrInfoW .

Pada Windows Vista dan yang lebih baru, ketika SetAddrInfoEx dipanggil dari layanan, jika operasi adalah hasil dari proses pengguna yang memanggil layanan, maka layanan harus meniru pengguna. Hal ini untuk memungkinkan kompartemen keamanan dan perutean diberlakukan dengan benar.

Windows 8.1 dan Windows Server 2012 R2: Fungsi SetAddrInfoExW didukung untuk aplikasi Windows Store di Windows 8.1, Windows Server 2012 R2, dan yang lebih baru.

Catatan

Header ws2tcpip.h mendefinisikan SetAddrInfoEx 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 8.1, Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header ws2tcpip.h
Pustaka Ws2_32.lib
DLL Ws2_32.dll

Lihat juga

GetAddrInfoEx

GetAddrInfoW

WSAEnumNameSpaceProviders

WSAGetLastError

Kode Kesalahan Windows Sockets

getaddrinfo