共用方式為


NDIS_RECEIVE_SCALE_CAPABILITIES 結構 (ntddndis.h)

NDIS_RECEIVE_SCALE_CAPABILITIES 結構會指定迷你埠配接器的接收端調整 (RSS) 功能。

語法

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

成員

Header

NDIS_RECEIVE_SCALE_CAPABILITIES 結構的NDIS_OBJECT_HEADER結構。 將 Header 指定之 結構的 Type 成員設定為NDIS_OBJECT_TYPE_RSS_CAPABILITIES

若為 NDIS 6.60 和更新版本,請將 Revision 成員設定為 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 ,並將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3

若為 NDIS 6.30 和更新版本,請將 Revision 成員設定為 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 ,並將 Size 成員 設定為 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2

若為 NDIS 6.0、6.1 和 6.20,請將 Revision 成員設定為 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 ,並將 Size 成員設定為 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1

CapabilitiesFlags

指定 NIC RSS 功能的旗標位掩碼。 迷你連接埠驅動程式可以指定下列旗標:

意義
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
如果 NIC 支援訊息訊號中斷, (MSI) ,請設定此旗標。 此旗標表示 NIC 會在將指派給該 CPU 的封包排入佇列之後,為每個 CPU 產生個別中斷。
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
如果 NIC 可以指示目標 CPU 已排入佇列接收封包的 MiniportInterrupt 函式,請設定此旗標。
NDIS_RSS_CAPS_USING_MSI_X
如果 NIC 使用訊息訊號中斷, (MSI) ,請設定此旗標。 NDIS 6.20 和更新版本支援此旗標。
NDIS_RSS_CAPS_SUPPORTS_MSI_X
如果 NIC 支援 MSI,請設定此旗標。 NDIS 6.30 和更新版本支援此旗標。
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
如果迷你埠驅動程式可以偵測到哪些目標 CPU 已從 其 MiniportInterruptDPC 函式佇列接收封包,請設定此旗標。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
如果 NIC 可以透過或不使用選項來識別 IPv4 封包 (,請設定此旗標) 。 此外,NIC 也支援透過 IPv4 標頭欄位和 TCP 標頭字段計算哈希值。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
如果 NIC 可以識別 IPv6 封包,並在 IPv6 封包中的欄位上計算哈希值,請設定此旗標。 NIC 必須能夠計算基本 IPv6 標頭中的欄位和 TCP 標頭中欄位的哈希值。 如果 NIC 無法在 IPv6 延伸模組標頭中的欄位上計算哈希值,請使用此旗標。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
如果 NIC 可以識別 IPv6 封包,並在包含 IPv6 延伸模組標頭的 IPv6 封包中計算欄位的哈希值,請設定此旗標。 NIC 可以計算基本 IPv6 標頭、IPv6 擴充標頭和 TCP 標頭中欄位的哈希值。 NIC 必須能夠計算首頁位址選項中欄位的哈希值,以及 IPv6 擴充功能標頭中的 type-2 路由標頭。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
如果 NIC 可以識別具有或不含選項的 IPv4 封包,以及 NIC 是否支援透過 IPv4 標頭字段和 UDP 標頭字段計算哈希值,請設定此旗標。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
如果 NIC 可以識別 IPv6 封包,並在 IPv6 封包中的欄位上計算哈希值,請設定此旗標。 NIC 必須能夠計算基本 IPv6 標頭和 UDP 標頭中欄位的哈希值。 如果 NIC 無法在 IPv6 延伸模組標頭中的欄位上計算哈希值,請使用此旗標。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
如果 NIC 可以識別 IPv6 封包,並在包含 IPv6 延伸模組標頭的 IPv6 封包中計算欄位的哈希值,請設定此旗標。 NIC 可以在基本 IPv6 標頭、IPv6 擴充標頭和 UDP 標頭中的欄位上計算哈希值。 NIC 必須能夠計算首頁位址選項中欄位的哈希值,以及 IPv6 擴充功能標頭中的 type-2 路由標頭。
NdisHashFunctionToeplitz
如果 NIC 支援 toeplitz 哈希函式,請設定此旗標。 如果 NIC 支援 RSS,則必須支援哈希函式。 如需哈希函式的詳細資訊,請參閱 NDIS_RSS_HASH_FUNC_FROM_HASH_INFO
NdisHashFunctionReserved1
此旗標保留供日後使用。
NdisHashFunctionReserved2
此旗標保留供日後使用。
NdisHashFunctionReserved3
此旗標保留供日後使用。

NumberOfInterruptMessages

如果 NIC 支援 MSIS,NIC 所支援的中斷訊息數目。 如果 NIC 不支援 MSI,但支援以行為基礎的中斷,請將此數位設定為 1。

NumberOfReceiveQueues

NIC 支援的硬體接收佇列數目。

NumberOfIndirectionTableEntries

迷你埠驅動程式在間接數據表中支援的最大項目數。 此值必須是 2 的冪。 所有 NDIS 6.30 和更新版本的迷你埠配接器都必須支援此成員,這是虛擬函式所需的成員。

備註

過度運用驅動程式可以使用 OID_GEN_RECEIVE_SCALE_CAPABILITIES OID 可查詢 NIC 及其迷你埠驅動程式的接收端調整 (RSS) 功能。

迷你埠驅動程式會傳回 NDIS_RECEIVE_SCALE_CAPABILITIES 結構中的 RSS 功能。

對於某些工作負載,UDP 封包的子集可能會因為路由變更或傳送者未遵守 MTU 限制而分散。 在這種情況下,相同流程的封包可能會根據 4 元組或 2 個 Tuple 哈希,在不同的處理器上表示。 因此,公告 NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX 的迷你埠驅動程序應該提供一種方式,以透過進階屬性停用 UDP RSS 功能。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
標頭 ntddndis.h (包含 Ndis.h)

另請參閱

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)