FWPS_CLASSIFY_OUT0構造体 (fwpstypes.h)

FWPS_CLASSIFY_OUT0構造体は、吹き出しの classifyFn 吹き出し関数の呼び出し元に返されるデータを定義します。

FWPS_CLASSIFY_OUT0は特定のバージョンのFWPS_CLASSIFY_OUTであることに注意してください。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。
 

構文

typedef struct FWPS_CLASSIFY_OUT0_ {
  FWP_ACTION_TYPE actionType;
  UINT64          outContext;
  UINT64          filterId;
  UINT32          rights;
  UINT32          flags;
  UINT32          reserved;
} FWPS_CLASSIFY_OUT0;

メンバー

actionType

吹き出しドライバーの classifyFn 吹き出し関数によって決定される推奨されるアクションを指定するFWP_ACTION_TYPE値。 吹き出しドライバーは、この変数を次のいずれかの値に設定します。

FWP_ACTION_BLOCK

データの送受信をブロックします。

FWP_ACTION_CONTINUE

フィルター エンジンの次のフィルターに対してデータの送受信をブロックまたは許可する決定を渡します。

FWP_ACTION_NONE

データに対して何も実行しません。

FWP_ACTION_NONE_NO_MATCH

列挙されたフィルター データ型と一致しないため、データに対して何も実行しません。

FWP_ACTION_PERMIT

データの送受信を許可します。

このメンバーへの書き込みアクセスは、権限メンバーの FWPS_RIGHT_ACTION_WRITE フラグによって制御されます。 FWPS_RIGHT_ACTION_WRITE フラグが設定されている場合、引き出し線ドライバーは、上記の値のいずれかをこのメンバーに書き込むことができます。 FWPS_RIGHT_ACTION_WRITE フラグが設定されていない場合、引き出しドライバーは、フィルター エンジンのより高い重みフィルターによって以前に返されたFWP_ACTION_PERMITアクションを拒否しない限り、このメンバーに書き込むべきではありません。 このような状況では、引き出し線ドライバーは、このメンバーを FWP_ACTION_BLOCKに設定します。

outContext

システムで使用するために予約されています。 吹き出しドライバーでは、このメンバーを使用しないでください。

filterId

システムで使用するために予約されています。 吹き出しドライバーでは、このメンバーを使用しないでください。

rights

この構造体内の他のメンバーへの書き込みアクセスを制御するフラグ。 使用可能なフラグは次のとおりです。

FWPS_RIGHT_ACTION_WRITE

このフラグが設定されている場合、引き出し線ドライバーは、この構造体の actionType メンバーに書き込むことができます。 このフラグが設定されていない場合、引き出しドライバーは、フィルター エンジンのより高い重みフィルターによって以前に返されたFWP_ACTION_PERMITアクションを拒否している場合にのみ、この構造体の actionType メンバーに書き込むことができます。

flags

データに対して実行されるアクションに影響を与えるフラグ。 使用可能なフラグは次のとおりです。

FWPS_CLASSIFY_OUT_FLAG_ABSORB

ブロックされたデータは、イベントログや監査を行わずにサイレントに削除されます。 これは通常、元のパケットを吸収し、変更されたパケットをさらに処理するパケット変更に使用されます。

actionType メンバーが FWP_ACTION_BLOCK に設定されている場合、このフラグは次のレイヤーに適用されます。

FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
FWPS_LAYER_INBOUND_IPPACKET_V4
FWPS_LAYER_INBOUND_IPPACKET_V6
FWPS_LAYER_OUTBOUND_IPPACKET_V4
FWPS_LAYER_OUTBOUND_IPPACKET_V6
FWPS_LAYER_INBOUND_TRANSPORT_V4
FWPS_LAYER_INBOUND_TRANSPORT_V6
FWPS_LAYER_OUTBOUND_TRANSPORT_V4
FWPS_LAYER_OUTBOUND_TRANSPORT_V6
FWPS_LAYER_INBOUND_ICMP_ERROR_V4
FWPS_LAYER_INBOUND_ICMP_ERROR_V6
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6
FWPS_LAYER_DATAGRAM_DATA_V4
FWPS_LAYER_DATAGRAM_DATA_V6
FWPS_LAYER_STREAM_PACKET_V4
FWPS_LAYER_STREAM_PACKET_V6
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6
FWPS_LAYER_ALE_AUTH_CONNECT_V4
FWPS_LAYER_ALE_AUTH_CONNECT_V6

このフラグは、FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4およびFWPS_LAYER_ALE_FLOW_ESTABLISHED_V6レイヤーで設定することもできます。 ただし、これらのレイヤーはコンテキストをフローに関連付けることを目的としているため、これを行うことはお勧めしません。

このフラグが設定されていない場合、ブロッキング アクションは通常のイベント ログと監査の対象になります。

FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED

フィルター エンジンは、ストリーム データのフィルター エンジンのデータ バッファーがいっぱいになると、このフラグを設定します。 これは、引き出し線の classifyFn 吹き出し関数が、バッファー制限に達するまで、FWPS_STREAM_CALLOUT_IO_PACKET0構造体の streamAction メンバーをFWPS_STREAM_ACTION_NEED_MORE_DATAに設定することで、より多くのデータを繰り返し要求する場合に発生する可能性があります。 このフラグが設定されている場合、引き出しドライバーの classifyFn 吹き出し関数は、すべてのストリーム データを許可またはブロックする必要があります。

このフラグは、ストリーム レイヤーでのみ適用できます。

FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA

Streamストリームが切断された後にデータが要求されました。

reserved

システムで使用するために予約されています。 吹き出しドライバーでは、このメンバーを使用しないでください。

注釈

フィルター エンジンは、吹き出しの classifyFn 吹き出し関数にFWPS_CLASSIFY_OUT0構造体へのポインターを渡します。 コールアウト ドライバーは、この構造体を使用して呼び出し元にデータを返します。

要件

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

こちらもご覧ください

FWPS_STREAM_CALLOUT_IO_PACKET0

実行時フィルターレイヤー識別子

classifyFn