Einführung in NetAdapterCx-Hardwareauslagerungen

Um die Leistung zu erhöhen, kann der Windows TCP/IP-Stapel einige Aufgaben an eine Netzwerkschnittstelle Karte (NIC) auslagern, die über die entsprechenden Aufgabenauslagerungsfunktionen verfügt.

NetAdapterCx konzentriert sich auf die einfache Auslagerungskonfiguration und verwaltung von Auslagerungsfunktionen. Clienttreiber müssen nur eine einfache Konfiguration für ihre Hardwareauslagerungsfunktionen angeben und Rückrufe registrieren, um über Änderungen an Funktionen benachrichtigt zu werden.

Dieser Leitfaden bietet einen Überblick über die wichtigsten Konzepte für Hardwareauslagerungen in NetAdapterCx.

  • Hardwareauslagerungsfunktionen werden von der Netzwerkadapterhardware während der Initialisierung angekündigt und müssen vor dem Aufruf von NetAdapterStart angekündigt werden.
  • Der Treiber muss keine Standardschlüsselwörter für die Registrierung überprüfen. NetAdapterCx überprüft die Registrierungsschlüsselwörter und berücksichtigt diese beim Aktivieren der aktiven Auslagerungsfunktionen.
  • Die aktiven Auslagerungsfunktionen des Netzwerkadapters sind diejenigen, für die der Netzwerkadapter derzeit programmiert ist. Hierbei handelt es sich um eine Teilmenge der Hardwarefunktionen, die zuvor vom Clienttreiber angekündigt wurden.
  • Der TCP/IP-Stapel oder ein übersteigender Protokolltreiber kann eine Änderung der aktiven Funktionen des Netzwerkadapters anfordern. Clienttreiber registrieren Rückrufe bei NetAdapterCx, um über Änderungen an den aktiven Auslagerungsfunktionen benachrichtigt zu werden.
  • Wenn eine Paketerweiterung für eine Auslagerung benötigt wird, wird sie automatisch registriert, wenn der Netzwerkadapter die Unterstützung für die Hardwareauslagerung angibt.

Clienttreiber kündigen einen präzisen Satz von Funktionen für NetAdapterCx für die Netzwerkpakettypen an, die ihre Hardware auslagern kann. Dies kann beispielsweise sein, ob IPv4-Optionen, IPv6-Erweiterungen, TCP-Optionen oder beliebige Kombinationen davon unterstützt werden usw. Bestimmte Hardware kann nur dann ausgeladen werden, wenn der Paketheaderoffset bekannt ist, und der Clienttreiber dieser Hardware kann auch sein Limit für den Paketheaderoffset angeben. Wenn der Hardwaredeskriptor beispielsweise nur 8 Bits zum Speichern des Layer-4-Headeroffsets hat, würde der Clienttreiber layer4HeaderOffset auf 255 festlegen. Alle Pakete, die nicht von den Funktionen des Clienttreibers abgedeckt sind, werden von NetAdapterCx in softwareseitig abgeladen.

Wenn die Hardware nicht in der Lage ist, eine bestimmte Kombination zu verarbeiten, sollte der Clienttreiber weder unterstützung für diese Funktion deklarieren noch selbst einen Softwarefallback ausführen, wenn ein solches Paket gefunden wird. Stattdessen sollte NetAdapterCx alle erforderlichen Softwarefallbacks automatisch ausführen.

Hinweis

Wenn Sie möchten, dass NetAdapterCx Softwarefallback für Auslagerungen durchführt, die von der Hardware nicht unterstützt werden, muss der Clienttreiber die standardisierten Schlüsselwörter für diese Auslagerung in der INF-Datei enthalten. Wenn beispielsweise ein Clienttreiber die RSC-Auslagerung in der Hardware überhaupt nicht ausführen kann und netAdapterCx diese Auslagerung in Software ausführen muss, müssen die Schlüsselwörter *RscIpv4 und *RscIpv6 im INF enthalten sein.

Die folgenden Auslagerungen werden von NetAdapterCx und dem Windows TCP/IP-Stapel unterstützt:

Name der Auslagerung BESCHREIBUNG
Checksum Auslagerung der Berechnung und Validierung von IP- und TCP-Prüfsummen an die NIC.
Generic Send Offload (GSO) Auslagerung der Segmentierung großer TCP/UDP-Pakete für IPv4 und IPv6.
Receive Segment Coalescing (RSC) Auslagerung einer Sequenz empfangener TCP-Segmente für IPv4 und IPv6.

Weitere Informationen zum Konfigurieren von Auslagerungen und Aktualisieren von Auslagerungen, wenn der TCP/IP-Stapel oder ein überlagernder Protokolltreiber eine Änderung der aktiven Funktionen des Netzadapters anfordert, finden Sie auf der entsprechenden Referenzseite zum Auslagern.