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) |