NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES 结构 (netreceivescaling.h)

NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES结构描述了 net 适配器的接收端缩放 (RSS) 功能。

语法

typedef struct _NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES {
  ULONG                                                   Size;
  SIZE_T                                                  NumberOfQueues;
  SIZE_T                                                  IndirectionTableSize;
  SIZE_T                                                  UnhashedTargetIndex;
  NET_ADAPTER_RECEIVE_SCALING_UNHASHED_TARGET_TYPE        UnhashedTargetType;
  NET_ADAPTER_RECEIVE_SCALING_HASH_TYPE                   ReceiveScalingHashTypes;
  NET_ADAPTER_RECEIVE_SCALING_PROTOCOL_TYPE               ReceiveScalingProtocolTypes;
  struct {
    NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE Outer;
    NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE Inner;
  } ReceiveScalingEncapsulationTypes;
  _RECEIEVE_SCALING_ENCAPSULATION                         _RECEIEVE_SCALING_ENCAPSULATION;
  BOOLEAN                                                 SynchronizeSetIndirectionEntries;
  PFN_NET_ADAPTER_RECEIVE_SCALING_ENABLE                  EvtAdapterReceiveScalingEnable;
  PFN_NET_ADAPTER_RECEIVE_SCALING_DISABLE                 EvtAdapterReceiveScalingDisable;
  PFN_NET_ADAPTER_RECEIVE_SCALING_SET_HASH_SECRET_KEY     EvtAdapterReceiveScalingSetHashSecretKey;
  PFN_NET_ADAPTER_RECEIVE_SCALING_SET_INDIRECTION_ENTRIES EvtAdapterReceiveScalingSetIndirectionEntries;
} NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES;

成员

Size

此结构的大小(以字节为单位)。

NumberOfQueues

硬件接收队列数。 此成员必须是 2 的幂。

IndirectionTableSize

间接表条目数。 此成员必须至少为 128,幂必须为 2。

UnhashedTargetIndex

未应用哈希的帧的默认目标。 此成员的值取决于 UnhashedTargetType 成员的值:

  • 如果将 UnhashedTargetType 设置为 NetAdapterReceiveScalingUnhashedTargetTypeUnspecified,则忽略 UnhashedTarget
  • 如果将 UnhashedTargetType 设置为 NetAdapterReceiveScalingUnhashedTargetTypeHashIndex则 UnhashedTarget 在间接表中指定哈希索引。

此成员必须为 N,其中 0 <= N < IndirectionTableSize

UnhashedTargetType

一个NET_ADAPTER_RECEIVE_SCALING_UNHASHED_TARGET_TYPE值,该值指示未清除帧的处理类型。

如果此成员设置为 NetAdapterReceiveScalingUnhashedTargetTypeUnspecified,则 UnhashedTargetIndex 将被忽略并默认为 0

如果此成员设置为 NetAdapterReceiveScalingUnhashedTargetTypeHashIndex,则 UnhashedTargetIndex 指示目标哈希值。

ReceiveScalingHashTypes

一个NET_ADAPTER_RECEIVE_SCALING_HASH_TYPE值,该值指示用于计算哈希值的支持的哈希函数类型。

ReceiveScalingProtocolTypes

一个NET_ADAPTER_RECEIVE_SCALING_PROTOCOL_TYPE值,该值指示用于计算哈希值的受支持协议类型。

ReceiveScalingEncapsulationTypes

指示硬件能够绕过哪些封装技术。

ReceiveScalingEncapsulationTypes.Outer

NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE 值的按 位 OR,指示传输 (外部) NIC 能够绕过的封装类型。

ReceiveScalingEncapsulationTypes.Inner

NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE 值的按 位 OR,指示隧道 (NIC 能够绕过的内部) 封装类型。

_RECEIEVE_SCALING_ENCAPSULATION

ReceiveScalingEncapsulationTypes 的标记标识符。

SynchronizeSetIndirectionEntries

一个布尔值,设置为 TRUE 时,请求框架同步调用 EvtNetAdapterReceiveScalingSetIndirectionEntries。 如果客户端驱动程序未指定此成员,则默认将此成员设置为 FALSE

EvtAdapterReceiveScalingEnable

指向客户端驱动程序的 EvtNetAdapterReceiveScalingEnable 事件回调函数的指针。

EvtAdapterReceiveScalingDisable

指向客户端驱动程序的 EvtNetAdapterReceiveScalingDisable 事件回调函数的指针。

EvtAdapterReceiveScalingSetHashSecretKey

指向客户端驱动程序的 EvtNetAdapterReceiveScalingSetHashSecretKey 事件回调函数的指针。

EvtAdapterReceiveScalingSetIndirectionEntries

指向客户端驱动程序的 EvtNetAdapterReceiveScalingSetIndirectionEntries 事件回调函数的指针。

注解

调用 NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT 初始化此结构。

NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES 结构是 NetAdapterSetReceiveScalingCapabilities 的输入参数。 在调用 NetAdapterSetReceiveScalingCapabilities 之前,客户端必须使用 NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT 初始化此结构。

要求

要求
最低 KMDF 版本 1.27
最低 UMDF 版本 2.33
标头 netreceivescaling.h (包括 netadaptercx.h)

另请参阅

NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT

NetAdapterSetReceiveScalingCapabilities

NetAdapterCx 接收端缩放