Win32 API 日本語リファレンス
ホームNetworkManagement.WindowsFirewall › INetFwServiceRestriction

INetFwServiceRestriction

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID8267bbe3-f890-491c-b7b6-2db1ef0e5d2b継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

Windows サービス強化 (Windows Service Hardening) のネットワーク規則にアクセスします。

解説(Remarks)

規則を追加する際、新しく追加された規則が適用されるまでにわずかな時間差が生じる場合がある点に注意してください。

メソッド 3

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT RestrictService(LPWSTR serviceName, LPWSTR appName, VARIANT_BOOL restrictService, VARIANT_BOOL serviceSidRestricted)

RestrictService メソッドは、指定されたサービスに対するサービス制限のオン/オフを切り替えます。

serviceNameLPWSTRinサービス制限のオン/オフを切り替える対象のサービス名。
appNameLPWSTRinサービス制限のオン/オフを切り替える対象のアプリケーション名。
restrictServiceVARIANT_BOOLinサービス制限をオンにするかオフにするかを示します。この値が true (VARIANT_TRUE) の場合、そのサービスはネットワークトラフィックの送受信時に制限されます。Windows サービス強化の規則コレクションには、特定の要件に応じてこのサービスに固有の受信または送信ネットワークアクセスを許可する規則を含めることができます。false (VARIANT_FALSE) の場合、そのサービスは Windows サービス強化による制限を受けません。
serviceSidRestrictedVARIANT_BOOLin指定されたサービスのサービス SID の種類を示します。この値が true (VARIANT_TRUE) の場合、サービス SID は制限付き (restricted) になります。それ以外の場合は制限なし (unrestricted) になります。

戻り値

C++

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

戻り値 説明
E_ACCESSDENIED
アクセス許可の問題により操作が中止されました。
E_INVALIDARG
無効なパラメーターのためメソッドが失敗しました。

VB

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

戻り値 説明
E_ACCESSDENIED
アクセス許可の問題により操作が中止されました。
E_INVALIDARG
無効なパラメーターのためメソッドが失敗しました。

解説(Remarks)

規則を追加する際、新しく追加された規則が適用されるまでにわずかな時間差が生じる場合がある点に注意してください。

vtbl 8 HRESULT ServiceRestricted(LPWSTR serviceName, LPWSTR appName, VARIANT_BOOL* serviceRestricted)

ServiceRestricted メソッドは、ファイアウォール規則で指定されたリソースにトラフィックを制限するためのサービス制限規則が有効になっているかどうかを示します。

serviceNameLPWSTRinサービス制限の状態を照会する対象のサービス名。
appNameLPWSTRinサービス制限の状態を照会する対象のアプリケーション名。
serviceRestrictedVARIANT_BOOL*out指定されたサービスを制限するサービス制限規則が設定されているかどうかを示します。true (VARIANT_TRUE) の場合、サービスは制限されています。それ以外の場合、サービスはファイアウォール規則で指定されたリソースに制限されていません。

戻り値

C++

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

戻り値 説明
E_ACCESSDENIED
アクセス許可の問題により操作が中止されました。
E_INVALIDARG
無効なパラメーターのためメソッドが失敗しました。
E_OUTOFMEMORY
必要なメモリを割り当てることができませんでした。
E_POINTER
無効なポインターのためメソッドが失敗しました。

VB

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

戻り値 説明
E_ACCESSDENIED
アクセス許可の問題により操作が中止されました。
E_INVALIDARG
無効なパラメーターのためメソッドが失敗しました。
E_OUTOFMEMORY
必要なメモリを割り当てることができませんでした。
E_POINTER
無効なポインターのためメソッドが失敗しました。
vtbl 9 HRESULT get_Rules(INetFwRules** rules)

Windows サービス強化のネットワーク規則のコレクションを取得します。

rulesINetFwRules**outサービス制限に関連付けられたファイアウォール規則のコレクションを表す INetFwRules インターフェイスを受け取るポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_INetFwServiceRestriction "{8267BBE3-F890-491C-B7B6-2DB1EF0E5D2B}"
#usecom global INetFwServiceRestriction IID_INetFwServiceRestriction "{}"
#comfunc global INetFwServiceRestriction_RestrictService    7 wstr,wstr,int,int
#comfunc global INetFwServiceRestriction_ServiceRestricted  8 wstr,wstr,var
#comfunc global INetFwServiceRestriction_get_Rules          9 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。