FWPS_FILTER3 構造体 (fwpstypes.h)

フィルター エンジンで実行時フィルターを定義します。 FWPS_FILTER0FWPS_FILTER1FWPS_FILTER2 を使用できます。

構文

typedef struct FWPS_FILTER3_ {
  UINT64                 filterId;
  FWP_VALUE0             weight;
  UINT16                 subLayerWeight;
  UINT16                 flags;
  UINT32                 numFilterConditions;
  FWPS_FILTER_CONDITION0 *filterCondition;
  FWPS_ACTION0           action;
  UINT64                 context;
  FWPM_PROVIDER_CONTEXT3 *providerContext;
} FWPS_FILTER3;

メンバー

filterId

型: UINT64

フィルター エンジン内のフィルターを識別するランタイム識別子。

weight

種類: FWP_VALUE0

フィルター エンジン内の他のフィルターに対するフィルターの重要度を示す 値。 重みの値が大きいフィルターは、最初に呼び出されます。 FWP_VALUE0構造体で指定されたデータ型は、FWP_UINT64またはFWP_EMPTYのいずれかです。 FWP_VALUE0構造体で指定されたデータ型がFWP_EMPTYされている場合、フィルター エンジンは、フィルター エンジン内の他のフィルターと比較してデータをテストする具体的な方法に基づいて、フィルターに重みを自動的に割り当てます。

subLayerWeight

種類: UINT16

フィルター エンジン内の他のサブレイヤーに対するフィルターのサブレイヤーの重要度を示す 値。 subLayerWeight 値が高いサブレイヤーにあるフィルターは、最初に呼び出されます。

flags

種類: UINT16

ネットワーク データを処理するときに吹き出しの classifyFn2 吹き出し関数が実行する必要があるアクションを指定するフラグ。 使用可能なフラグは次のとおりです。

意味
FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT このフラグは、引き出し線の classifyFn2 吹き出し関数に対して、提案されたアクションのFWP_ACTION_BLOCKまたはFWP_ACTION_PERMITを返すときに、常にFWPS_RIGHT_ACTION_WRITE フラグをクリアする必要があることを示します。
FWPS_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED このフラグは、吹き出しが登録されていない場合、引き出し線を許可フィルターとして扱う必要があることを吹き出しの classifyFn2 吹き出し関数に示します。

numFilterConditions

種類: UINT32

filterCondition が指す配列内のFWPS_FILTER_CONDITION0構造体の数。 数値は 0 にすることができます。

filterCondition

種類: FWPS_FILTER_CONDITION0*

FWPS_FILTER_CONDITION0構造体の配列へのポインター。 これらの構造体は、フィルターの実行時フィルター条件を定義します。 numFilterConditions が 0 の場合、このポインターは NULL になります。

action

種類: FWPS_ACTION0

フィルターのすべてのフィルター条件が true の場合にフィルターが実行する必要があるアクションを指定します。

context

型: UINT64

フィルターに関連付けられているコンテキスト値。 吹き出しは、フィルターがフィルター エンジンに追加されるときに、引き出しドライバーの classifyFn2 吹き出し関数内から引き出しドライバーが指定したコンテキスト構造を指すこのメンバーを設定できます。 フィルター エンジンに対して不透明なこのコンテキスト構造は、引き出し線ドライバーの classifyFn2 吹き出し関数によって、フィルター エンジンによる呼び出し間のドライバー固有のデータまたは状態情報を保持するために使用できます

providerContext

種類: FWPM_PROVIDER_CONTEXT3*

プロバイダー コンテキストへのポインター。 これは、FWPM_PROVIDER_CONTEXT3 構造体として書式設定されます。 フィルターで吹き出しが使用され、吹き出しに FWPM_CALLOUT_FLAG_USES_PROVIDER_CONTEXT フラグが設定されている場合、このメンバーには、対応する FWPM_FILTER0 構造体のプロバイダー コンテキストが含まれます。 それ以外の場合、このメンバーは NULL です。

注釈

フィルター エンジンは、 き出し線の notifyFn3classifyFn3 吹き出し関数にFWPS_FILTER3構造体へのポインターを渡します。

フィルターのアクションは、フィルターのすべてのフィルター条件が true の場合にのみ実行されます。 フィルターでフィルター条件が指定されていない場合、指定されたアクションは常に実行されます。

providerContext メンバーは、引き出しドライバーがベース フィルター エンジン (BFE) を呼び出さずにプロバイダー コンテキストを取得するためのメカニズムを提供します。

この構造体は、providerContext メンバーの構造体FWPM_PROVIDER_CONTEXT3以前のバージョンと基本的に同じです。

要件

要件
Header fwpstypes.h