次の方法で共有


FWPS_STREAM_CALLOUT_IO_PACKET0構造体 (fwpsk.h)

FWPS_STREAM_CALLOUT_IO_PACKET0 構造体は、データ ストリームをフィルター処理するときに、フィルター エンジンによって吹き出しの classifyFn 吹き出し関数に渡されるデータを記述します。

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

構文

typedef struct FWPS_STREAM_CALLOUT_IO_PACKET0_ {
  FWPS_STREAM_DATA0       *streamData;
  SIZE_T                  missedBytes;
  UINT32                  countBytesRequired;
  SIZE_T                  countBytesEnforced;
  FWPS_STREAM_ACTION_TYPE streamAction;
} FWPS_STREAM_CALLOUT_IO_PACKET0;

メンバーズ

streamData

吹き出しドライバーの classifyFn 吹き出し関数で使用できるデータ ストリームの部分を処理するために記述する FWPS_STREAM_DATA0 構造体へのポインター。

missedBytes

引き出しドライバーの classifyFn 吹き出し関数が最後に呼び出されてから見つからないデータ ストリーム内のバイト数。 フィルター エンジンの重み付けフィルターが高いほど、引き出しドライバーの classifyFn 吹き出し関数がデータ ストリームの一部を処理できない場合、このメンバーは 0 以外です。

countBytesRequired

吹き出しの classifyFn 吹き出し関数によって設定される値。 この値は、streamAction メンバーを FWPS_STREAM_ACTION_NEED_MORE_DATAに設定した場合に、コールアウト関数に必要なストリーム データの追加バイト数を指定します。 フィルター エンジンは、吹き出しドライバーの classifyFn 吹き出し関数を再度呼び出す前に、少なくともこの多数の追加バイトのストリーム データを受信するまで待機します。

吹き出しの classifyFn 吹き出し関数は、streamAction メンバーを FWPS_STREAM_ACTION_NEED_MORE_DATA以外の値に設定する場合は、このメンバーを 0 に設定する必要があります。

countBytesEnforced

吹き出しの classifyFn 吹き出し関数によって設定される値。 この値は、streamAction メンバーまたは吹き出し関数によって返されるアクションによって指定されたアクションが適用される、処理されるデータ ストリームの一部のデータの先頭バイト数を指定します。 ストリーム バッファー内の残りのデータは、次にフィルター エンジンがコールアウト ドライバーの classifyFn 吹き出し関数を呼び出すと、再び引き出しドライバーに渡されます。

streamAction

データ ストリームに適用するアクションを指定する吹き出しの classifyFn 吹き出し関数によって設定される FWPS_STREAM_ACTION_TYPE 値。 このアクションは、吹き出し関数によって返されるアクションとは無関係です。 吹き出しの classifyFn 吹き出し関数は、このメンバーを次のいずれかに設定します。

FWPS_STREAM_ACTION_NONE

ストリーム固有のアクションは必要ありません。

FWPS_STREAM_ACTION_ALLOW_CONNECTION

フローに属するすべての将来のデータ セグメントが許可されることを示します。 この場合、WFP はコールアウトへのデータ セグメントの分類を停止し、それ以上検査オーバーヘッドが発生しないようにフローをハードウェアにオフロードしようとします。

FWPS_STREAM_ACTION_NEED_MORE_DATA

吹き出し関数では、さらに多くのストリーム データが必要です。

FWPS_STREAM_ACTION_DROP_CONNECTION

ストリーム接続を削除する必要があります。 吹き出しの classifyFn 吹き出し関数は、フィルター エンジンが引き出しドライバーの classifyFn 吹き出し関数に渡す FWPS_FILTER0 構造体の action.type メンバーに FWP_ACTION_CALLOUT_UNKNOWN値が含まれている場合にのみ、streamAction メンバーをこの値に設定する必要があります。 FWPS_FILTER0 構造体の action.type メンバーに値 FWP_ACTION_CALLOUT_INSPECTIONが含まれている場合、吹き出しの classifyFn 吹き出し関数によって streamAction メンバーがこの値に設定された場合、接続は切断されません。

FWPS_STREAM_ACTION_DEFER

ストリーム データの処理は、コールアウト ドライバーが FwpsStreamContinue0 関数を呼び出すまで延期されます。 このアクションは、受信データ ストリームに対してのみ設定できます。

受信データ ストリームを遅延すると、ネットワーク スタックは送信者から受信したデータの確認を停止します。 これにより、スライディング TCP ウィンドウのサイズが縮小されます。 コールアウト ドライバーは、この動作を使用してフロー制御を実装し、受信データレートを遅くすることができます。

FWPS_STREAM_ACTION_TYPE_MAX 値は、テスト目的の最大値です。

吹き出しの classifyFn 吹き出し関数がこのメンバーを FWPS_STREAM_ACTION_NONE以外の値に設定する場合、吹き出し関数によって返されるアクションはフィルター エンジンによって無視されます。

備考

フィルター エンジンは、データ ストリームをフィルター処理するときに、layerData パラメーターとして吹き出しの classifyFn 吹き出し関数に FWPS_STREAM_CALLOUT_IO_PACKET0 構造体へのポインターを渡します。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ヘッダー fwpsk.h (Fwpsk.h を含む)

関連項目

FWPS_STREAM_DATA0

FwpsStreamContinue0

吹き出し の種類

classifyFn