NdisAllocateReassembledNetBufferList-Funktion (ndis/nblapi.h)

Rufen Sie die NdisAllocateReassembledNetBufferList-Funktion auf, um eine fragmentierte NET_BUFFER_LIST-Struktur neu zusammenzufassen.

Syntax

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateReassembledNetBufferList(
                 NET_BUFFER_LIST *FragmentNetBufferList,
  [in, optional] NDIS_HANDLE     NetBufferAndNetBufferListPoolHandle,
  [in]           ULONG           StartOffset,
  [in]           ULONG           DataOffsetDelta,
  [in]           ULONG           DataBackFill,
  [in]           ULONG           AllocateReassembleFlags
);

Parameter

FragmentNetBufferList

Ein Zeiger auf die NET_BUFFER_LIST Struktur, die neu zusammengesetzt werden soll.

[in, optional] NetBufferAndNetBufferListPoolHandle

Ein NET_BUFFER_LIST Strukturpoolhandle, das zuvor vom NdisAllocateNetBufferListPool-Funktion . Der fAllocateNetBuffer-Member der NET_BUFFER_LIST_POOL_PARAMETERS Struktur, die der Aufrufer an NdisAllocateNetBufferListPool übergeben hat, muss auf TRUE und das DataSize-Element auf Null festgelegt sein. Wenn dieser Parameter NULL ist, verwendet NDIS einen internen Pool.

[in] StartOffset

Die Datenmenge, die am Anfang jeder Quellstruktur NET_BUFFER übersprungen werden soll. Dieser Betrag ist zusätzlich zu dem Wert, der im DataOffset-Element der NET_BUFFER-Struktur angegeben wird.

[in] DataOffsetDelta

Die Anzahl der Bytes des verwendeten Datenbereichs , dem in der neu zusammengesetzten NET_BUFFER-Struktur hinzugefügt werden soll.

[in] DataBackFill

Wenn die Zuordnung von nicht verwendetem Datenspeicher ( Ausfüllbereich) erforderlich ist, gibt dieser Parameter die Anzahl der Bytes des nicht verwendeten Datenspeichers zusätzlich zu DataOffsetDelta an, der zugeordnet werden soll.

[in] AllocateReassembleFlags

NDIS-Flags, die mit einem OR-Vorgang kombiniert werden können. Legen Sie diesen Parameter auf 0 (null) fest. Für diese Funktion sind derzeit keine Flags definiert.

Rückgabewert

Wenn der Neuassemblevorgang erfolgreich ist, gibt NdisAllocateReassembledNetBufferList eine neu zusammengesetzte NET_BUFFER_LIST-Struktur zurück. Wenn der Vorgang fehlschlägt, wird NULL zurückgegeben.

Hinweise

NdisAllocateReassembledNetBufferList ordnet, initialisiert und gibt eine neue NET_BUFFER_LIST-Struktur zurück, die eine NET_BUFFER-Struktur und eine MDL-Kette enthält. Die neue NET_BUFFER_LIST-Struktur beschreibt dieselben Daten wie die fragmentierte Quell- NET_BUFFER_LIST Struktur, die der Treiber an FragmentedNetBufferList übergeben hat. Nachdem die in StartOffset angegebene Anzahl von Bytes in jeder fragmentierten NET_BUFFER-Struktur übersprungen wurde, verkettet NDIS die verbleibenden Daten in jeder fragmentierten NET_BUFFER-Struktur in einer neu zusammengesetzten NET_BUFFER-Struktur. Neu zusammengesetzte NET_BUFFER_LIST Strukturen enthalten keine initiale NET_BUFFER_LIST_CONTEXT Struktur.

Rufen Sie die folgenden NdisFreeReassembledNetBufferList-Funktion , um eine neu zusammengesetzte NET_BUFFER_LIST-Struktur und alle zugeordneten NET_BUFFER-Strukturen und MDL-Ketten frei zu geben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis/nblapi.h (include ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_NetBuffer_Function(ndis), NdisAllocateReassembledNetBufferList(ndis), NdisAllocateReassembledNetBufferList_InitFail(ndis)

Weitere Informationen

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool NdisFreeReassembledNetBufferList