Freigeben über


OID_GEN_TRANSPORT_HEADER_OFFSET

Als Satz gibt die OID_GEN_TRANSPORT_HEADER_OFFSET OID die Größe zusätzlicher Header für Pakete an, die ein bestimmter Transport sendet und empfängt.

Versionsinformationen

Windows Vista und höhere Versionen von Windows
Unterstützt.

Miniporttreiber NDIS 6.0 und höher
Optional.

NDIS 5.1-Miniporttreiber
Optional.

Windows XP
Unterstützt.

NDIS 5.1-Miniporttreiber
Optional.

Bemerkungen

Ein Transport informiert Miniporttreiber und andere mehrschichtige Treiber über diese Headergröße; Diese Treiber können diese Informationen dann bei der Verarbeitung von Paketen verwenden. Beispielsweise könnte ein Treiber die vom Transport abgerufene Unterschichtheadergröße verwenden, um den Anfang von Informationen höherer Ebenen in Paketen zu finden, z. B. den Start des IP-Headers. Der Treiber könnte dann die Felder des IP-Protokollheaders analysieren und entsprechend anpassen. Transporte verwenden eine wie folgt definierte TRANSPORT_HEADER_OFFSET-Struktur, um diese Headergröße anzugeben.

typedef struct _TRANSPORT_HEADER_OFFSET {
  USHORT  ProtocolType; 
  USHORT  HeaderOffset; 
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;

Die Member dieser Struktur enthalten die folgenden Informationen:

Protocoltype
Gibt den Protokolltyp an, der diese OID sendet und anschließend Pakete mit der angegebenen Unterschichtheadergröße sendet und empfängt. Das Protokoll ist einer der folgenden Werte:

NDIS_PROTOCOL_ID_DEFAULT
Standardprotokoll

NDIS_PROTOCOL_ID_TCP_IP
TCP/IP-Protokoll

NDIS_PROTOCOL_ID_IPX
NetWare IPX-Protokoll

NDIS_PROTOCOL_ID_NBF
NetBIOS-Protokoll

HeaderOffset
Gibt die Größe des Sublayerheaders in Bytes an, der dem Protokollheader für Pakete vorangestellt ist, die das Protokoll anschließend an den Miniporttreiber oder einen anderen mehrschichtigen Treiber sendet oder von diesem empfängt. Beispiel: sizeof(Ethernet-Header) + sizeof(SNAP-Header).

In der Regel berechnen Transporte die Headergröße von Paketen aus Informationen, die von Miniporttreibern abgerufen werden. Um die maximale Gesamtpaketgröße in Bytes anzufordern, die eine NIC unterstützt, einschließlich des Headers, verwenden Transporte die OID_GEN_MAXIMUM_TOTAL_SIZE OID. Transporte verwenden die OID_GEN_MAXIMUM_FRAME_SIZE OID, um die maximale Paketgröße in Bytes anzufordern, die von einer NIC unterstützt wird, ohne einen Header. Um die maximale Headergröße zu berechnen, subtrahieren Transporte die maximale Framegröße von der maximalen Gesamtgröße.

Wenn ein Transport Pakete überträgt, die Unterschichtheaderinformationen enthalten, muss der Transport die Headergröße dieser Pakete kennen und die zugrunde liegenden Miniporttreiber und andere mehrschichtige Treiber über die Größe informieren, damit die Treiber die Pakete verarbeiten können. Das Senden und Empfangen bestimmter Sublayer-Headerinformationen innerhalb eines Pakets kann eine Option sein, die in der Registrierung für ein bestimmtes Protokoll festgelegt werden kann. Transporte könnten dann Informationen zu Sublayerheadern aus der Registrierung abrufen und die Headergröße an Miniporttreiber oder andere mehrschichtige Treiber übergeben.

Wenn ein Transport beispielsweise Pakete vom Medium Fiber Distributed Data Interface verarbeitet, muss der Transport eine festgelegte Anforderung an zugrunde liegende Miniporttreiber und andere mehrschichtige Treiber senden, indem OID_GEN_TRANSPORT_HEADER_OFFSET verwendet wird, um diese Treiber über die Größe des Unterschichtheaders der Pakete zu informieren. (FDDI wird in Windows Vista und höheren Versionen von Windows nicht unterstützt.) Diese Pakete von FDDI können Informationen zur Logical Link Control (LLC) enthalten. Diese LLC-Informationen können wiederum einen LLC-Header und andere Header wie Sub-Network Access Protocol (SNAP) enthalten. Der Transport bestimmt von der Registrierung, LLC/SNAP zu verwenden, und übergibt die Headergröße der LLC/SNAP-Segmente von Paketen an Miniporttreiber.

Diese OID ist optional für Miniporttreiber und andere mehrschichtige Treiber. Da diese OID optional ist, müssen Treiber nicht auf Anforderungen reagieren, die Transporte mithilfe dieser OID durchführen.

Anforderungen

Header

Ntddndis.h (include Ndis.h)

Weitere Informationen

OID_GEN_MAXIMUM_FRAME_SIZE

OID_GEN_MAXIMUM_TOTAL_SIZE