NDIS_TCP_CONNECTION_OFFLOAD Struktur (ntddndis.h)

Die NDIS_TCP_CONNECTION_OFFLOAD-Struktur stellt Verbindungsauslagerungsinformationen für aktuelle Einstellungen und unterstützte Funktionen bereit.

Syntax

typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
  NDIS_OBJECT_HEADER Header;
  ULONG              Encapsulation;
  ULONG              SupportIPv4 : 2;
  ULONG              SupportIPv6 : 2;
  ULONG              SupportIPv6ExtensionHeaders : 2;
  ULONG              SupportSack : 2;
  ULONG              CongestionAlgorithm : 4;
  ULONG              TcpConnectionOffloadCapacity;
  ULONG              Flags;
} NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_TCP_CONNECTION_OFFLOAD-Struktur. Legen Sie das Element Typ der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_DEFAULT fest, das Revisionselement auf NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 und das Size-Element auf NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1.

Encapsulation

Kapselungseinstellungen für die TCP-Schornsteinabladung. Weitere Informationen zu diesem Member finden Sie im folgenden Abschnitt Hinweise.

SupportIPv4

Ein ULONG-Wert, den ein Auslagerungsziel festlegt, um anzugeben, dass es IPv4 unterstützt. Der TCP/IP-Treiberstapel legt diesen Member so fest, dass IPv4 aktiviert wird.

SupportIPv6

Ein ULONG-Wert, den ein Auslagerungsziel festlegt, um anzugeben, dass es IPv6 unterstützt. Der TCP/IP-Treiberstapel legt diesen Member so fest, dass IPv6 aktiviert wird. Beachten Sie, dass ein Auslagerungsziel sowohl IPv4 als auch IPv6 unterstützen kann.

SupportIPv6ExtensionHeaders

Ein ULONG-Wert, den ein Auslagerungsziel festlegt, um anzugeben, dass es IPv6-Erweiterungsheader unterstützt (d. h. Routing, Fragmentierung/Neumontage, Authentifizierung, Kapselung, Hop-by-Hop-Verarbeitung und Zieloptionen). Der TCP/IP-Treiberstapel legt dieses Element so fest, dass IPv6-Erweiterungsheader aktiviert werden.

SupportSack

Ein ULONG-Wert, den ein Auslagerungsziel festlegt, um anzugeben, dass es TCP Selective Acknowledgments (SACKs) für Sende- und Empfangsvorgänge unterstützt. Der TCP/IP-Treiberstapel legt diesen Member so fest, dass SACKs sowohl für Sende- als auch für Empfangsvorgänge aktiviert werden.

Wenn ein Auslagerungsziel den SupportSack-Member festlegt, muss das Ziel in der Lage sein, SACK-Segmente zu generieren und zu nutzen. Wenn ein Auslagerungsziel die SACK-Option nicht unterstützt, muss das Ziel in der Lage sein, die Option SACK zu ignorieren und den Rest des TCP-Segments normal zu verarbeiten.

CongestionAlgorithm

Für die zukünftige Verwendung reserviert.

Wenn Sie ein unabhängiger Hardwareanbieter (Independent Hardware Vendor, IHV) sind und Algorithmen zur Kontrolle der Staukontrolle ohne Standard implementieren möchten, z. B. Zusammengesetztes TCP, wenden Sie sich an Microsoft unter External TCP Offload Triage.

TcpConnectionOffloadCapacity

Ein ULONG-Wert, den ein Auslagerungsziel festlegt, um die maximale Anzahl von tcp-Verbindungen anzugeben, die es unterstützt. Diese Nummer umfasst sowohl IPv4- als auch IPv6-Verbindungen.

Flags

Reserviert.

Hinweise

Die NDIS_TCP_CONNECTION_OFFLOAD-Struktur gibt die aktuellen oder unterstützten Dienste an, die ein Miniportadapter für die TCP-Schornsteinabladung bereitstellt.

Die NDIS_TCP_CONNECTION_OFFLOAD-Struktur wird in der NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES Struktur , NDIS_BIND_PARAMETERS Struktur, OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID, NDIS_STATUS_OFFLOAD_RESUME status Indikation und NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES status Hinweis. (Informationen zu NDIS_STATUS_OFFLOAD_RESUME finden Sie unter NDIS 6.0 TCP Chimney Offload-Dokumentation.)

