NdisRetreatNetBufferDataStart-Funktion (ndis/nblapi.h)

Rufen Sie die NdisRetreatNetBufferDataStart-Funktion auf, um auf mehr verwendeten Datenbereich in der MDL-Kette einer NET_BUFFER-Struktur zuzugreifen.

Syntax

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

Parameter

[in] NetBuffer

Ein Zeiger auf eine zuvor zugeordnete NET_BUFFER-Struktur.

[in] DataOffsetDelta

Die Menge des verwendeten Datenspeicherplatzes , der hinzugefügt werden soll. NDIS passt den DataOffset-Member der NET_BUFFER-Struktur entsprechend an. Wenn nicht genügend ungenutzter Datenspeicher vorhanden ist, um die Anforderung zu erfüllen, weist NDIS zusätzlichen Arbeitsspeicher zu.

[in] DataBackFill

Wenn NDIS Arbeitsspeicher zuweisen muss, gibt dieser Parameter zusätzlich zum Wert des DataOffsetDelta-Parameters die Menge des zuzuordnenden Datenspeicherplatzes 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.

Rückgabewert

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

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart hat den verwendeten Datenspeicherplatz entweder mithilfe des nicht verwendeten Datenbereichs oder durch Zuweisung eines neuen Speichers erfolgreich zugeordnet.
NDIS_STATUS_RESOURCES
Fehler bei NdisRetreatNetBufferDataStart aufgrund unzureichender Ressourcen.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart ist aus anderen Gründen als unzureichenden Ressourcen fehlgeschlagen.

Hinweise

NdisRetreatNetBufferDataStart versucht, die Anforderung zu erfüllen, indem der Wert des DataOffset-Elements der NET_BUFFER-Struktur reduziert wird.

Wenn nicht genügend ungenutzter Datenspeicher vorhanden ist, ordnet diese Funktion einen neuen Puffer und eine MDL zu, um den neuen Puffer zu beschreiben, und verkettet die neue MDL an den Anfang der MDL-Kette. NDIS ruft die unter AllocateMdl angegebene NetAllocateMdl-Funktion auf, um die MDL und den Arbeitsspeicher zuzuweisen. Die NetAllocateMdl-Funktion kann eine beliebige Zuordnungsmethode verwenden, die die Entwurfsanforderungen des Treibers erfüllt.

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

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

NdisAdvanceNetBufferDataStart

NetAllocateMdl