WSAEnumProtocolsW

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
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