Freigeben über


NdisAdvanceNetBufferDataStart-Funktion (ndis/nblapi.h)

Rufen Sie die NdisAdvanceNetBufferDataStart-Funktion auf, um den verwendeten Datenbereich freizugeben, der mit dem hinzugefügt wurde NdisRetreatNetBufferDataStart-Funktion .

Syntax

NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
  [in]           NET_BUFFER          *NetBuffer,
  [in]           ULONG               DataOffsetDelta,
  [in]           BOOLEAN             FreeMdl,
  [in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);

Parameter

[in] NetBuffer

Ein Zeiger auf eine zuvor zugewiesene NET_BUFFER Struktur.

[in] DataOffsetDelta

Die Menge des zu freigebenden Datenspeichers . NDIS passt den Wert des DataOffset-Elements der NET_BUFFER-Struktur entsprechend an.

[in] FreeMdl

Ein BOOLEAN-Wert, der, wenn TRUE, NDIS anfordert, um alle MDLs frei zu geben, die im Vorausvorgang nicht verwendet werden. Wenn FreeMdlFALSE ist, behält NDIS nicht verwendete MDLs für nachfolgende Rückzugsvorgänge bei.

[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

Keine

Bemerkungen

Wenn NDIS Arbeitsspeicher zugewiesen hat, um einen entsprechenden Aufruf des NdisRetreatNetBufferDataStart-Funktion und dann NdisAdvanceNetBufferDataStart gibt den Speicher frei, den NdisRetreatNetBufferDataStart zugewiesen hat. Andernfalls verbleibt der Arbeitsspeicher in der MDL, und nur der Wert des DataOffset-Elements der NET_BUFFER-Struktur wird geändert.

NDIS ruft die unter FreeMdl angegebene NetFreeMdl-Funktion auf, wenn NdisAdvanceNetBufferDataStart Arbeitsspeicher freigeben muss. NDIS ruft NetFreeMdl nur auf, um die MDLs und den Arbeitsspeicher freizugeben, die der Treiber in der NetAllocateMdl-Funktion zugewiesen hat.

Wenn Protokolltreiber NdisAdvanceNetBufferDataStart im Empfangspfad aufrufen, um auf die verschiedenen Transportheader zuzugreifen, sollte die MDL-Kette nicht geändert werden, und FreeMdl ist FALSE.

Anforderungen

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

Weitere Informationen

NET_BUFFER

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl