NDIS_RECEIVE_SCALE_CAPABILITIES-Struktur (ntddndis.h)
Die NDIS_RECEIVE_SCALE_CAPABILITIES-Struktur gibt die RSS-Funktionen (Receive Side Scaling) eines Miniportadapters an.
Syntax
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;
Member
Header
Die NDIS_OBJECT_HEADER-Struktur für die NDIS_RECEIVE_SCALE_CAPABILITIES-Struktur . Legen Sie das Type-Element der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_RSS_CAPABILITIES fest.
Legen Sie für NDIS 6.60 und höher den Revisionsmember auf NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 und das Element Größe auf NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3 fest.
Legen Sie für NDIS 6.30 und höher den Revisionsmember auf NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 und das Element Größe auf NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2 fest.
Legen Sie für NDIS 6.0, 6.1 und 6.20 das Revisionselement auf NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 und das Element Größe auf NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1 fest.
CapabilitiesFlags
Eine Bitmaske von Flags, die die RSS-Funktionen der NIC angeben. Der Miniporttreiber kann die folgenden Flags angeben:
Wert | Bedeutung |
---|---|
|
Legen Sie dieses Flag fest, wenn die NIC message-signaled interrupts (MSIs) unterstützt. Dieses Flag gibt an, dass die NIC einen separaten Interrupt für jede CPU generieren kann, nachdem sie die Pakete in die Warteschlange gestellt hat, die dieser CPU zugewiesen sind. |
|
Legen Sie dieses Flag fest, wenn die NIC der MiniportInterrupt-Funktion angeben kann, welche Ziel-CPUs empfangene Pakete in die Warteschlange haben. |
|
Legen Sie dieses Flag fest, wenn die NIC message signaled interrupts (MSIs) verwendet. Dieses Flag wird in NDIS 6.20 und höher unterstützt. |
|
Legen Sie dieses Flag fest, wenn die NIC MSIs unterstützt. Dieses Flag wird in NDIS 6.30 und höher unterstützt. |
|
Legen Sie dieses Flag fest, wenn der Miniporttreiber erkennen kann, welche Ziel-CPUs empfangene Pakete aus seiner MiniportInterruptDPC-Funktion in einer Warteschlange enthalten. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv4-Paket (mit oder ohne Optionen) identifizieren kann. Außerdem unterstützt die NIC die Berechnung des Hashwerts über die IPv4-Headerfelder und TCP-Headerfelder. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv6-Paket identifizieren und einen Hashwert für Felder in einem IPv6-Paket berechnen kann. Die NIC muss in der Lage sein, einen Hashwert über Felder im grundlegenden IPv6-Header und über Feldern im TCP-Header zu berechnen. Verwenden Sie dieses Flag, wenn die NIC keinen Hashwert über Feldern berechnen kann, die sich in IPv6-Erweiterungsheadern befinden. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv6-Paket identifizieren und einen Hashwert für Felder in einem IPv6-Paket berechnen kann, das IPv6-Erweiterungsheader enthält. Die NIC kann einen Hashwert über Felder im grundlegenden IPv6-Header, IPv6-Erweiterungsheader und TCP-Header berechnen. Die NIC muss in der Lage sein, Hashwerte über Felder in der Option Startadresse und den Typ-2-Routingheader in den IPv6-Erweiterungsheadern zu berechnen. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv4-Paket mit oder ohne Optionen identifizieren kann und wenn die NIC die Berechnung des Hashwerts über die IPv4-Headerfelder und UDP-Headerfelder unterstützt. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv6-Paket identifizieren und einen Hashwert für Felder in einem IPv6-Paket berechnen kann. Die NIC muss in der Lage sein, einen Hashwert über Felder im grundlegenden IPv6-Header und über Feldern im UDP-Header zu berechnen. Verwenden Sie dieses Flag, wenn die NIC keinen Hashwert über Feldern berechnen kann, die sich in IPv6-Erweiterungsheadern befinden. |
|
Legen Sie dieses Flag fest, wenn die NIC ein IPv6-Paket identifizieren und einen Hashwert für Felder in einem IPv6-Paket berechnen kann, das IPv6-Erweiterungsheader enthält. Die NIC kann einen Hashwert über Felder im grundlegenden IPv6-Header, in IPv6-Erweiterungsheadern und im UDP-Header berechnen. Die NIC muss in der Lage sein, Hashwerte über Felder in der Option Startadresse und den Typ-2-Routingheader in den IPv6-Erweiterungsheadern zu berechnen. |
|
Legen Sie dieses Flag fest, wenn die NIC die Hashfunktion toeplitz unterstützt. Wenn die NIC RSS unterstützt, ist die Unterstützung für die Hashfunktion obligatorisch. Weitere Informationen zu Hashfunktionen finden Sie unter NDIS_RSS_HASH_FUNC_FROM_HASH_INFO. |
|
Dieses Flag ist für die zukünftige Verwendung reserviert. |
|
Dieses Flag ist für die zukünftige Verwendung reserviert. |
|
Dieses Flag ist für die zukünftige Verwendung reserviert. |
NumberOfInterruptMessages
Die Anzahl der Interruptnachrichten, die die NIC unterstützt, wenn die NIC MSIs unterstützt. Wenn die NIC keine MSIs unterstützt, aber zeilenbasierte Interrupts unterstützt, legen Sie diese Zahl auf 1 fest.
NumberOfReceiveQueues
Die Anzahl der Von der NIC unterstützten Hardware-Empfangswarteschlangen.
NumberOfIndirectionTableEntries
Die maximale Anzahl von Einträgen, die der Miniporttreiber in der Indirektionstabelle unterstützt. Dieser Wert muss eine Leistung von 2 sein. Alle Miniportadapter NDIS 6.30 und höher müssen diesen Member unterstützen, was für virtuelle Funktionen erforderlich ist.
Hinweise
Überlastende Treiber können die OID_GEN_RECEIVE_SCALE_CAPABILITIES OID zum Abfragen der RSS-Funktionen (Receive Side Scaling) einer NIC und ihres Miniporttreibers.
Der Miniporttreiber gibt die RSS-Funktionen in einer NDIS_RECEIVE_SCALE_CAPABILITIES Struktur zurück.
Bei einigen Workloads kann eine Teilmenge von UDP-Paketen aufgrund von Routenänderungen fragmentiert werden oder der Absender die MTU-Einschränkungen nicht einhält. In solchen seltenen Fällen könnten Pakete desselben Flows auf verschiedenen Prozessoren basierend auf dem 4-Tupel- oder 2-Tupelhash angegeben werden. Daher sollten Miniporttreiber, die NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6 und NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX ankündigen, eine Möglichkeit bieten, UDP RSS-Funktionen über erweiterte Eigenschaften zu deaktivieren.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Kopfzeile | ntddndis.h (include Ndis.h) |