利用可能な 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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ws2_32_gen2.hs |