WSCSetApplicationCategory

アプリケーションに関連付けられた許可 LSP (Layered Service Provider) カテゴリを設定する。

WSCSetApplicationCategory Path, PathLength, Extra, ExtraLength, PermittedLspCategories, pPrevPermLspCat, lpErrno

Path : [wstr] アプリケーションの実行イメージへのロードパスを含む Unicode 文字列へのポインタ。通常のパス解決規則に従い、%SystemRoot% などの埋め込み環境変数文字列を含めてよい。
PathLength : [int] Path 引数の長さ (文字数)。終端の **NULL** は含まない。
Extra : [wstr] Path 引数で指定されたアプリケーション起動時のコマンドライン引数を表す Unicode 文字列へのポインタ。Extra 引数は同じコマンドラインで起動される複数の異なるインスタンスを区別するために使う。Path のみで十分な場合、Extra は **NULL** にすべきである。
ExtraLength : [int] Extra 引数の長さ (文字数)。終端の **NULL** は含まない。
PermittedLspCategories : [int] このアプリケーションの全インスタンスで許可する LSP カテゴリの DWORD 値。アプリケーションは Path と Extra の組み合わせで識別される。
pPrevPermLspCat : [var] このアプリケーションの全インスタンスで以前許可されていた LSP カテゴリ集合を受け取るポインタ。省略可能で **NULL** にできる。
lpErrno : [var] 関数が失敗した場合のエラーコードへのポインタ。

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

解説

アプリケーションに関連付けられた許可 LSP (Layered Service Provider) カテゴリを設定する。

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

[備考]
**WSCSetApplicationCategory** はアプリケーションインスタンスに関連付ける LSP
カテゴリフラグを設定するために使う。アプリケーションはどの LSP 挙動が許容されるかを判断でき、指定した挙動を実装する LSP
のみをロードできるようにできる。Extra
引数はコマンドラインで同一実行ファイル内のアプリケーション/サービスインスタンスを区別する必要があるときに必須である。代表例は
Svchost.exe と Rundll32.exe である。SvcHost.exe では **-k <svcinstance>**
スイッチでプロセスインスタンスを定義する。サービスではサービス名だけでは不十分である。Winsock カタログはプロセスにグローバルで、1
プロセスが複数サービスをホストできるためである。同じアプリケーション (フルパス、EXE 名、引数が同一) に対して
**WSCSetApplicationCategory** を複数回呼ぶと、カテゴリは OR 結合される。たとえば "c:\foo.exe
-param" に LSP_SYSTEM を設定後に LSP_REDIRECTOR を設定すると、エントリは LSP_SYSTEM |
LSP_REDIRECTOR となる。これは 1 つの EXE が複数アプリケーションをホストする状況 (svchost.exe など)
に対応するための設計である。
Winsock は最初の WSAStartup 呼び出し時にアプリケーションを識別し、許可 LSP
カテゴリを取得する。インスタンスの生存期間中はその集合が許可カテゴリとなる。以降の変更は次のインスタンス起動まで反映されず、生存期間中は不変である。Winsock
2 はレイヤードプロトコルに対応する (以下、WSCGetApplicationCategory の説明と同様)。LSP
カテゴリの分類基準も同様で、たとえば HTTP コンテンツフィルタは **LSP_INSPECTOR** に分類される。アプリケーションは
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