Miniporttreiber empfangen die OID-Abfragen nicht. NDIS verwendet die Informationen, die der Miniporttreiber in Attributen und status Indikationen bereitstellt, um Antworten auf OID-Abfragen bereitzustellen und Bindungsparameter bereitzustellen.

NDIS stellt eine NDIS_TCP_CONNECTION_OFFLOAD-Struktur als Antwort auf eine Abfrage von OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG oder OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES bereit. Als Reaktion auf eine OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG-Abfrage gibt die NDIS_TCP_CONNECTION_OFFLOAD-Struktur die aktuellen Konfigurationseinstellungen des Ziels an. Als Reaktion auf eine OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES-Abfrage gibt die NDIS_TCP_CONNECTION_OFFLOAD-Struktur die Hardwarefunktionen des Ziels zum Auslagern von TCP-Verbindungen aus dem TCP/IP-Transport an.

Das Encapsulation-Element von NDIS_TCP_CONNECTION_OFFLOAD definiert die TCP-Chimney-Entkapselungseinstellungen für den Miniportadapter.

Für einen OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES Abfrageanforderung stellt NDIS ein einzelnes Flag bereit, das die Hardwarekapselungsfunktionen im Encapsulationselement angibt.

Für einen OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG Abfrageanforderung stellt NDIS einen bitweisen OR der Kapselflags bereit, der die aktuellen Kapselungseinstellungen angibt.

Die folgenden Flags werden für das Encapsulation-Element definiert:

Wichtig Ein Miniport- oder Muxtreiber, der schornsteinfähig ist, muss den Encapsulations-Member auf NDIS_ENCAPSULATION_IEEE_802_3, NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED oder beides festlegen. Andernfalls wird die Schornsteinfunktion nicht erkannt.
 

TCP Chimney-Auslagerungsabfragen

Wenn eine NDIS auf eine Abfrage von antwortet OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES oder OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG für ein Auslagerungsziel stellt NDIS die Mitglieder SupportIp4, SupportIp6, SupportIp6ExtensionHeaders und SupportISack der NDIS_TCP_CONNECTION_OFFLOAD-Struktur bereit. Diese Member können einen der folgenden Werte aufweisen:

Ein Auslagerungsziel muss entweder IPv4 oder IPv6 (oder beides) unterstützen. Auslagerungsziele können optional IPv6-Erweiterungsheader unterstützen.

Ein Auslagerungsziel sollte keine IPv4-Optionen unterstützen. Das Auslagerungsziel muss alle empfangenen IP-Datagramme, die IPv4-Optionen enthalten, an den TCP/IP-Treiberstapel weiterleiten. Das Auslagerungsziel gibt solche IP-Datagramme an den TCP/IP-Treiberstapel an, indem es aufruft NdisMIndicateReceiveNetBufferLists. Der TCP/IP-Treiberstapel verarbeitet die IPv4-Optionen und gibt die Datagramme an das Auslagerungsziel zurück. MiniportTcpOffloadForward-Funktion . (Informationen zu MiniportTcpOffloadForward finden Sie in der Dokumentation zu NDIS 6.0 TCP Chimney offload.)

Das Auslagerungsziel muss auch einen Wert für das TcpConnectionOffloadCapacity-Element von NDIS_TCP_CONNECTION_OFFLOAD bereitstellen. Dieser Wert sollte die maximale Anzahl gleichzeitig entladener TCP-Verbindungen sein, die das Auslagerungsziel unterstützen kann.

Beachten Sie, dass ein Auslagerungsziel nicht direkt auf neue Auslagerungsfunktionen hinweisen kann. Stattdessen muss das Auslagerungsziel den TCP/IP-Treiberstapel anfordern, um die Auslagerungen anzuhalten und dann fortzusetzen. Wenn der Miniportadapter bereit ist, die Auslagerung von TCP-Verbindungen fortzusetzen, gibt er einen NDIS_STATUS_OFFLOAD_RESUME status Hinweis aus, um die neuen Verbindungsauslagerungsfunktionen zu melden. Weitere Informationen zu NDIS_STATUS_OFFLOAD_RESUME finden Sie in der Dokumentation zur NDIS 6.0 TCP-Schornsteinabladung.

Anforderungen

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

Weitere Informationen

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES NdisMIndicateReceiveNetBufferLists OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES