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 |
---|---|
|
NdisRetreatNetBufferDataStart hat den verwendeten Datenspeicherplatz entweder mithilfe des nicht verwendeten Datenbereichs oder durch Zuweisung eines neuen Speichers erfolgreich zugeordnet. |
|
Fehler bei NdisRetreatNetBufferDataStart aufgrund unzureichender Ressourcen. |
|
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) |