共用方式為


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 指定 NDIS_OBJECT_TYPE_RSS_CAPABILITIES之結構 Type 成員。

針對 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 支援訊息訊號中斷(MSIS),請設定此旗標。 此旗標表示 NIC 會在將指派給該 CPU 的封包排入佇列之後,為每個 CPU 產生個別的中斷。
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
如果 NIC 可以指示目標 CPU 已將接收封包排入佇列的 MiniportInterrupt 函式,請設定此旗標。
NDIS_RSS_CAPS_USING_MSI_X
如果 NIC 使用訊息訊號中斷 (MSIs) ,請設定此旗標。 NDIS 6.20 和更新版本支援此旗標。
NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS
如果 NIC 支援埠的獨立 RSS 組態,請設定此旗標。 NDIS 6.30 和更新版本支援此旗標。
NDIS_RSS_CAPS_SUPPORTS_MSI_X
如果 NIC 支援 MSIS,請設定此旗標。 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 不支援 MSIS,但支援以行為基礎的中斷,請將此數位設定為 1。

NumberOfReceiveQueues

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

NumberOfIndirectionTableEntries

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

言論

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

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

對於某些工作負載,由於路由變更或傳送者未遵守 MTU 限制,所以 UDP 封包的子集可能會分散。 在這種情況下,相同流程的封包可能會根據 4 元組或 2 元組哈希在不同的處理器上表示。 因此,公告 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

接收端調整 (RSS)