Freigeben über


NdisRetreatNetBufferListDataStart-Funktion (ndis/nblapi.h)

Rufen Sie die NdisRetreatNetBufferListDataStart-Funktion auf, um den verwendeten Datenspeicherplatz in allen NET_BUFFER-Strukturen in einer NET_BUFFER_LIST-Struktur zu erhöhen.

Syntax

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

Parameter

[in] NetBufferList

Ein Zeiger auf eine zuvor zugeordnete NET_BUFFER_LIST-Struktur.

[in] DataOffsetDelta

Die Menge des zusätzlichen verwendeten Datenspeicherplatzes in jeder NET_BUFFER-Struktur. Wenn nicht genügend ungenutzter Datenspeicher vorhanden ist, um die Anforderung zu erfüllen, weist NDIS mehr Arbeitsspeicher zu.

[in] DataBackFill

Wenn NDIS Arbeitsspeicher zuweisen muss, gibt dieser Parameter die Menge des Datenspeichers zusätzlich zum Wert des zuzuordnenden DataOffsetDelta-Parameters an.

[in, optional] AllocateMdlHandler

Ein optionaler Einstiegspunkt für eine NetAllocateMdl-Funktion . Wenn der Aufrufer einen Einstiegspunkt für die NetAllocateMdl-Funktion angibt, ruft NDIS NetAllocateMdl auf, um eine MDL und Arbeitsspeicher zuzuweisen.

[in, optional] FreeMdlHandler

Ein optionaler Einstiegspunkt für eine NetFreeMdl-Funktion . Wenn der Aufrufer einen Einstiegspunkt für die NetFreeMdl-Funktion angibt, ruft NDIS NetFreeMdl auf, um eine MDL und Arbeitsspeicher freizugeben.

Rückgabewert

NdisRetreatNetBufferListDataStart gibt eine der folgenden Rückgaben zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart hat den Datenspeicherplatz in allen NET_BUFFER-Strukturen entweder durch Reduzierung des Werts des DataOffset-Elements oder durch Zuweisung eines neuen Speichers erfolgreich zugeordnet.
NDIS_STATUS_RESOURCES
Fehler bei NdisRetreatNetBufferListDataStart aufgrund unzureichender Ressourcen.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferListDataStart ist aus anderen Gründen als unzureichenden Ressourcen fehlgeschlagen.

Hinweise

Das Aufrufen von NdisRetreatNetBufferListDataStart entspricht dem Aufrufen von NdisRetreatNetBufferDataStart-Funktion für jede NET_BUFFER-Struktur in der NET_BUFFER_LIST-Struktur . NdisRetreatNetBufferListDataStart versucht, die Anforderung zu erfüllen, indem der Wert des DataOffset-Elements in jeder NET_BUFFER-Struktur reduziert wird. Wenn nicht genügend ungenutzter Datenspeicher verfügbar ist, ordnet diese Funktion einen neuen Puffer und MDL zu und verkettet die neue MDL dann an den Anfang der MDL-Kette auf der NET_BUFFER-Struktur.

Rufen Sie die folgenden NdisAdvanceNetBufferListDataStart-Funktion zum Freigeben des Datenbereichs, der in einem vorherigen NdisRetreatNetBufferListDataStart-Aufruf beansprucht wurde. Alternativ kann der Treiber die Die NdisAdvanceNetBufferDataStart-Funktion für jede NET_BUFFER-Struktur in der NET_BUFFER_LIST-Struktur. Das Aufrufen von NdisAdvanceNetBufferListDataStart ist effizienter.

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)

Weitere Informationen

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl