NDIS_RSS_SET_INDIRECTION_ENTRY-Struktur (ntddndis.h)

Warnung

Einige Informationen in diesem Thema beziehen sich auf vorab freigegebene Produkte, die vor der kommerziellen Veröffentlichung erheblich geändert werden können. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.

RSSv2 ist nur in Windows 10 Version 1803 als Vorschauversion verfügbar.

Die NDIS_RSS_SET_INDIRECTION_ENTRY-Struktur stellt einen Befehl zum Festlegen eines einzelnen Indirektionstabelleneintrags dar. Es ist in einer NDIS_RSS_SET_INDIRECTION_ENTRIES-Struktur enthalten, die in der OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID verwendet wird. OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES ist eine synchrone OID für RSS Version 2 (RSSv2).

Syntax

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

Member

SwitchId

Ein NDIS_NIC_SWITCH_ID Wert, der den NIC-Switch darstellt, in dem sich der VPort befindet.

Der Switch-Bezeichner ist eine ganze Zahl zwischen null und der Anzahl von Switches, die der Netzwerkadapter unterstützt. Ein NDIS_DEFAULT_SWITCH_ID-Wert gibt den Standard-Netzwerkadapterswitch an.

Dieses Feld sollte im Fall nativer RSS auf 0 festgelegt werden.

VPortId

Ein NDIS_NIC_SWITCH_VPORT_ID Wert, der den VPort-Bezeichner darstellt.

Dieses Feld sollte im Fall nativer RSS auf 0 festgelegt werden.

Flags

Ein ULONG-Wert , der ein bitweises OR von Flags enthält. Dieses Element qualifiziert die Informationen in dieser Struktur.

Mögliche Flags sind wie folgt:

Wert Bedeutung
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Gibt an, dass der NDIS_RSS_SET_INDIRECTION_ENTRY auf den primären Prozessor der Skalierungsentität verweist. Die Indirektionstabelle wird nicht verwendet. Wenn der primäre Prozessor *inaktiv* ist (RSS ist aktiviert), sollte der Miniporttreiber Updates für Einträge mit diesem Flagsatz nachverfolgen, damit er weiß, welcher Prozessor der primäre ist, wenn RSS deaktiviert ist.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Gibt an, dass der NDIS_RSS_SET_INDIRECTION_ENTRY auf den Standardprozessor der Skalierungsentität verweist. Der Standardprozessor verarbeitet unverpackte Pakete. Die Indirektionstabelle wird nicht verwendet. Wenn der Standardprozessor *inaktiv* ist (RSS ist deaktiviert), sollte der Miniporttreiber Updates für Einträge mit diesem Flagsatz nachverfolgen, damit er weiß, welcher Prozessor bei aktiviertem RSS standardmäßig ist.

IndirectionTableIndex

Der Hashindex des ITE, der derzeit auf die aktuelle CPU zeigt und so geändert wird, dass er auf einen anderen Prozessor verweist. Wenn die Indirektionstabelle inaktiv ist (RSS ist deaktiviert), sollte der Miniporttreiber Updates für Indirektionstabelleneinträge nachverfolgen, damit er die richtige Indirektionstabelle aufweist, wenn RSS aktiviert ist.

TargetProcessorNumber

Die Zielprozessornummer, auf die die ITE nach Abschluss verweisen soll. Der Miniporttreiber sollte erfolgreich sein, dass ITE vom aktuellen zum aktuellen Prozessor wechselt.

EntryStatus

Ein NDIS_STATUS Code, der die status des Verschiebungsvorgangs für diesen Eintrag angibt. Da NDIS_RSS_SET_INDIRECTION_ENTRY im Kontext eines synchronen OID-Aufrufs verwendet wird, kann der Miniporttreiber keine NDIS_STATUS_PENDING für dieses Element zurückgeben.

Um die Implementierung von Miniporttreibern zu vereinfachen, initialisiert das Protokoll der oberen Ebene dieses Feld für NDIS_STATUS_PENDING. Miniporttreiber müssen NDIS_STATUS_PENDING entweder mit einem erfolgreichen oder fehlerhaften NDIS-status-Code überschreiben. Wenn die obere Ebene erkennt, dass dieses Feld nach Abschluss der OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID noch NDIS_STATUS_PENDING ist, führt dies zu einer Systemfehlerüberprüfung und gibt an, dass der Miniporttreiber einen Fehler aufweist.

Wichtig

Alle NDIS_RSS_SET_INDIRECTION_ENTRY Strukturen in einer Gruppe, die in einer NDIS_RSS_SET_INDIRECTION_ENTRIES-Struktur enthalten sind, müssen mit demselben EntryStatus gekennzeichnet werden.

Wenn mit diesem Verschiebungsbefehl ein Fehler auftritt, legen Sie EntryStatus auf einen der folgenden status Codes für diese Fehlerbedingung fest:

Statuscode Fehlerzustand
NDIS_STATUS_INVALID_PARAMETER
  • Der SwitchId - oder VPortId-Member war ungültig.
  • Das Flags-Element war ungültig.
  • Das IndirectionTableIndex-Element überschreitet die aktuell konfigurierte NumberOfIndirectionTableEntries aus der NDIS_RECEIVE_SCALE_PARAMETERS_V2-Struktur .
NDIS_STATUS_INVALID_PORT_STATE Der VPort ist nicht aktiviert oder befindet sich in einem anderen Zustand, der verhindert, dass er RSSv2-OIDs akzeptiert.
NDIS_STATUS_NOT_ACCEPTED Die Actor-CPU war ungültig.
NDIS_STATUS_INVALID_DATA Bei einem aktiven Lenkparameter ist der neue Prozessor nicht Teil des RSS-Prozessorsatzes des Adapters. Beachten Sie, dass inaktive Parameter nur nachverfolgt werden müssen. Sie werden später überprüft, während des RSS-Statusübergangs (ein oderaus).
NDIS_STATUS_NO_QUEUES Eine Gruppe von Befehlseinträgen schlägt die Überprüfung der "Anzahl von Warteschlangen" für den von dieser Gruppe angegebenen VPort fehl.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.80 und höher.
Kopfzeile ntddndis.h (include Ndis.h)

Weitere Informationen

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

Receive Side Scaling Version 2 (RSSv2)

Synchrone OID-Anforderungsschnittstelle in NDIS 6.80