NDIS_RECEIVE_FILTER_CAPABILITIES 结构 (ntddndis.h)
NDIS_RECEIVE_FILTER_CAPABILITIES 结构指定网络适配器的接收筛选功能。
NDIS 接收筛选器用于以下 NDIS 接口:
-
NDIS 数据包合并。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 管理数据包合并接收筛选器。
-
单根 I/O 虚拟化 (SR-IOV) 。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 在虚拟端口上设置接收筛选器。
-
虚拟机队列 (VMQ)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 设置和清除 VMQ 筛选器。
语法
typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG EnabledFilterTypes;
ULONG EnabledQueueTypes;
ULONG NumQueues;
ULONG SupportedQueueProperties;
ULONG SupportedFilterTests;
ULONG SupportedHeaders;
ULONG SupportedMacHeaderFields;
ULONG MaxMacHeaderFilters;
ULONG MaxQueueGroups;
ULONG MaxQueuesPerQueueGroup;
ULONG MinLookaheadSplitSize;
ULONG MaxLookaheadSplitSize;
ULONG SupportedARPHeaderFields;
ULONG SupportedIPv4HeaderFields;
ULONG SupportedIPv6HeaderFields;
ULONG SupportedUdpHeaderFields;
ULONG MaxFieldTestsPerPacketCoalescingFilter;
ULONG MaxPacketCoalescingFilters;
ULONG NdisReserved;
} NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;
成员
Header
NDIS_RECEIVE_FILTER_CAPABILITIES 结构的NDIS_OBJECT_HEADER结构。 驱动程序将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT。
为了指示 NDIS_RECEIVE_FILTER_CAPABILITIES 结构的版本,驱动程序将 Revision 成员设置为以下值之一:
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2
已添加
NDIS 6.30 及更高版本的各种成员。
驱动程序将 Size 成员设置为 NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2。
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1
NDIS 6.20 的原始版本。
驱动程序将 Size 成员设置为 NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1。
Flags
标志的按位 OR。 此成员是为 NDIS 保留的。
EnabledFilterTypes
指定启用的接收筛选器类型的标志的按位 OR。 以下筛选器类型标志有效。
NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED
指定启用 VMQ 筛选器。
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
指定启用 NDIS 数据包合并接收筛选器。
EnabledQueueTypes
指定启用的接收队列类型的按位 OR 标志。 以下队列类型标志有效。
NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED
指定启用虚拟机 (VM) 队列。 启用微型端口驱动程序以使用 VMQ 接口时,将使用 VM 队列。
NumQueues
网络适配器支持的 VM 队列数。
SupportedQueueProperties
指定网络适配器支持的 VM 队列属性的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED
网络适配器使用 MSI-X 生成接收队列中断。 对于支持 VMQ 或 SR-IOV 接口的微型端口驱动程序,此标志是必需的。
NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED
网络适配器提供了支持 VM 队列数据包筛选的最低要求。
如果微型端口驱动程序已启用以使用 VMQ 或 SR-IOV 接口,则必须设置此标志。
有关 VM 队列数据包筛选的 VMQ 要求的详细信息,请参阅 设置和清除 VMQ 筛选器。
有关 VM 队列数据包筛选的 SR-IOV 要求的详细信息,请参阅 在虚拟端口上设置接收筛选器。
NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED
网络适配器支持在视头偏移量拆分传入的接收数据包的 VM 队列。 此偏移量等于或大于请求的观察头大小。 网络适配器使用 DMA 传输 lookahead 和 post-lookahead 数据,以分隔共享内存段。
NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED
网络适配器支持动态更改以下处理器相关性属性之一:
- VMQ 接口中 VM 队列的处理器相关性。 处理器相关性通过 OID_RECEIVE_FILTER_QUEUE_PARAMETERS的 OID 集请求更改。
- 非默认虚拟端口的处理器相关性 (VPort) ,它是在 SR-IOV 接口中创建的,附加到 PCI Express (PCIe) 物理功能 (网络适配器的 PF) 。 处理器相关性通过 OID_NIC_SWITCH_VPORT_PARAMETERS的 OID 集请求更改。
NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED
网络适配器支持以下任一上接收的数据包的中断合并:
- VMQ 接口中的多个 VM 队列。
- 连接到 SR-IOV 接口中的 PF 的多个 VPort。
NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE
指示可用的 VM 队列数是负载均衡故障转移 (LBFO) 团队的任何成员可用的最小队列数。 此标志仅适用于 LBFO 筛选器。 未为微型端口设置此标志。
NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE
指示可用的 VM 队列数是 LBFO 团队的每个成员可用的所有队列的总和。 此标志仅适用于 LBFO 筛选器。 未为微型端口设置此标志。
NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE
网络适配器支持 NDIS 数据包合并。 仅在网络适配器的默认接收队列上支持数据包合并。 此接收队列的标识符为 NDIS_DEFAULT_RECEIVE_QUEUE_ID。
SupportedFilterTests
指定微型端口驱动程序支持的测试操作的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
网络适配器支持测试所选标头字段,以确定它是否等于给定值。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED
网络适配器支持屏蔽 (,即按位和) 所选标头字段,以确定结果是否等于指定值。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
网络适配器支持测试所选标头字段,以确定它是否不等于指定的值。
SupportedHeaders
指定微型端口驱动程序可以检查的网络数据包标头类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
网络适配器可以检查网络数据包 (MAC) 标头的媒体访问控制。 SupportedMacHeaderFields 成员定义 MAC 标头中可检查的各种字段。
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
网络适配器可以检查地址解析协议 (网络数据包的 ARP) 标头。 SupportedArpHeaderFields 成员定义 ARP 标头中可检查的各种字段。
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
网络适配器可以检查 IP 版本 4 (IPv4) 网络数据包的标头。 SupportedIPv4HeaderFields 成员定义 IPv4 标头中可检查的各种字段。
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
网络适配器可以检查 IP 版本 6 (IPv6) 网络数据包的标头。 SupportedIPv6HeaderFields 成员定义 IPv6 标头中可检查的各种字段。
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED
网络适配器可以检查网络数据包 (UDP) 标头的用户数据报协议。 SupportedIPv6HeaderFields 成员定义 UDP 标头中可检查的各种字段。
SupportedMacHeaderFields
指定微型端口驱动程序可以检查的 MAC 标头字段类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
网络适配器支持基于 MAC 标头中的目标 MAC 地址进行检查和筛选。
NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED
网络适配器支持基于 MAC 标头中的源 MAC 地址的检查和筛选。
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
网络适配器支持基于 MAC 标头中的 EtherType 标识符的检查和筛选。 例如,IPv4 数据包的 EtherType 标识符0x0800。
NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED
网络适配器支持基于 MAC 标头中的 VLAN 标识符的检查和筛选。
NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED
网络适配器支持基于 MAC 标头中的优先级标记的检查和筛选。
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED
网络适配器支持基于 802.3 MAC 标头中 IEEE 802.2 子网访问协议 (SNAP) 标头的数据包类型字段进行检查和筛选。
MaxMacHeaderFilters
微型端口驱动程序支持的 MAC 标头筛选器的最大数目。
MaxQueueGroups
此成员是为 NDIS 保留的。
MaxQueuesPerQueueGroup
此成员是为 NDIS 保留的。
MinLookaheadSplitSize
网络适配器支持的查找头数据包缓冲区的最小大小(以字节为单位)。
MaxLookaheadSplitSize
网络适配器支持查找头数据包缓冲区的最大大小(以字节为单位)。
SupportedARPHeaderFields
指定微型端口驱动程序可以检查的 ARP 标头字段类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
网络适配器支持对 ARP 操作字段进行接收筛选。
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
网络适配器支持对 ARP 源协议地址 (SPA) 字段进行接收筛选。
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED
网络适配器支持对 ARP 目标协议地址 (TPA) 字段进行接收筛选。
SupportedIPv4HeaderFields
指定微型端口驱动程序可以检查的 IPv4 标头字段类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED
网络适配器支持对 IPv4 协议字段进行接收筛选。
SupportedIPv6HeaderFields
指定微型端口驱动程序可以检查的 IPv6 标头字段类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
网络适配器支持对 IPv6 协议字段进行接收筛选。
SupportedUdpHeaderFields
指定微型端口驱动程序可以检查的 IPv6 标头字段类型的按位 OR 标志。 定义了以下标志:
NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED
网络适配器支持对 UDP 目标端口字段进行接收筛选。
MaxFieldTestsPerPacketCoalescingFilter
可以为单个数据包合并筛选器指定的数据包标头字段的最大测试数。 有关数据包合并的详细信息,请参阅 NDIS 数据包合并。
MaxPacketCoalescingFilters
网络适配器支持的最大数据包合并接收筛选器数。
NdisReserved
保留。 设置为 0。
注解
NDIS_RECEIVE_FILTER_CAPABILITIES 结构用于 的 ReceiveFilterCapabilities 成员 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS,NDIS_BIND_PARAMETERS 结构和 返回结果 OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES OID 查询。
仅当启用微型端口驱动程序以使用 VMQ 或 SR-IOV 接口时, NDIS_RECEIVE_FILTER_CAPABILITIES 结构的许多成员和标志设置才有效。 微型端口驱动程序可以通过标准化 INF 关键字使用这些接口。 有关详细信息,请参阅 处理 SR-IOV、VMQ 和 RSS 标准化 INF 关键字。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.20 及更高版本中受支持。 |
标头 | ntddndis.h (包括 Ndis.h) |
另请参阅
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