FwpsInjectvSwitchEthernetIngressAsync0 函数 (fwpsk.h)

FwpsInjectvSwitchEthernetIngressAsync0 (是 FwpsInjectvSwitchIngressAsync0) 函数将以前吸收的虚拟交换机数据包重新注入 (未修改) 回截获的虚拟交换机入口数据路径。 此函数还可以注入使用 FwpsAllocateNetBufferAndNetBufferList0 函数创建的数据包。

注意FwpsInjectvSwitchEthernetIngressAsync0FwpsInjectvSwitchEthernetIngressAsync 的特定版本。 有关详细信息 ,请参阅 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

以前通过调用 FwpsInjectionHandleCreate0 函数创建的注入句柄, 并将 flags 参数设置为 FWPS_INJECTION_TYPE_L2

未使用 addressFamily 参数,应将其设置为 AF_UNSPEC

[in, optional] injectionContext

可使用 FwpsQueryPacketInjectionState0 函数检索的注入上下文的可选句柄。

[in] flags

保留。 必须设置为零。

[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 参数处的数据包数据已注入虚拟交换机出口数据路径后,筛选器引擎调用此函数。 将为链中的每个NET_BUFFER_LIST调用一次 completionFn 函数。 注入克隆或创建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开始可用。
目标平台 通用
标头 fwpsk.h (包括 Fwpsk.h)
Library Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

另请参阅

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn