SetAddrInfoExW

名前、サービス名、および関連アドレスを特定のネームスペースプロバイダに登録または登録解除する。(Unicode)

SetAddrInfoExW pName, pServiceName, pAddresses, dwAddressCount, lpBlob, dwFlags, dwNameSpace, lpNspId, timeout, lpOverlapped, lpCompletionRoutine, lpNameHandle

pName : [wstr] アドレスを登録または登録解除する名前を格納する NULL 終端文字列へのポインタ。このパラメータの解釈はネームスペースプロバイダ固有である。
pServiceName : [wstr] 登録する名前に関連付けられたサービス名を格納する NULL 終端文字列へのオプションのポインタ。このパラメータの解釈はネームスペースプロバイダ固有である。
pAddresses : [var] ネームスペースプロバイダに登録するアドレスのオプションのリストへのポインタ。
dwAddressCount : [int] pAddresses パラメータで渡されるアドレスの数。このパラメータがゼロの場合、pName パラメータはネームスペースプロバイダから登録解除される。
lpBlob : [var] pName パラメータに関連付けられるプロバイダ固有の名前空間情報を、アドレスリストを越えて設定するために使うデータへのオプションのポインタ。pAddresses パラメータで渡せない情報は lpBlob パラメータで渡すことができる。この情報の形式はネームスペースプロバイダ固有である。
dwFlags : [int] pName および pServiceName パラメータをネームスペースプロバイダにどのように登録するかを制御するフラグのセット。この情報の解釈はネームスペースプロバイダ固有である。
dwNameSpace : [int] どのネームスペースプロバイダに情報を登録するかを決定する名前空間識別子。特定の名前空間識別子を渡すと、指定した名前空間をサポートするネームスペースプロバイダのみに情報が登録される。NS_ALL を指定するとインストール済みかつアクティブなすべてのネームスペースプロバイダに情報が登録される。
lpNspId : [var] NS_DNS のような単一の名前空間の下に複数のネームスペースプロバイダが登録されている場合に、情報を登録する特定ネームスペースプロバイダを示すオプションの GUID へのポインタ。特定のネームスペースプロバイダの GUID を渡すと、指定したネームスペースプロバイダのみに情報が登録される。ネームスペースプロバイダの GUID を取得するには WSAEnumNameSpaceProviders 関数を呼び出せばよい。
timeout : [var] ネームスペースプロバイダからの応答を待ってから呼び出しを中止するまでの時間 (ミリ秒) を示すオプションのパラメータ。タイムアウトオプションがサポートされないため、このパラメータは現在予約されており NULL を設定しなければならない。
lpOverlapped : [var] 非同期操作に使われる overlapped 構造体へのオプションのポインタ。非同期操作がサポートされないため、このパラメータは現在予約されており NULL を設定しなければならない。
lpCompletionRoutine : [int] 非同期操作の正常完了時に呼び出される関数へのオプションのポインタ。非同期操作がサポートされないため、このパラメータは現在予約されており NULL を設定しなければならない。
lpNameHandle : [intptr] 非同期操作用のオプションのポインタ。非同期操作がサポートされないため、このパラメータは現在予約されており NULL を設定しなければならない。

(プラグイン / モジュール : ws2_32.dll)

解説

名前、サービス名、および関連アドレスを特定のネームスペースプロバイダに登録または登録解除する。(Unicode)

[戻り値]
成功時、SetAddrInfoEx は NO_ERROR (0) を返す。失敗時は Windows Sockets エラーコード一覧にある
0 以外の Windows Sockets エラーコードを返す。
(以下省略)

[備考]
SetAddrInfoEx 関数は、名前と 1
つ以上のアドレスをネームスペースプロバイダに登録または登録解除するプロトコル非依存な方法を提供する。Windows Vista 以降の
NS_EMAIL ネームスペースプロバイダはアドレスの登録および登録解除をサポートする。既定の
NS_DNS、NS_PNRPNAME、NS_PNRPNAME
ネームスペースプロバイダは、現時点では名前登録をサポートしない。SetAddrInfoEx 関数を dwNameSpace パラメータに
NS_ALL を指定し、かつ lpNspId パラメータを指定せずに呼び出した場合、SetAddrInfoEx
はインストール済みかつアクティブなすべての名前空間に対して名前と関連アドレスの登録または登録解除を試みる。いずれかのネームスペースプロバイダが名前の登録または登録解除に成功すれば
SetAddrInfoEx 関数は成功を返すが、どのネームスペースプロバイダが成功または失敗したかは通知されない。UNICODE または
_UNICODE が定義されている場合、SetAddrInfoEx は Unicode 版の SetAddrInfoExW
として定義される。文字列パラメータは PWSTR データ型として定義される。UNICODE または _UNICODE
が定義されていない場合、SetAddrInfoEx は ANSI 版の SetAddrInfoExA として定義される。文字列パラメータは
PCSTR
データ型となる。ネームスペースプロバイダに登録された情報は、GetAddrInfoEx、getaddrinfo、GetAddrInfoW
関数を呼び出すことで取得できる。GetAddrInfoEx 関数は getaddrinfo および GetAddrInfoW
関数の拡張版である。Windows Vista 以降で SetAddrInfoEx
がサービスから呼び出され、その操作がユーザープロセスによるサービス呼び出しの結果である場合、セキュリティとルーティングの区画を正しく適用するために、サービスはそのユーザーになりすます必要がある。
Windows 8.1 および Windows Server 2012 R2: SetAddrInfoExW 関数は、Windows
8.1、Windows Server 2012 R2 以降の Windows ストアアプリでサポートされる。
> [!NOTE] > ws2tcpip.h ヘッダは、UNICODE プリプロセッサ定数の定義に基づいて本関数の ANSI 版と
Unicode 版を自動的に選択するエイリアスとして SetAddrInfoEx
を定義している。エンコーディング中立なエイリアスとエンコーディング中立でないコードを混在させると、コンパイルエラーや実行時エラーを招く不整合が発生しうる。詳しくは
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

プラグイン / モジュールws2_32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ws2_32_gen2.hs