FWPS_STREAM_CALLOUT_IO_PACKET0 構造体 (fwpsk.h)
FWPS_STREAM_CALLOUT_IO_PACKET0構造体は、データ ストリームをフィルター処理するときに、フィルター エンジンによって吹き出しの classifyFn 吹き出し関数に渡されるデータを記述します。
構文
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 メンバーをこの値に設定する必要があります。 吹き出しの classifyFn 吹き出し関数が、FWPS_FILTER0構造体の action.type メンバーにFWP_ACTION_CALLOUT_INSPECTION値が含まれている場合、streamAction メンバーをこの値に設定した場合、接続は削除されません。
FWPS_STREAM_ACTION_DEFER
ストリーム データの処理は、コールアウト ドライバーが FwpsStreamContinue0 関数を呼び出すまで延期されます。 このアクションは、受信データ ストリームに対してのみ設定できます。
受信データ ストリームを遅延すると、ネットワーク スタックは送信者から受信したデータの確認を停止します。 これにより、スライディング TCP ウィンドウのサイズが縮小されます。 コールアウト ドライバーは、この動作を使用してフロー制御を実装し、受信データレートを遅くできます。
FWPS_STREAM_ACTION_TYPE_MAX値は、テスト目的の最大値です。
吹き出しの classifyFn 吹き出し関数によってこのメンバー がFWPS_STREAM_ACTION_NONE以外の値に設定されている場合、吹き出し関数によって返されるアクションはフィルター エンジンによって無視されます。
注釈
フィルター エンジンは、データ ストリームをフィルター処理するときに、レイヤーData パラメーターとして引き出し線の classifyFn 吹き出し関数にFWPS_STREAM_CALLOUT_IO_PACKET0構造体へのポインターを渡します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降で使用できます。 |
Header | fwpsk.h (Fwpsk.h を含む) |