Función NdisMFreeNetBufferSGList (ndis.h)

Precaución

En el caso de los procesadores ARM y ARM64, se recomienda encarecidamente que los escritores de controladores NDIS usen WDF DMA o WDM DMA en lugar de NDIS Scatter/Gather DMA.

Para obtener más información sobre WDF DMA, vea Control de operaciones de DMA en controladores kmDF.

Para obtener más información sobre WDM DMA, consulte los temas secundarios relacionados con DMA de Administración de entrada y salida para controladores.

Los controladores de minipuerto de Bus-master llaman a la función NdisMFreeNetBufferSGList para liberar recursos de lista de dispersión y recopilación asignados mediante una llamada a Función NdisMAllocateNetBufferSGList .

Sintaxis

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

Parámetros

[in] NdisMiniportDmaHandle

Identificador de un área de contexto que NDIS usa para administrar un recurso DMA. El autor de la llamada obtuvo este identificador mediante una llamada a Función NdisMRegisterScatterGatherDma .

[in] pSGL

Puntero a un búfer de lista de dispersión o recopilación de controladores de minipuerto.

[in] NetBuffer

Puntero a la estructura NET_BUFFER asociada al búfer de lista de dispersión o recopilación especificado.

Valor devuelto

None

Observaciones

Los controladores de minipuerto de Bus-master deben llamar a la función NdisMFreeNetBufferSGList para liberar una lista de dispersión o recopilación. Normalmente, un controlador de miniporte llama a NdisMFreeNetBufferSGList desde su función MiniportInterruptDPC mientras controla una interrupción completa de envío o en cualquier momento que el controlador ya no requiera la lista de dispersión o recopilación. No llame a NdisMFreeNetBufferSGList mientras el controlador o el hardware todavía acceden a la memoria descrita por la estructura de NET_BUFFER asociada a la lista de dispersión y recopilación.

Los controladores de miniport pueden liberar el búfer especificado en el parámetro ScatterGatherListBuffer de la función NdisMAllocateNetBufferSGList después de que se devuelva NdisMFreeNetBufferSGList .

Antes de acceder a los datos recibidos, los controladores de minipuerto deben llamar a NdisMFreeNetBufferSGList para vaciar la memoria caché.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Gather_DMA_Function(ndis)

Consulte también

MiniportInterruptDPC

Dispersión y recopilación de DMA de NDIS

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma