NDIS_RECEIVE_HASH_PARAMETERS结构(ntddndis.h)

NDIS_RECEIVE_HASH_PARAMETERS结构指定支持接收哈希计算的微型端口适配器的接收哈希参数。

语法

typedef struct _NDIS_RECEIVE_HASH_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              HashInformation;
  USHORT             HashSecretKeySize;
  ULONG              HashSecretKeyOffset;
} NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS;

成员

Header

NDIS_RECEIVE_HASH_PARAMETERS结构的 NDIS_OBJECT_HEADER 结构。 将 标头 指定为NDIS_OBJECT_TYPE_DEFAULT的结构 类型 成员,将 修订 成员设置为NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1,并将 大小 成员设置为NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1。

Flags

一个 USHORT 值,该值指示微型端口驱动程序应使用哈希参数执行的作。 微型端口驱动程序可以使用这些标志快速确定哪些参数已更改并相应地更新哈希设置。

在设置请求中,标志的定义如下:

NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH

如果设置了此标志,请对接收的帧启用计算哈希值,并将计算的哈希值放在 NetBufferListHashValue NET_BUFFER_LIST 结构中的 OOB 信息中。

如果此标志明确,请禁用对收到的帧的哈希值的计算。

如果启用了接收哈希计算,微型端口驱动程序应设置此标志;否则,应清除此标志。

NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED

HashInformation 成员未更改。 哈希信息包括哈希类型和哈希函数。

如果设置了此标志,则应忽略NDIS_RECEIVE_HASH_PARAMETERS结构的 HashInformation 成员。

如果清除此标志,HashInformation 成员将包含微型端口驱动程序必须用于计算接收帧上的哈希值的新值。

NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED

机密密钥和关联的数据成员未更改。

如果设置了此标志,则应忽略密钥和关联的数据成员。

如果清除此标志,则密钥或关联的数据成员已更改,微型端口驱动程序必须使用新信息。

在查询请求中,标志的定义如下:

HashInformation

在设置请求中,NIC 应用于计算传入数据包的哈希值的哈希类型和哈希函数。

在查询请求中,NIC 使用的哈希类型和哈希函数。

过度配置驱动程序和 NDIS 可以使用 NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC 宏将哈希类型和哈希函数合并到哈希信息中,并设置 HashInformation 成员。

微型端口驱动程序可以使用 NDIS_RSS_HASH_TYPE_FROM_HASH_INFO 宏,从 HashInformation NDIS_RSS_HASH_FUNC_FROM_HASH_INFO 宏以获取哈希函数。

HashSecretKeySize

哈希函数的密钥数组的大小(以字节为单位)。 NdisHashFunctionToeplitz 的数组大小为 40 字节。

HashSecretKeyOffset

哈希函数的密钥数组从NDIS_RECEIVE_HASH_PARAMETERS结构的开头偏移量。 使用此偏移量获取 320 位(40 字节)密钥。

在设置请求中,密钥可以包含过度驱动因素选择的任何数据。

在查询请求中,密钥包含 NIC 正在使用的数据。

言论

NDIS_RECEIVE_HASH_PARAMETERS结构定义 OID_GEN_RECEIVE_HASH OID 的哈希参数。

注意 协议驱动程序在启用 RSS 之前必须禁用接收哈希计算。 如果启用了 RSS,协议驱动程序会在启用接收哈希计算之前禁用 RSS。 如果当前启用了其他服务,微型端口驱动程序应失败请求以启用接收哈希计算或 RSS。
 
注释 密钥追加到NDIS_RECEIVE_HASH_PARAMETERS结构成员之后。
 

要求

要求 价值
最低支持的客户端 NDIS 6.0 及更高版本中受支持。
标头 ntddndis.h (include Ndis.h)

另请参阅

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC NDIS_RSS_HASH_TYPE_FROM_HASH_INFO

NET_BUFFER_LIST

OID_GEN_RECEIVE_HASH