Share via


FWPS_FILTER0 構造体 (fwpstypes.h)

FWPS_FILTER0構造体は、フィルター エンジンの実行時フィルターを定義します。 FWPS_FILTER2 を使用できます。 Windows 7 では、 FWPS_FILTER1 を使用できます。

構文

typedef struct FWPS_FILTER0_ {
  UINT64                 filterId;
  FWP_VALUE0             weight;
  UINT16                 subLayerWeight;
  UINT16                 flags;
  UINT32                 numFilterConditions;
  FWPS_FILTER_CONDITION0 *filterCondition;
  FWPS_ACTION0           action;
  UINT64                 context;
  FWPM_PROVIDER_CONTEXT0 *providerContext;
} FWPS_FILTER0;

メンバー

filterId

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

weight

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

subLayerWeight

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

flags

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

意味
FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT このフラグは、吹き出しの classifyFn0 吹き出し関数に対して、提案されたアクションのFWP_ACTION_BLOCKまたはFWP_ACTION_PERMITを返すときに常にFWPS_RIGHT_ACTION_WRITE フラグをクリアする必要があることを示します。 このフラグが設定されていない場合、吹き出しの classifyFn0 吹き出し関数は、提案されたアクションのFWP_ACTION_BLOCKを返すときにのみ、FWPS_RIGHT_ACTION_WRITE フラグをクリアする必要があります。
FWPS_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED このフラグは、吹き出しの classifyFn0 吹き出し関数に対して、吹き出しが登録されていない場合は、吹き出しを許可フィルターとして扱う必要があることを示します。
FWPS_FILTER_FLAG_OR_CONDITIONS 同じフィールドには複数の条件があります。 OR セマンティクスが適用されました。
FWPS_FILTER_FLAG_HAS_SECURITY_REALM_PROVIDER_CONTEXT フィルターは、IPsec セキュリティ領域 ID のプロバイダー コンテキストを参照します。
FWPS_FILTER_FLAG_SILENT_MODE フィルターはサイレント モードです。
FWPS_FILTER_FLAG_IPSEC_NO_ACQUIRE_INITIATE パケットがこのフラグを持つフィルターの IPsec ポリシーと一致する場合は、IPsec の取得を開始しないでください。
FWPS_FILTER_FLAG_RESERVED0 システムで使用するために予約されています。
FWPS_FILTER_FLAG_RESERVED1 システムで使用するために予約されています。
FWPS_FILTER_FLAG_RESERVED2 システムで使用するために予約されています。

numFilterConditions

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

filterCondition

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

action

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

context

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

providerContext

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

注釈

フィルター エンジンは、 コール アウトの notifyFn0 および classifyFn0 吹き出し関数にFWPS_FILTER0構造体へのポインターを渡します。

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

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
Header fwpstypes.h (Fwpsk.h を含む)

こちらもご覧ください

FWPM_CALLOUT0

FWPM_FILTER0

FWPM_PROVIDER_CONTEXT0

FWPS_ACTION0

FWPS_FILTER1

FWPS_FILTER2

FWPS_FILTER_CONDITION0

FWP_VALUE0

classifyFn0

notifyFn0