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 指定要NDIS_OBJECT_TYPE_DEFAULT之結構的 Type 成員、要NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1的 Revision 成員,以及要NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1的 Size 成員。
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) |