Freigeben über


NdisMFreeNetBufferSGList-Funktion (ndis.h)

Vorsicht

Für ARM- und ARM64-Prozessoren empfehlen wir dringend, 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 Drivers.

Weitere Informationen zu WDM DMA finden Sie in den DMA-bezogenen untergeordneten Themen Managing Input/Output for Drivers.

Busmaster-Miniporttreiber rufen die NdisMFreeNetBufferSGList Funktion auf, um XY/Gather-Listenressourcen freizugeben, die durch Aufrufen der NdisMAllocateNetBufferSGList Funktion.

Syntax

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

Parameter

[in] NdisMiniportDmaHandle

Ein Handle zu einem Kontextbereich, den NDIS zum Verwalten einer DMA-Ressource verwendet. Der Aufrufer hat dieses Handle durch Aufrufen des NdisMRegisterScatterGatherDma Funktion.

[in] pSGL

Ein Zeiger auf einen Punkt-/Sammellistenpuffer für Miniporttreiber.

[in] NetBuffer

Ein Zeiger auf die NET_BUFFER Struktur, die dem angegebenen Punkt/Gather-Listenpuffer zugeordnet ist.

Rückgabewert

Nichts

Bemerkungen

Busmaster-Miniporttreiber müssen die NdisMFreeNetBufferSGList Funktion aufrufen, um eine Punkt/Sammelliste freizuschalten. Ein Miniporttreiber ruft in der Regel NdisMFreeNetBufferSGList- von der MiniportInterruptDPC--Funktion auf, während ein Sendevorgang vollständig unterbrochen wird oder zu jedem Zeitpunkt, zu dem der Treiber die Punkt/Gather-Liste nicht mehr benötigt. Rufen Sie nicht NdisMFreeNetBufferSGList- auf, während der Treiber oder die Hardware weiterhin auf den Speicher zugreift, der durch die NET_BUFFER Struktur beschrieben wird, die der Punkt/Gather-Liste zugeordnet ist.

Miniport-Treiber können den Puffer freigeben, der im ScatterGatherListBuffer Parameter des 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
mindestens unterstützte Client- Unterstützt in NDIS 6.0 und höher.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- DISPATCH_LEVEL
DDI-Complianceregeln Irql_Gather_DMA_Function(ndis)

Siehe auch

MiniportInterruptDPC-

NDIS Scatter/Gather DMA-

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma