REMOTE_NDIS_PACKET_MSG

REMOTE_NDIS_PACKET_MSG kapselt NDIS-Datenpakete, um eine einzelne Datennachricht zu bilden.

Das Verketten mehrerer REMOTE_NDIS_PACKET_MSG Elemente bildet eine Multipacket-Nachricht. Jede einzelne REMOTE_NDIS_PACKET_MSG Komponente wird wie unten beschrieben erstellt. Der Unterschied zur Einzelpaketnachricht besteht darin, dass das MessageLength-Feld in jedem REMOTE_NDIS_PACKET_MSG Header einige zusätzliche Abstandsbytes enthält. Diese Abstandsbytes werden an alle, aber die letzte REMOTE_NDIS_PACKET_MSG angefügt, sodass die nachfolgenden REMOTE_NDIS_PACKET_MSG an einer entsprechenden Bytegrenze beginnen. Bei Nachrichten, die vom Gerät an den Host gesendet werden, sollte dieser Abstand zu jedem REMOTE_NDIS_PACKET_MSG führen, der mit einem Byte-Offset beginnt, das ein Vielfaches von 8 Byte ab dem Anfang der Multipacket-Nachricht ist. Wenn der Host eine Multipacket-Nachricht an das Gerät sendet, entspricht er dem PacketAlignmentFactor-, den das Gerät angibt.

Das REMOTE_NDIS_PACKET_MSG-Format ist in der folgenden Tabelle definiert.

Offset Größe Feld Beschreibung

0

4

MessageType

Gibt den Typ der gesendeten Nachricht an. Auf 0x1 festgelegt.

4

4

MessageLength

Nachrichtenlänge in Bytes, einschließlich angefügter Paketdaten, OOB-Daten, Daten pro Paket und sowohl interner als auch externer Abstand.

8

4

DataOffset

Gibt den Offset in Bytes vom Anfang des DataOffset-Felds dieser Nachricht bis zum Anfang der Daten an. Dies ist ein ganzzahliges Vielfaches von 4.

12

4

DataLength

Gibt die Anzahl der Bytes im Dateninhalt dieser Nachricht an.

16

4

OOBDataOffset

Gibt den Offset in Byte des ersten OOB-Datensatzes vom Anfang des DataOffset- Felds dieser Nachricht an. Wird auf Null festgelegt, wenn keine OOB-Daten vorhanden sind. Andernfalls ist dies eine ganze Zahl von 4.

20

4

OOBDataLength

Gibt in Bytes die Gesamtlänge der OOB-Daten an.

24

4

NumOOBDataElements

Gibt die Anzahl der OOB-Einträge in dieser Nachricht an.

28

4

PerPacketInfoOffset

Gibt in Bytes den Offset vom Anfang des DataOffset-felds in der REMOTE_NDIS_PACKET_MSG-Datennachricht bis zum Anfang des ersten Datendatensatzes pro Paket an. Wird auf Null festgelegt, wenn pro Paket keine Daten vorhanden sind. Andernfalls ist dies eine ganze Zahl von 4.

32

4

PerPacketInfoLength

Gibt in Bytes die Gesamtlänge der in dieser Nachricht enthaltenen Informationen pro Paket an.

36

4

VcHandle

Für verbindungsorientierte Geräte reserviert. Auf Null festgelegt.

40

4

Reserviert

Reserviert. Auf Null festgelegt.

Das Format eines einzelnen OOB-Datensatzes wird in der folgenden Tabelle angegeben.

Offset Größe Feld Beschreibung

0

4

Größe

Länge in Byte dieses OOB-Headers und angefügte OOB-Daten und -Abstände. Dies ist ein ganzzahliges Vielfaches von 4.

4

4

Art

Keine für 802.3-Geräte definiert.

8

4

ClassInformationOffset

Der Byteoffset vom Anfang dieses OOB-Datensatzes bis zum Anfang der OOB-Daten.

(N)

...

OOB-Daten

OOB-Daten; weitere Informationen finden Sie in der Dokumentation zu Microsoft Windows Driver Development Kit (DDK).

Note (N) ist gleich dem Wert ClassInformationOffset.

In der folgenden Tabelle wird das Format eines Datendatensatzes pro Paket definiert.

