WSCGetProviderInfo

Layered Service Provider (LSP) の情報クラスに関連付けられたデータを取得する。

WSCGetProviderInfo lpProviderId, InfoType, Info, InfoSize, Flags, lpErrno

lpProviderId : [var] プロバイダの GUID へのポインタ。
InfoType : [int] この LSP プロトコルエントリに対して要求する情報クラス。
Info : [var] 要求された LSP プロトコルエントリの情報クラスデータを受け取るバッファへのポインタ。**NULL** の場合、**WSCGetProviderInfo** は失敗し、必要バッファサイズが InfoSize で返される。
InfoSize : [var] Info が指すバッファのサイズ (バイト単位)。Info が **NULL** なら **WSCGetProviderInfo** は失敗し、InfoSize に必要なサイズが返される。
Flags : [int] **WSCGetProviderInfo** 呼び出しの動作を変更するフラグ。
lpErrno : [var] 関数が失敗した場合のエラーコードへのポインタ。

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

解説

Layered Service Provider (LSP) の情報クラスに関連付けられたデータを取得する。

[戻り値]
エラーがない場合、**WSCGetProviderInfo** は **ERROR_SUCCESS** (0) を返す。そうでない場合は
**SOCKET_ERROR** を返し、lpErrno に特定のエラーコードが格納される。
このドキュメントは省略されている。

[備考]
**WSCGetProviderInfo** は、Layered Service Provider
の情報クラスデータを取得するために使う。InfoType に **ProviderInfoLspCategories**
を指定した場合、成功時に **WSCGetProviderInfo** は LSP が実装する適切な LSP カテゴリフラグを Info
に設定して返す。Winsock 2
はレイヤードプロトコルに対応する。レイヤードプロトコルは高レベル通信機能のみを実装し、下位トランスポートスタックに実データ交換を依存する。認証と暗号化合意のためにプロトコルを追加するセキュリティ層が例で、このようなプロトコルは
TCP や SPX
等を必要とする。ベースプロトコルは単独で通信可能なプロトコル、レイヤードプロトコルは単独では使えないプロトコルである。プロトコルチェーンは
1 つ以上のレイヤードプロトコルをベースプロトコルで終端したものである。WSAProtocol_Info 構造体の
**ChainLen** が **BASE_PROTOCOL** (1) ならベース、**LAYERED_PROTOCOL** (0)
ならレイヤード、1 より大きければチェーンである。LSP 初期化時、LSP は Winsock SPI
関数のポインタを提供しなければならない。IFS LSP は自前実装か直下層のポインタをそのまま返すかを選択できる。非 IFS LSP
は独自ハンドルを持つため全 SPI を実装する必要がある。LSP は SPI の部分集合に追加処理を行う。これを基に LSP
カテゴリが定義される。Windows Vista 以降では Winsock 呼び出しとデータへの作用方法で分類される。LSP カテゴリは
SPI 部分集合上の識別可能な挙動群で、例えば HTTP コンテンツフィルタは LSP_INSPECTOR
に分類される。LSP_INSPECTOR はデータ転送 SPI 関数の引数を検査するが変更しない。アプリケーションは LSP
のカテゴリを問い合わせ、許可カテゴリに基づきロードしない選択ができる。
このドキュメントは省略されている。

情報

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