Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Ein NDIS-Treiber kann eine neu zusammengesetzte NET_BUFFER_LIST Struktur aus einer vorhandenen NET_BUFFER_LIST Struktur erstellen. Die neu zusammengesetzte Struktur verweist auf die ursprünglichen Daten aus mehreren Quellen NET_BUFFER Strukturen. Treiber können diese Strukturart verwenden, um viele kleinere Puffer effizient in einem einzigen großen Puffer zu kombinieren.
Die folgende Abbildung zeigt die Beziehung zwischen einer übergeordneten NET_BUFFER_LIST Struktur und einer neu zusammengesetzten untergeordneten Struktur:
Die obige Abbildung enthält eine übergeordnete NET_BUFFER_LIST Struktur und eine untergeordnete Struktur, die von diesem übergeordneten Element abgeleitet wurde. Die übergeordnete Struktur weist eine NET_BUFFER_LIST_CONTEXT Struktur und drei NET_BUFFER Strukturen mit angefügten MDLs auf. Der übergeordnete Zeiger der übergeordneten Struktur ist NULL-, der angibt, dass es sich nicht um eine abgeleitete Struktur handelt.
Die untergeordnete NET_BUFFER_LIST-Struktur weist eine NET_BUFFER Struktur mit angefügten MDLs auf. Die untergeordnete NET_BUFFER_LIST Struktur weist einen Zeiger auf die übergeordnete Struktur auf. Der NULL-, bei dem ein NET_BUFFER_LIST_CONTEXT Strukturzeiger angibt, dass das untergeordnete Element keine NET_BUFFER_LIST_CONTEXT Struktur aufweist.
NDIS-Treiber rufen die NdisAllocateReassembledNetBufferList--Funktion auf, um eine fragmentierte NET_BUFFER_LIST Struktur neu zusammenzusammeln. NDIS weist eine neue NET_BUFFER Struktur und MDLs mit der neu zusammengesetzten NET_BUFFER_LIST Struktur zu. NDIS weist keine NET_BUFFER_LIST_CONTEXT Struktur für die neu zusammengesetzte Struktur zu. Die neu zusammengesetzte NET_BUFFER Struktur und MDLs beschreiben die gleichen Daten wie die übergeordnete Struktur. Die Daten werden nicht kopiert.
Um die neu zusammengesetzte NET_BUFFER_LIST Struktur zu erstellen, überspringt NdisAllocateReassembledNetBufferList die Anzahl der im StartOffset Parameter in jedem der übergeordneten NET_BUFFER Strukturen angegebenen Bytes. NdisAllocateReassembledNetBufferList verkettet die verbleibenden Daten in jeder übergeordneten NET_BUFFER Struktur in der MDL-Kette einer neu zusammengefassten NET_BUFFER Struktur. NdisAllocateReassembledNetBufferList Retreats (erhöht den verwendeten Datenbereich in) die neu zusammengesetzte NET_BUFFER Struktur um den in DataOffsetDelta angegebenen Betrag.
NDIS-Treiber rufen die NdisFreeReassembledNetBufferList--Funktion auf, um eine neu zusammengesetzte NET_BUFFER_LIST Struktur und die zugeordnete NET_BUFFER Struktur und MDL-Kette frei zu geben.