Freigeben über


OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

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 der Vorschauversion Windows 10, Version 1809.

Die OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID wird an RSSv2-fähige Miniporttreiber gesendet, um Für eine Skalierungsentität andere Laufzeitparameter als die Indirektionstabelle festzulegen. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 ersetzt die OID_GEN_RECEIVE_SCALE_PARAMETERS OID von RSSv1 und ist für NDIS-Leichtgewichtsfilter (LWFs) vor NDIS 6.80 nicht sichtbar. Diese OID ist eine reguläre OID und kann als Abfrage- oder Set-Anforderung ausgegeben werden. Es wird bei IRQL == PASSIVE_LEVEL ausgestellt. Es kann auf einen bestimmten VPort abzielen, wenn das NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID-Flag bei der Erstellung des NIC-Switches festgelegt wird. Andernfalls zielt es auf die physische NIC im Fall Native RSS ab.

Als Abfrage können NDIS und überlastende Treiber OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 verwenden, um die RSS-Parameter einer NIC abzufragen. NDIS gibt eine NDIS_RECEIVE_SCALE_PARAMETERS_V2-Struktur zurück, die die aktuellen RSS-Parameter definiert.

Als Set besteht der Zweck dieser OID darin, die folgenden Aktionen auszuführen:

  • Konfigurieren Sie zunächst die Skalierungsentität (einen Miniportadapter im einheitlichen RSS-Modus oder einen VPort im VMQ-Modus).
  • Aktivieren oder deaktivieren Sie RSS.
  • Führen Sie im RSS-Modus nicht zeitkritische Verwaltungsfunktionen aus, z. B. das Ändern des Hashschlüssels, des Hashtyps und der Hashfunktion, der Anzahl der Warteschlangen oder der Anzahl der Indirektierungstabelleneinträge für die Skalierungsentität.

Bemerkungen

Die Aktivierung von RSS und das Festlegen von RSS-Parametern können in einem Schritt ausgeführt werden. Nachdem die obere Ebene RSS mithilfe dieser OID aktiviert hat, sieht der Anfangszustand der Skalierungsentität wie folgt aus:

  • Der primäre Prozessor wird inaktiv.
  • Der Standardprozessor wird aktiv.
  • Alle ITEs werden aktiv.
  • Der Miniporttreiber beginnt mit der Berechnung des RSS-Hashs, der Einstellung des entsprechenden OOB für alle Pakete und der Weiterleitung von Paketen an einen Prozessor, der durch den Eintrag in die Indirektionstabelle oder den Standardprozessorparameter angegeben wird.

Nachdem RSS aktiviert wurde, gibt die obere Schicht die OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID aus, um ITEs auf verschiedene Prozessoren zu verschieben. In RSSv2 werden defaultQueue und PrimaryProcessor mithilfe von OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES auch auf einen anderen Prozessor verschoben.

Während des Deaktivierens von RSS verweist die obere Ebene alle ITEs auf den primären Prozessor, bevor diese OID aufgerufen wird, um RSS zu deaktivieren. Nach diesem Punkt sollte der Empfangsdatenverkehr auf den primären Prozessor abzielen. Miniporttreiber sollten jedoch nicht damit rechnen, dass RSS vor dem Löschen von VPort deaktiviert wird. Die obere Ebene kann den Empfangsfilter für den VPort auf Null festlegen, sodass sichergestellt wird, dass kein Empfangsdatenverkehr durch den VPort fließt, und dann mit dem Löschen des VPorts fortfahren, ohne RSS zu deaktivieren.

Die obere Ebene stellt sicher, dass wichtige Invarianten nicht verletzt werden, bevor Verwaltungsfunktionen ausgeführt werden. Beispiel:

  • Bevor die Anzahl der Warteschlangen geändert wird, stellt die obere Ebene sicher, dass die Indirektierungstabelle nicht auf mehr Prozessoren verweist, als für einen VPort konfiguriert sind. Bevor sie die Anzahl der Indirektionstabelleneinträge für VMMQ-RESTRICTED-Adapter ändert, stellt die obere Ebene sicher, dass der Inhalt der Indirektionstabelle auf die Leistung 2 normalisiert wird.

Fehlerbedingungen und status Codes

Diese OID gibt die folgenden status-Codes zurück, wenn ein Fehler auftritt:

Statuscode Fehlerzustand
NDIS_STATUS_INVALID_LENGTH Die OID war falsch formatiert.
NDIS_STATUS_NO_QUEUES Die Anzahl der Warteschlangen wird geändert, wenn RSS aktiviert ist, aber die aktuelle Indirektionstabelle verweist auf mehr Prozessoren als die neue Anzahl von Warteschlangen.
NDIS_STATUS_INVALID_DATA
  • Die Indirektierungstabelle wird zwar verkleinert, enthält aber kein Wiederholungsmuster mit zwei Potenzen.
  • Während eines RSS-Zustandsübergangs (ein oderaus) gehört ein Prozessor aus einem aktiven Steuerungsparameter nicht zum RSS-Prozessorsatz des Adapters. Beachten Sie, dass inaktive Steuerungsparameter nur Schreibvorgänge an den Prozessor nachverfolgen und nicht erzwungen werden. Die Erzwingung erfolgt während des RSS-Zustandsübergangs, wenn der Parameter aktiv wird.
NDIS_STATUS_INVALID_PARAMETER Andere Felder, entweder im Header oder in der OID selbst, enthalten ungültige Werte.

Anforderungen

Version: Windows 10, Version 1709 Header: Ntddndis.h (include Ndis.h)

Weitere Informationen