FwpsInjectvSwitchEthernetIngressAsync0 関数 (fwpsk.h)

FwpsInjectvSwitchEthernetIngressAsync0 (was FwpsInjectvSwitchIngressAsync0) 関数は、以前に吸収された仮想スイッチ パケット (変更されていない) を、インターセプトされた仮想スイッチイングレス データ パスに再結合します。 この関数は、 FwpsAllocateNetBufferAndNetBufferList0 関数で作成されたパケットを挿入することもできます。

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

構文

NTSTATUS FwpsInjectvSwitchEthernetIngressAsync0(
  [in]           HANDLE                injectionHandle,
  [in, optional] HANDLE                injectionContext,
  [in]           UINT32                flags,
  [in, optional] void                  *reserved,
  [in]           const FWP_BYTE_BLOB   *vSwitchId,
  [in]           NDIS_SWITCH_PORT_ID   vSwitchSourcePortId,
  [in]           NDIS_SWITCH_NIC_INDEX vSwitchSourceNicIndex,
                 NET_BUFFER_LIST       *netBufferLists,
  [in]           FWPS_INJECT_COMPLETE  completionFn,
  [in, optional] HANDLE                completionContext
);

パラメーター

[in] injectionHandle

flags パラメーターを FWPS_INJECTION_TYPE_L2 に設定した FwpsInjectionHandleCreate0 関数の呼び出しによって以前に作成されたインジェクション ハンドル。

addressFamily パラメーターは使用されず、AF_UNSPECに設定する必要があります。

[in, optional] injectionContext

FwpsQueryPacketInjectionState0 関数で取得できる挿入コンテキストへの省略可能なハンドル。

[in] flags

予約済み。 0 に設定する必要があります。

[in, optional] reserved

予約済み。 NULL に設定する必要があります。

[in] vSwitchId

フィルター 処理エンジンが FWPS_INCOMING_VALUES0 構造体で引き出しドライバーの classifyFn 吹き出し関数に渡した仮想スイッチ識別子。 これは、xxx_VSWITCH_ID フィールドに用意されている仮想スイッチの GUID です。

[in] vSwitchSourcePortId

仮想スイッチのソース ポート識別子。

[in] vSwitchSourceNicIndex

仮想スイッチのソース NIC インデックス。

netBufferLists

仮想スイッチエグレス データ パスに挿入される NET_BUFFER_LIST 構造体のチェーン。

[in] completionFn

吹き出しドライバーによって提供される completionFn 吹き出し関数へのポインター。 フィルター エンジンは、 netBufferLists パラメーターのパケット データが仮想スイッチエグレス データ パスに挿入された後に、この関数を呼び出します。 completionFn 関数は、チェーン内のNET_BUFFER_LISTごとに 1 回呼び出されます。 複製または作成されたNET_BUFFER_LIST構造体を挿入する場合は、completionFnを指定する必要があります。 このパラメーターは、フィルター エンジンから受信した元の変更されていない NET_BUFFER_LIST 構造体を挿入するときに NULL にすることができます。

[in, optional] completionContext

completionFn パラメーターが指す引き出し関数に渡される、引き出しドライバーによって提供されるコンテキストへのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。

戻り値

FwpsInjectvSwitchEthernetIngressAsync0 関数は、次の NTSTATUS コードのいずれかを返します。

リターン コード 説明
STATUS_SUCCESS
チェーン NET_BUFFER_LIST 仮想スイッチが正常に挿入されました。
その他の状態コード
エラーが発生しました。

解説

吹き出しが FwpsInjectvSwitchEthernetIngressAsync0 でパケットを挿入すると、パケットが最初に分類されたものと同じフィルターと一致する場合、挿入されたパケットを再び分類できます。 したがって、IP レイヤーでの吹き出しと同様に、仮想スイッチの吹き出しは、無限パケット検査から保護するために FwpsQueryPacketInjectionState0 関数を呼び出す必要があります。

要件

要件
サポートされている最小のクライアント Windows 8以降で使用できます。
対象プラットフォーム ユニバーサル
Header fwpsk.h (Fwpsk.h を含む)
Library Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn