FWPS_CALLOUT3構造体 (fwpsk.h)
FWPS_CALLOUT3 構造体は、吹き出しドライバーがフィルター エンジンに吹き出しを登録するために必要なデータを定義します。
構文
typedef struct FWPS_CALLOUT3_ {
GUID calloutKey;
UINT32 flags;
FWPS_CALLOUT_CLASSIFY_FN3 classifyFn;
FWPS_CALLOUT_NOTIFY_FN3 notifyFn;
FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT3;
メンバーズ
calloutKey
引き出し線を一意に識別する引き出しドライバー定義 GUID。
flags
吹き出し固有のパラメーターを指定するフラグ。 使用可能なフラグは次のとおりです。
価値 | 意味 |
---|---|
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW 0x00000001 |
吹き出しドライバーは、データ フローをサポートするレイヤーに追加される吹き出しを登録するときに、このフラグを指定できます。 このフラグが指定されている場合、フィルター エンジンは、データ フローに関連付けられているコンテキストがある場合にのみ、引き出しドライバーの classifyFn3 吹き出し関数を呼び出します。 コールアウト ドライバーは、FwpsFlowAssociateContext0 関数を呼び出すことによって、コンテキストをデータ フローに関連付けます。 |
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD 0x00000002 |
吹き出しドライバーは、このフラグを指定して、吹き出しドライバーの classifyFn3 引き出し関数が、オフロード対応のネットワーク インターフェイス カード (NIC) にネットワーク データ処理をオフロードすることによって影響を受けないことを示します。 このフラグが指定されていない場合、フィルターのアクションの吹き出しを指定するフィルターによって処理されるすべてのトラフィックに対して、ネットワーク データ処理のオフロードが無効になります。 |
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY 0x00000004 |
吹き出しドライバーは、トランザクション内に追加されたオブジェクトとフィルターに関する通知を受け取ることができることを示すために、このフラグを指定します。 フィルター エンジンは、トランザクションがコミットされた後に通知を送信します。 |
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION 0x00000008 |
コールアウト ドライバーは、ストリーム レベルでデータ フローの動的ストリーム検査を実行できることを示すために、このフラグを指定します。 ストリーム検査 |
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY 0x00000010 |
コールアウト ドライバーは、既存のソケット操作が再分類されたときに呼び出される自体を登録するこのフラグを指定します。 |
FWP_CALLOUT_FLAG_RESERVED1 0x00000020 |
システム用に予約されています。 吹き出しドライバーは、このフラグを無視する必要があります。 |
FWP_CALLOUT_FLAG_ALLOW_RSC 0x00000040 |
コールアウト ドライバーは、このフラグを指定して、コールアウトが最大 64K の大きなパケットを持つ TCP 受信セグメント結合 (RSC) をサポートしていることを示します。 このフラグが指定されておらず、吹き出しが登録されている場合、フィルターのアクションの吹き出しを指定するフィルターによって処理されるすべてのトラフィックに対して RSC が無効になります。 |
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY 0x00000080 |
吹き出しドライバーは、レイヤー 2 で追加される吹き出しを登録するときにこのフラグを指定し、その classifyFn3 吹き出し関数が複数のチェーン NET_BUFFER_LIST 構造を分類できることを示します。 詳細については、「レイヤー 2 フィルタリングの使用 注意: コールアウト ドライバーでこのフラグを設定した場合、次の関数を使用してNET_BUFFER_LISTsを変更することはできません。 • FwpsReferenceNetBufferList0 • FwpsDereferenceNetBufferList0 • FwpsAllocateCloneNetBufferList0 • FwpsFreeCloneNetBufferList0 このフラグを設定すると、FwpsAllocateCloneNetBufferList0 |
FWP_CALLOUT_FLAG_ALLOW_USO 0x00000100 |
コールアウト ドライバーは、このフラグを指定して、吹き出しがネットワーク メディアの MTU より大きいパケットを含む UDP セグメント化オフロード (USO) をサポートすることを示します。 このフラグが指定されておらず、吹き出しが登録されている場合、フィルターのアクションの吹き出しを指定するフィルターによって処理されるすべてのトラフィックに対して USO が無効になります。 注: このフラグがサポートされている最も古いバージョンは、Windows Insider Preview バージョン 10.0.25876 です。 |
FWP_CALLOUT_FLAG_ALLOW_URO 0x00000200 |
コールアウト ドライバーは、このフラグを指定して、コールアウトが最大 64K の大きなパケットを含む UDP 受信オフロード (URO) をサポートしていることを示します。 このフラグが指定されておらず、吹き出しが登録されている場合、フィルターのアクションの吹き出しを指定するフィルターによって処理されるすべてのトラフィックに対して URO が無効になります。 注: このフラグが指定されている場合、コールアウトは、インバウンド URO パケットを複製して再挿入してはなりません。 |
classifyFn
吹き出しドライバーの classifyFn3 吹き出し関数へのポインター。 フィルター エンジンは、吹き出しによって処理されるネットワーク データがある場合は常に、この関数を呼び出します。
notifyFn
コールアウト ドライバーの notifyFn3 関数へのポインター。 フィルター エンジンは、この関数を呼び出して、吹き出しに関連付けられているイベントについてコールアウト ドライバーに通知します。
flowDeleteFn
引き出し線ドライバーの flowDeleteFn 吹き出し関数へのポインター。 フィルター エンジンは、吹き出しによって処理されているデータ フローが終了するたびに、この関数を呼び出します。
吹き出しドライバーが、引き出し線が処理するデータ フローにコンテキストを関連付けなかった場合は、このメンバーを NULL に設定する必要があります。
備考
コールアウト ドライバーは、フィルター エンジンにコールアウトを登録するときに、初期化された FWPS_CALLOUT3 構造体へのポインターを FwpsCalloutRegister3 関数に渡します。
コールアウトでは、ドライバーがストリーム検査の実行に関心がある接続に対してのみ、FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW フラグを設定できます。 この吹き出しは、他のすべての接続では無視されます。 パフォーマンスが向上し、ドライバーは不要な状態データを維持する必要はありません。
この構造は、基本的に以前のバージョンと同じです,FWPS_CALLOUT3. 唯一の違いは、このバージョンのメンバーが更新されたバージョンの吹き出し関数ポインターを格納し、コールアウト ドライバーが設定できる追加のフラグを使用できる点です。
FWPS_CALLOUT3 は、FWPS_CALLOUTの特定のバージョンです。 詳細については、「WFP Version-Independent 名の と Windows の特定のバージョンを対象とする」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 以降で使用できます。 |
ヘッダー | fwpsk.h |
関連項目
- FWPS_CALLOUT0
- FWPS_CALLOUT1
- FWPS_CALLOUT2
- FwpsCalloutRegister3 を
する - classifyFn3
- flowDeleteFn を
する - notifyFn3 を
する - レイヤー 2 フィルタリング を使用した