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 成員、將 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) |