Offset Größe Feld Beschreibung

0

4

Größe

Länge in Byte dieses Paketheaders und angefügte Daten pro Paket und Abstand. Dieser Wert ist eine ganze Zahl von 4.

4

4

Art

Legen Sie einen der gesetzlichen Werte für NDIS_PER_PACKET_INFO_FROM_PACKET fest, wie im Windows 2000 Driver Development Kit (DDK) beschrieben.

8

4

PerPacketInformationOffset

Der Byteoffset vom Anfang dieses Datendatensatzes pro Paket bis zum Anfang der Daten pro Paket.

(N)

...

Per-Packet Daten

Per-Packet Daten; Weitere Informationen finden Sie in der Windows 2000 DDK-Dokumentation.

Note (N) ist gleich dem Wert PerPacketInformationOffset.

Bemerkungen

Jede REMOTE_NDIS_PACKET_MSG kann eine oder mehrere OOB-Datensätze enthalten. NumOOBDataElements gibt die Anzahl der OOB-Datensätze in dieser Nachricht an. Die OOB-Datensätze müssen sequenziert angezeigt werden. Das OOBDataLength Feld gibt die Länge in Bytes des gesamten OOB-Datenblocks an. Das OOBDataOffset Feld gibt den Byteoffset-Offset vom Anfang des DataOffset- felds bis zum Anfang des OOB-Datenblocks an. Weitere Informationen zu OOB-Paketdaten finden Sie in der NDIS-Spezifikation in Windows 2000 DDK.

Wenn mehrere OOB-Datenblöcke an eine REMOTE_NDIS_PACKET_MSG Nachricht angefügt sind, muss jeder nachfolgende OOB-Datensatz sofort den Daten des vorherigen OOB-Datensatzes folgen.

Für 802.3-Geräte sind derzeit keine OOB-Informationen definiert.

Jede REMOTE_NDIS_PACKET_MSG kann einen oder mehrere Datensätze pro Paketinformationen enthalten. Pro Paketinformationen wird verwendet, um Paketmetadaten zu übermitteln, z. B. TCP-Prüfsumme. Das PerPacketInfoOffset Feld gibt den Byteoffset-Offset vom Anfang des DataOffset- felds bis zum Anfang des Datendatensatzes pro Paket an. Das OOBDataLength-feld gibt die Bytelänge des Datensatzes pro Paketinformation an. Weitere Informationen zu Paketinformationen finden Sie unter Windows 2000 DDK.

Wenn mehrere Datenblöcke pro Paket vorhanden sind, muss jeder nachfolgende Datendatensatz pro Paket sofort den Datendatensatz pro Paket folgen.

Ein Remote-NDIS-Gerät muss Daten über NDIS-Datenpakete senden und empfangen. Der vom Gerät verwendete Bus bestimmt, wie diese Pakete vom Host an das Gerät und das Gerät an den Host übergeben werden. Es könnte freigegebener Speicher oder im Falle von USB-, Isoch- und Bulk-Rohren verwendet werden. NDIS-Pakete können auch Out-of-Band-Daten (OOB) sowie die Daten enthalten, die über das Netzwerk übertragen werden.

Ein Remote-NDIS-Gerät überträgt NDIS-Pakete, die als REMOTE_NDIS_PACKET_MSG über den Datenkanal gekapselt werden. Sowohl verbindungslose Geräte (z. B. 802.3) als auch verbindungsorientierte Geräte (z. B. ATM) verwenden dieselbe Paketnachrichtenstruktur, um gemeinsamen Code für die Paketverarbeitung zu vereinfachen. Jede REMOTE_NDIS_PACKET_MSG Nachricht enthält Informationen über eine einzelne Netzwerkdateneinheit (z. B. einen Ethernet 802.3-Frame).

Weitere Informationen zu Out-of-Band-Paketdaten oder Daten pro Paket finden Sie in den Windows 2000 DDK NDIS-Abschnitten.

Anforderungen

Version

Verfügbar in Microsoft Windows XP und höheren Versionen der Windows-Betriebssysteme. Auch in Windows 2000 als verteilbare Binärdateien verfügbar.

Kopfball

Rndis.h (include Rndis.h)