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 函数创建的注入句柄,标志 参数设置为 FWPS_INJECTION_TYPE_L2

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

[in, optional] injectionContext

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

[in] flags

保留。 必须设置为零。

[in, optional] reserved

保留。 必须设置为 NULL。

[in] vSwitchId

筛选引擎在 FWPS_INCOMING_VALUES0 结构中传递给标注驱动程序的 分类Fn 标注函数的虚拟交换机标识符。 这是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)
Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

另请参阅

FWPS_INCOMING_VALUES0

FwpsAllocateNetBufferAndNetBufferList0

FwpsInjectionHandleCreate0

FwpsQueryPacketInjectionState0

NET_BUFFER_LIST

completionFn