Freigeben über


NdisMFreeNetBufferSGList-Funktion (ndis.h)

Achtung

Für ARM- und ARM64-Prozessoren wird dringend empfohlen, dass NDIS-Treiberautoren WDF DMA oder WDM DMA anstelle von NDIS Scatter/Gather DMA verwenden.

Weitere Informationen zu WDF DMA finden Sie unter Behandeln von DMA-Vorgängen in KMDF-Treibern.

Weitere Informationen zu WDM DMA finden Sie in den DMA-bezogenen untergeordneten Themen unter Verwalten von Eingabe/Ausgabe für Treiber.

Bus-master-Miniporttreiber rufen die NdisMFreeNetBufferSGList-Funktion auf, um Punkt-/Sammlungslistenressourcen freizugeben, die durch Aufrufen von NdisMAllocateNetBufferSGList-Funktion .

Syntax

void NdisMFreeNetBufferSGList(
  [in] NDIS_HANDLE          NdisMiniportDmaHandle,
  [in] PSCATTER_GATHER_LIST pSGL,
  [in] PNET_BUFFER          NetBuffer
);

Parameter

[in] NdisMiniportDmaHandle

Ein Handle für einen Kontextbereich, den NDIS zum Verwalten einer DMA-Ressource verwendet. Der Aufrufer hat dieses Handle abgerufen, indem er die NdisMRegisterScatterGatherDma-Funktion .

[in] pSGL

Ein Zeiger auf einen Scatter/Gather-Listenpuffer für Miniporttreiber.

[in] NetBuffer

Ein Zeiger auf die NET_BUFFER Struktur, die dem angegebenen Punkt/Sammlungslistenpuffer zugeordnet ist.

Rückgabewert

Keine

Bemerkungen

Bus-master Miniporttreiber müssen die Funktion NdisMFreeNetBufferSGList aufrufen, um eine Scatter-/Gather-Liste frei zu geben. Ein Miniporttreiber ruft in der Regel NdisMFreeNetBufferSGList über seine MiniportInterruptDPC-Funktion auf, während er einen vollständigen Sendeunterbrechung verarbeitet oder zu einem beliebigen Zeitpunkt, zu dem der Treiber die Scatter/Gather-Liste nicht mehr benötigt. Rufen Sie NdisMFreeNetBufferSGList nicht auf, während der Treiber oder die Hardware weiterhin auf den Arbeitsspeicher zugreift, der durch die NET_BUFFER-Struktur beschrieben wird, die der Scatter/Gather-Liste zugeordnet ist.

Miniport-Treiber können den Puffer freigeben, der im ScatterGatherListBuffer-Parameter der NdisMAllocateNetBufferSGList-Funktion angegeben wurde, nachdem NdisMFreeNetBufferSGList zurückgegeben wurde.

Vor dem Zugriff auf empfangene Daten müssen Miniporttreiber NdisMFreeNetBufferSGList aufrufen, um den Speichercache zu leeren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL DISPATCH_LEVEL
DDI-Complianceregeln Irql_Gather_DMA_Function(ndis)

Weitere Informationen

MiniportInterruptDPC

NDIS Scatter/Gather DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma