Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 neuere Versionen von Windows
Abgestützt.
NDIS 6.0 und höher Miniporttreiber
Wahlfrei.
NDIS 5.1 Miniporttreiber
Wahlfrei.
NDIS 5.1 Miniporttreiber
Wahlfrei.
Bemerkungen
Ein Transport informiert Miniporttreiber und andere mehrschichtige Treiber über diese Headergröße; diese Treiber können diese Informationen dann beim Verarbeiten von Paketen verwenden. Beispielsweise könnte ein Treiber die vom Transport abgerufene Größe der Unterlayerkopfzeile verwenden, um den Anfang von Informationen höherer Ebene in Paketen zu finden, z. B. den Start des IP-Headers; der Treiber kann dann die Felder des IP-Protokollheaders entsprechend analysieren und anpassen. Transporte verwenden eine TRANSPORT_HEADER_OFFSET Struktur, die wie folgt definiert ist, um diese Kopfzeilengröße anzugeben.
typedef struct _TRANSPORT_HEADER_OFFSET {
USHORT ProtocolType;
USHORT HeaderOffset;
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
Die Elemente dieser Struktur enthalten die folgenden Informationen:
ProtocolType-
Gibt den Protokolltyp an, der dieses OID sendet und anschließend Pakete mit der angegebenen Größe des Unterlayers 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 Unterlayerheaders in Bytes an, der dem Protokollheader für Pakete vorausgeht, die das Protokoll anschließend an den Miniporttreiber oder einen anderen Layertreiber sendet oder empfängt. Beispielsweise 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 die OID_GEN_MAXIMUM_TOTAL_SIZE OID. Um die maximale Paketgröße in Byte anzufordern, die eine NIC unterstützt, ohne einen Header, verwenden Transporte die OID_GEN_MAXIMUM_FRAME_SIZE OID. Um die maximale Kopfzeilengröße zu berechnen, subtrahieren Sie die maximale Framegröße von der maximalen Gesamtgröße.
Wenn ein Transport Pakete überträgt, die Unterlayerheaderinformationen enthalten, muss der Transport die Größe der Unterlayerheader dieser Pakete kennen und zugrunde liegende Miniporttreiber und andere mehrschichtige Treiber über die Größe informieren, damit die Treiber die Pakete verarbeiten können. Das Senden und Empfangen bestimmter Unterlayerheaderinformationen innerhalb eines Pakets kann eine Option sein, die in der Registrierung für ein bestimmtes Protokoll festgelegt werden kann. Transporte können dann Informationen zu Unterlayerheadern aus der Registrierung abrufen und die Headergröße an Miniporttreiber oder andere Layertreiber übergeben.
Wenn z. B. ein Transport Pakete vom Medium "Fiber Distributed Data Interface" verarbeitet, muss der Transport eine set-Anforderung an zugrunde liegende Miniporttreiber und andere mehrschichtige Treiber senden, die OID_GEN_TRANSPORT_HEADER_OFFSET verwenden, um diese Treiber über die Größe des Unterlayerheaders der Pakete zu informieren. (FDDI wird in Windows Vista und höheren Versionen von Windows nicht unterstützt.) Diese Pakete von FDDI könnten Informationen zur Logical Link Control (LLC) enthalten. Diese LLC-Informationen könnten wiederum einen LLC-Header und andere Header wie Sub-Network Access Protocol (SNAP) enthalten. Der Transport bestimmt aus der Registrierung, um LLC/SNAP zu verwenden, und übergibt die Headergröße der LLC/SNAP-Segmente von Paketen an Miniporttreiber.
Dieses OID ist optional für Miniporttreiber und andere mehrschichtige Treiber. Da dieses OID optional ist, müssen Treiber nicht auf Anforderungen reagieren, die mit diesem OID transportiert werden.
Anforderungen
Kopfball |
Ntddndis.h (include Ndis.h) |