WSCWriteNameSpaceOrder

利用可能な Windows Sockets (Winsock) 2 ネームスペースプロバイダの順序を変更する。ネームスペースプロバイダの順序は、名前解決で列挙/問い合わせされる際の名前空間の優先度を決める。

WSCWriteNameSpaceOrder lpProviderId, dwNumberOfEntries

lpProviderId : [var] WSANAMESPACE_INFO 構造体に含まれる NSProviderId 要素の配列。NSProviderId 要素の並びがネームスペースプロバイダの新しい優先順位となる。
dwNumberOfEntries : [int] NSProviderId 配列の要素数。

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

解説

利用可能な Windows Sockets (Winsock) 2
ネームスペースプロバイダの順序を変更する。ネームスペースプロバイダの順序は、名前解決で列挙/問い合わせされる際の名前空間の優先度を決める。

[戻り値]
ルーチンが成功すると ERROR_SUCCESS (0) を返す。そうでない場合は特定のエラーコードを返す。
このドキュメントは省略されている。

[備考]
ネームスペースプロバイダは WSCInstallNameSpace 関数でインストールされる。インストール順は
WSAEnumNameSpaceProviders での既定の列挙順を決め、名前解決時に考慮される順も決める。この順序は
WSCWriteNameSpaceOrder 関数で変更できる。64 ビットプラットフォームでは、64 ビットプロセスから 32
ビットネームスペースプロバイダカタログの順序を変更できるよう WSCWriteNameSpaceOrder32 関数が用意されている。64
ビットプラットフォームでは、32 ビットネームスペースプロバイダカタログには WSCInstallNameSpace32
でインストールする。現在のネームスペースプロバイダカタログは HKEY_LOCAL_MACHINE\SYSTEM\Current
Control Set\Services\Winsock2\Parameters\NameSpace_Catalog5 に格納されている。
名前解決要求は
WSALookupServiceBegin、WSALookupServiceNext、WSALookupServiceEnd
ルーチンで行う。WSALookupServiceBegin に渡す WSAQUERYSET の dwNameSpace
メンバには、検索を制限する単一名前空間 (例: NS_DNS) または NS_ALL を設定する。特定名前空間 (例: NS_DNS)
を複数プロバイダがサポートしている場合、lpNSProviderId
を特定プロバイダに設定しない限り全プロバイダの結果が返される。dwNameSpace が NS_ALL
なら全プロバイダの結果が返る。返される順序はカタログ上のプロバイダ順に依存する。Windows SDK には SpOrder.exe
が含まれており、インストール済みネームスペースプロバイダのカタログを表示できる。Winsock 2 には ws2_32.dll
が含まれ、カタログを並び替える WSCWriteNameSpaceOrder をエクスポートしている。このインターフェースは
WS2_32.lib とリンクすることで取り込める。Windows XP SP2、Windows Server 2003 SP1
以降では、netsh.exe winsock show catalog
コマンドでプロトコル/ネームスペースプロバイダを表示できる。WSCWriteNameSpaceOrder は Administrators
グループメンバのみ呼び出せる。そうでない場合は失敗し、lpErrno に WSANO_RECOVERY が返される。Windows
Vista や Windows Server 2008 では UAC が原因で失敗することもある。以下は
WSCWriteNameSpaceOrder が失敗するシナリオ例である。
このドキュメントは省略されている。

情報

プラグイン / モジュール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