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结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT,将 Revision 成员设置为 NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1,将 Size 成员设置为 NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1。
Flags
一个 USHORT 值,指示微型端口驱动程序应对哈希参数执行的操作。 微型端口驱动程序可以使用这些标志快速确定哪些参数已更改,并相应地更新哈希设置。
在设置请求中,标志定义如下:
NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH
如果设置了此标志,则启用对接收帧的哈希值进行计算,并将计算的哈希值放置在 NET_BUFFER_LIST 结构的 NetBufferListHashValue 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 的哈希参数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ntddndis.h (包括 Ndis.h) |