WSAEnumProtocols 関数は、利用可能なトランスポートプロトコルに関する情報を取得する。(Unicode)
WSAEnumProtocolsW lpiProtocols, lpProtocolBuffer, lpdwBufferLength
lpiProtocols : [var] iProtocol 値の NULL 終端配列。このパラメータはオプションで、lpiProtocols が NULL の場合は利用可能なすべてのプロトコルの情報が返される。そうでない場合、配列に列挙されたプロトコルの情報のみが取得される。 lpProtocolBuffer : [var] WSAPROTOCOL_INFO 構造体で埋められるバッファへのポインタ。 lpdwBufferLength : [var] 入力時、WSAEnumProtocols に渡される lpProtocolBuffer バッファのバイト数。出力時、要求したすべての情報を取得するために WSAEnumProtocols に渡すことができる最小バッファサイズ。このルーチンは複数の呼び出しにわたって列挙する機能を持たず、ルーチンが成功するためには渡されるバッファがすべてのエントリを保持できる大きさでなければならない。これにより API の複雑さが減り、通常コンピュータにロードされているプロトコル数は少ないので問題にはならない。
(プラグイン / モジュール : ws2_32.dll)
WSAEnumProtocols 関数は、利用可能なトランスポートプロトコルに関する情報を取得する。(Unicode) [戻り値] エラーがない場合、WSAEnumProtocols は報告されるプロトコルの数を返す。そうでない場合は SOCKET_ERROR を返し、WSAGetLastError を呼び出すことで特定のエラーコードを取得できる。 (以下省略) [備考] WSAEnumProtocols 関数は、ローカルコンピュータにインストールされたトランスポートプロトコル群の情報を調べるために使用される。レイヤードプロトコルは、プロトコルチェーンにインストールされている場合のみアプリケーションから使用できる。レイヤードプロトコル自体の情報は返されないが、チェーン長ゼロでインストールされたダミーのレイヤードサービスプロバイダ (LSP) は lpProtocolBuffer に含まれる。注 レイヤードサービスプロバイダは非推奨となった。Windows 8 および Windows Server 2012 以降では、Windows Filtering Platform を使用すべきである。lpiProtocols パラメータは、返される情報量を制限するフィルタとして使用できる。多くの場合、lpiProtocols に NULL ポインタを指定し、利用可能なすべてのトランスポートプロトコルとプロトコルチェーンの情報を取得する。WSAEnumProtocols 関数は、WSCEnumProtocols および WSCEnumProtocols32 関数と異なり、インストール済みのすべてのプロトコルの WSAPROTOCOL_INFO 構造体を返さない。WSAEnumProtocols 関数は、サービスプロバイダが WSAPROTOCOL_INFO 構造体の dwProviderFlags メンバに PFL_HIDDEN フラグを設定したプロトコル (WSAEnumProtocols が生成する結果バッファに含めないよう Ws2_32.dll に指示するもの) を除外する。さらに、WSAEnumProtocols 関数はチェーン長が 1 以上の WSAPROTOCOL_INFO 構造体 (LSP プロバイダ) のデータを返さない。WSAEnumProtocols は、PFL_HIDDEN フラグが無く、プロトコルチェーン長がゼロでない基本プロトコルとプロトコルチェーンの情報のみを返す。要求された各プロトコルについて、lpProtocolBuffer が指すバッファに WSAPROTOCOL_INFO 構造体が提供される。指定したバッファが十分でない場合 (lpdwBufferLength の入力値で示される)、lpdwBufferLength が指す値は必要なバッファサイズを示すよう更新される。アプリケーションは十分に大きなバッファを用意して、WSAEnumProtocols を再度呼び出すべきである。WSAPROTOCOL_INFO 構造体がバッファに現れる順序は、サービスプロバイダが WS2_32.DLL 経由でプロトコルエントリを登録した順序、または Windows Sockets アプリケーションや既定の TCP/IP プロバイダ確立用に提供された DLL によって後から並べ替えが行われた場合の順序と一致する。Windows Phone 8: WSAEnumProtocolsW 関数は Windows Phone 8 以降の Windows Phone ストアアプリでサポートされる。Windows 8.1 および Windows Server 2012 R2: WSAEnumProtocolsW 関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストアアプリでサポートされる。
| プラグイン / モジュール | 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 |