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 aufgebaut. Der Unterschied zur Einzelpaketnachricht besteht darin, dass das MessageLength-Feld in jedem REMOTE_NDIS_PACKET_MSG Header einige zusätzliche Auffüllbytes enthält. Diese Auffüllungsbytes werden an alle bis auf den letzten REMOTE_NDIS_PACKET_MSG angefügt, sodass die folgende REMOTE_NDIS_PACKET_MSG mit einer entsprechenden Bytegrenze beginnt. Bei Nachrichten, die vom Gerät an den Host gesendet werden, sollte diese Auffüllung dazu führen, dass jede REMOTE_NDIS_PACKET_MSG mit einem Byteoffset beginnt, der ein Vielfaches von 8 Bytes ab Dem Anfang der Multipacket-Nachricht ist. Wenn der Host eine Multipacket-Nachricht an das Gerät sendet, hält er sich an den PacketAlignmentFactor an, den das Gerät angibt.
Das REMOTE_NDIS_PACKET_MSG-Format wird in der folgenden Tabelle definiert.
Offset | Size | Feld | BESCHREIBUNG |
---|---|---|---|
0 |
4 |
MessageType |
Gibt den Typ der gesendeten Nachricht an. Legen Sie auf 0x1 fest. |
4 |
4 |
MessageLength |
Nachrichtenlänge in Bytes, einschließlich angefügter Paketdaten, OOB-Daten, Paketinformationsdaten und sowohl interner als auch externer Auffüllung. |
8 |
4 |
DataOffset |
Gibt den Offset in Bytes vom Anfang des DataOffset-Felds dieser Nachricht bis zum Start 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 Bytes des ersten OOB-Datensatzes vom Anfang des DataOffset-Felds dieser Nachricht an. Legen Sie auf Null fest, wenn keine OOB-Daten vorhanden sind. Andernfalls ist dies ein ganzzahliges Vielfaches von 4. |
20 |
4 |
OOBDataLength |
Gibt die Gesamtlänge der OOB-Daten in Bytes 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 im REMOTE_NDIS_PACKET_MSG Datennachricht bis zum Beginn des ersten Datendatensatzes pro Paket an. Legen Sie auf Null fest, wenn keine Daten pro Paket vorhanden sind. Andernfalls ist dies ein ganzzahliges Vielfaches von 4. |
32 |
4 |
PerPacketInfoLength |
Gibt in Byte die Gesamtlänge der Paketinformationen an, die in dieser Nachricht enthalten sind. |
36 |
4 |
VcHandle |
Reserviert für verbindungsorientierte Geräte. Auf NULL festlegen. |
40 |
4 |
Reserviert |
Reserviert. Auf NULL festlegen. |
Das Format eines einzelnen OOB-Datensatzes wird in der folgenden Tabelle angegeben.
Offset | Size | Feld | BESCHREIBUNG |
---|---|---|---|
0 |
4 |
Size |
Länge in Bytes dieses OOB-Headers und angefügte OOB-Daten und -Auffüllung. Dies ist ein ganzzahliges Vielfaches von 4. |
4 |
4 |
Typ |
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 des Microsoft Windows Driver Development Kit (DDK). |
Hinweis (N) entspricht dem Wert von ClassInformationOffset.
In der folgenden Tabelle wird das Format eines Paketinformationsdatensatzes definiert.
Offset | Size | Feld | BESCHREIBUNG |
---|---|---|---|
0 |
4 |
Size |
Länge in Bytes dieses paketbasierten Headers und angefügte Daten pro Paket und Auffüllung. Dieser Wert ist ein ganzzahliges Vielfaches von 4. |
4 |
4 |
Typ |
Legen Sie auf 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 Pro-Paket-Informationsdatensatzes bis zum Anfang der Daten pro Paket. |
(N) |
... |
Per-Packet Daten |
Per-Packet Daten; Weitere Informationen finden Sie in der Dokumentation zu Windows 2000 DDK. |
Hinweis (N) ist gleich dem Wert von PerPacketInformationOffset.
Bemerkungen
Jede REMOTE_NDIS_PACKET_MSG kann einen oder mehrere OOB-Datensätze enthalten. NumOOBDataElements gibt die Anzahl der OOB-Datensätze in dieser Nachricht an. Die OOB-Datensätze müssen nacheinander angezeigt werden. Das Feld OOBDataLength gibt die Länge des gesamten OOB-Datenblocks in Byte an. Das Feld OOBDataOffset gibt den Byteoffset vom Anfang des DataOffset-Felds bis zum Anfang des OOB-Datenblocks an. Weitere Informationen zu OOB-Paketdaten finden Sie in der NDIS-Spezifikation im Windows 2000 DDK.
Wenn mehrere OOB-Datenblöcke an eine REMOTE_NDIS_PACKET_MSG Nachricht angefügt werden, 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 Paketinformation enthalten. Pro-packet-info wird verwendet, um Paketmetadaten zu übermitteln, z. B. TCP-Prüfsumme. Das Feld "PerPacketInfoOffset " gibt den Byteoffset vom Anfang des DataOffset-Felds bis zum Anfang des Datensatzes pro Paketinformation an. Das Feld OOBDataLength gibt die Bytelänge des Datendatensatzes pro Paket an. Weitere Informationen zu Paketinformationsdaten finden Sie im Windows 2000 DDK.
Wenn mehrere Datenblöcke pro Paketinformation vorhanden sind, muss jeder nachfolgende Pro-Paket-Informationsdatensatz sofort den Daten des vorherigen Pro-Paket-Informationsdatensatzes folgen.
Ein NDIS-Remotegerät muss Daten über NDIS-Datenpakete senden und empfangen. Der vom Gerät verwendete Bus bestimmt, wie diese Pakete von Host zu Gerät und Gerät zum Host übergeben werden. Es kann sich um gemeinsam genutzten Speicher oder im Fall von USB-, Isoch- und Bulk-Pipes handelt. NDIS-Pakete können auch Out-of-Band-Daten (OOB) sowie die Daten enthalten, die über das Netzwerk übertragen werden.
Ein NDIS-Remotegerät überträgt NDIS-Pakete, gekapselt als REMOTE_NDIS_PACKET_MSG über den Datenkanal. Sowohl verbindungslose Geräte (z. B. 802.3) als auch verbindungsorientierte Geräte (z. B. ATM) verwenden dieselbe Paketnachrichtenstruktur, um allgemeinen 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 Paketinfodaten finden Sie in den Abschnitten zu Windows 2000 DDK NDIS.
Requirements (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. |
Header |
Rndis.h (include Rndis.h) |