Netzwerkdatenstrukturen

Netzwerkdaten bestehen aus Datenpaketen, die über das Netzwerk gesendet oder empfangen werden. NDIS stellt Datenstrukturen bereit, um solche Daten zu beschreiben und zu organisieren. Die primären Netzwerkdatenstrukturen für NDIS 6.0 und höher sind:

Die folgende Abbildung veranschaulicht die Beziehungen zwischen diesen Strukturen.

Diagramm mit NDIS 6.0-Netzwerkdatenstrukturen, einschließlich NET_BUFFER, NET_BUFFER_LIST und NET_BUFFER_LIST_CONTEXT.

In NDIS 6.0 und höher ist die NET_BUFFER der grundlegende Baustein zum Packen von Netzwerkdaten. Jede NET_BUFFER Struktur verfügt über eine MDL-Kette. Die MDLs ordnen die Adressen von Datenpuffern dem Datenraum zu, den die NET_BUFFER-Strukturen angeben. Diese Datenzuordnung ist mit den MDL-Ketten von NDIS 5 identisch. x und frühere Treiber verwenden in der NDIS_PACKET-Struktur . NDIS bietet Funktionen zum Bearbeiten der MDL-Kette.

Mehrere NET_BUFFER-Strukturen können an eine NET_BUFFER_LIST-Struktur angefügt werden. Die NET_BUFFER Strukturen sind als mit NULL beendete, singly verknüpfte Liste organisiert. Nur der Treiber, der aus einer NET_BUFFER_LIST-Struktur (NDIS) stammt, sollte die verknüpfte Liste direkt ändern, um NET_BUFFER Strukturen einzufügen und zu löschen.

NET_BUFFER LIST-Strukturen enthalten Informationen, die alle NET_BUFFER Strukturen beschreiben, die an eine Liste angefügt sind. Wenn ein Treiber zusätzlichen Speicherplatz für Kontextinformationen benötigt, kann der Treiber diese Informationen in den NET_BUFFER_LIST_CONTEXT-Strukturen speichern. NDIS bietet Funktionen zum Zuordnen, Freigeben und Zugreifen auf die Daten in den NET_BUFFER_LIST_CONTEXT-Strukturen.

Mehrere NET_BUFFER_LIST-Strukturen können angefügt werden, um eine Liste mit NET_BUFFER_LIST Strukturen zu bilden. Die NET_BUFFER_LIST-Strukturen sind als mit NULL beendete, singly verknüpfte Liste organisiert. Treiber können die verknüpfte Liste direkt ändern, um NET_BUFFER_LIST Strukturen einzufügen und zu löschen.

NET_BUFFER

NET_BUFFER Struktur

NET_BUFFER LISTE

NET_BUFFER_LIST-Struktur

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT-Struktur