Freigeben über


NDIS_HD_SPLIT_ATTRIBUTES-Struktur (ndis.h)

Die NDIS_HD_SPLIT_ATTRIBUTES-Struktur definiert, falls vorhanden, Header-Datenteilungsattribute, die einem Miniportadapter zugeordnet sind.

Syntax

typedef struct _NDIS_HD_SPLIT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  ULONG              HardwareCapabilities;
  ULONG              CurrentCapabilities;
  ULONG              HDSplitFlags;
  ULONG              BackfillSize;
  ULONG              MaxHeaderSize;
} NDIS_HD_SPLIT_ATTRIBUTES, *PNDIS_HD_SPLIT_ATTRIBUTES;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die Struktur der Anbietermerkmale (NDIS_HD_SPLIT_ATTRIBUTES). Der Treiber legt das Element Typ der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, das Revisionselement auf NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1 und das Size-Element auf NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1 fest.

HardwareCapabilities

Die vom Miniportadapter unterstützten Hardwarefunktionen für header-datenaufteilen. Diese Funktionen sollten Funktionen enthalten, die derzeit von DEN INF-Dateieinstellungen oder über die Seite Erweiterte Eigenschaften deaktiviert sind. Der Wert von HardwareCapabilities ist ein bitweiser OR der folgenden Flags:

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

Der Miniportadapter kann den Header und die Daten in separate MDLs aufteilen, die die Anforderungen für die Unterstützung für die Unterstützung von Header-Daten-Split erfüllen.

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

Der Miniportadapter kann IPv4-Ethernet-Frames teilen, die IPv4-Optionen enthalten. Der Miniportadapter kann das Aufteilen einiger IPv4-Optionen unterstützen, während andere nicht aufgeteilt werden.

Hinweis Die NIC darf keine IPv4-Frames teilen, die nicht unterstützte IPv4-Optionen enthalten. Wenn ein IPv4-Frame geteilt wird, muss der Headerteil des geteilten Frames den gesamten IPv4-Header und alle vorhandenen IPv4-Optionen enthalten.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

Der Miniportadapter kann IPv6-Ethernet-Frames teilen, die IPv6-Erweiterungsheader enthalten. Der Miniportadapter kann einige IPv6-Erweiterungsheader unterstützen, andere nicht.

Hinweis Die NIC darf keine IPv6-Frames teilen, die nicht unterstützte IPv6-Erweiterungsheader enthalten. Wenn ein IPv6-Frame geteilt wird, muss der Headerteil des geteilten Frames den gesamten IPv6-Header und alle vorhandenen IPv6-Erweiterungsheader enthalten.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

Der Miniportadapter kann TCP-Frames zusätzlich zur Zeitstempeloption mit anderen TCP-Optionen aufteilen. Der Miniportadapter kann einige TCP-Optionen unterstützen, andere nicht.

Hinweis Wenn die einzige TCP-Option in einem Frame die Zeitstempeloption ist, muss der Datenteilungsanbieter in der Lage sein, den Frame aufzuteilen.
 
Hinweis Wenn ein TCP-Header eine nicht unterstützte TCP-Option enthält, muss die NIC den Frame am Anfang des TCP-Headers teilen oder darf den Frame nicht teilen.
 

CurrentCapabilities

Die aktuellen Funktionen zum Teilen von Headern und Daten, die der Miniportadapter unterstützt. Der Miniporttreiber verwendet dieselben Flags, die für das HardwareCapabilities-Element definiert sind. In diesem Fall werden die Flags festgelegt, um die aktuellen Funktionen anzugeben, die von den aktuellen Konfigurationseinstellungen abhängen.

HDSplitFlags

Eine Reihe von Flags, die die status der Header-Datenteilung für einen Miniportadapter steuern. Der Miniporttreiber sollte diesen Member auf 0 festlegen, bevor er die NdisMSetMiniportAttributes-Funktion . Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Treiber die Flags überprüfen und die Hardware entsprechend konfigurieren. NDIS legt diesen Member mit einem bitweisen OR der folgenden Flags fest:

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

Wenn dieses Flag festgelegt ist, sollte der Miniporttreiber die Aufteilung von Headerdaten in der Hardware aktivieren. Andernfalls ist die Aufteilung von Header-Daten deaktiviert. Wenn der Computer header-data split verwendet und der Miniporttreiber auch das NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT-Flag im CurrentCapabilities-Member festlegt, legt NDIS NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT fest.

BackfillSize

Die Verfüllgröße in Bytes für den Datenteil eines geteilten Frames. Der Miniporttreiber sollte festgelegt werden.
BackfillSize auf 0, bevor NdisMSetMiniportAttributes aufgerufen wird. NDIS legt diesen Member fest, wenn der Miniporttreiber im Datenteil Vorabspeicher für geteilte Frames zuordnen muss. Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Treiber den BackfillSize-Wert verwenden, den NDIS auf die Vorabzuweisung der Datenpuffer festgelegt hat.

MaxHeaderSize

Die maximale Größe (in Bytes) für den Headerteil eines geteilten Frames. Der Miniporttreiber sollte MaxHeaderSize auf Null festlegen, bevor NdisMSetMiniportAttributes aufgerufen wird. NDIS legt dieses Element auf die maximale Größe für den Headerpuffer für geteilte Frames fest. Nachdem NdisMSetMiniportAttributes erfolgreich zurückgegeben wurde, muss der Treiber den von NDIS bereitgestellten Wert verwenden.

Hinweis Wenn die Länge eines Headers maxHeaderSize überschreitet, weil IPv4-Optionen, IPSec-Header oder IPv6-Erweiterungsheader vorhanden sind, darf der Frame nicht geteilt werden. Wenn ein Header, der einen TCP- oder UDP-Header enthält, maxHeaderSize überschreitet, da TCP-Header, TCP-Optionen oder UDP-Header vorhanden sind, muss die NIC den Frame am Anfang des Protokollheaders der oberen Ebene aufteilen oder darf den Frame nicht teilen.
 

Hinweise

Zur Unterstützung der Header-Datenteilung übergibt ein Miniporttreiber einen Zeiger auf ein NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES Struktur im MiniportAttributes-Parameter des NdisMSetMiniportAttributes-Funktion . Das HDSplitAttributes-Element von NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES enthält einen Zeiger auf die NDIS_HD_SPLIT_ATTRIBUTES-Struktur. Ein Miniporttreiber ruft während der Initialisierung NdisMSetMiniportAttributes über seine MiniportInitializeEx-Funktion auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.1 und höher.
Kopfzeile ndis.h (einschließlich Ndis.h)

Weitere Informationen

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes