FWPS_CLASSIFY_OUT0構造体 (fwpstypes.h)
FWPS_CLASSIFY_OUT0構造体は、吹き出しの classifyFn 吹き出し関数の呼び出し元に返されるデータを定義します。
構文
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 を含む) |