Condividi tramite


Funzione NdisMFreeNetBufferSGList (ndis.h)

Cautela

Per i processori ARM e ARM64, è consigliabile che i writer di driver NDIS usino DMA WDF o DMA WDM anziché NDIS Scatter/Gather DMA.

Per altre informazioni su DMA di WDF, vedere Gestione delle operazioni DMA nei driver KMDF.

Per altre informazioni su WDM DMA, vedere gli argomenti figlio correlati a DMA di Gestione dell'input/output per i driver.

I driver miniport master bus chiamano la funzione NdisMFreeNetBufferSGList per liberare le risorse di elenco a dispersione/raccolta allocate chiamando il funzione NdisMAllocateNetBufferSGList.

Sintassi

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

Parametri

[in] NdisMiniportDmaHandle

Handle per un'area di contesto NDIS usata per gestire una risorsa DMA. Il chiamante ha ottenuto questo handle chiamando il funzione NdisMRegisterScatterGatherDma.

[in] pSGL

Puntatore a un buffer elenco a dispersione/raccolta del driver miniport.

[in] NetBuffer

Puntatore alla struttura NET_BUFFER associata al buffer di elenco a dispersione/raccolta specificato.

Valore restituito

Nessuno

Osservazioni

I driver miniport master del bus devono chiamare la funzione NdisMFreeNetBufferSGList per liberare un elenco a dispersione/raccolta. Un driver miniport chiama in genere NdisMFreeNetBufferSGList dalla relativa funzione MiniportInterruptDPC mentre gestisce un interrupt completo di invio o in qualsiasi momento che il driver non richiede più l'elenco di dispersione/raccolta. Non chiamare NdisMFreeNetBufferSGList mentre il driver o l'hardware sta ancora accedendo alla memoria descritta dalla struttura NET_BUFFER associata all'elenco di dispersione/raccolta.

I driver Miniport possono liberare il buffer specificato nel parametro ScatterGatherListBuffer del NdisMAllocateNetBufferSGList dopo NdisMFreeNetBufferSGList restituisce.

Prima di accedere ai dati ricevuti, i driver miniport devono chiamare NdisMFreeNetBufferSGList per scaricare la cache di memoria.

Fabbisogno

Requisito Valore
client minimo supportato Supportato in NDIS 6.0 e versioni successive.
piattaforma di destinazione Universale
intestazione ndis.h (include Ndis.h)
libreria Ndis.lib
IRQL DISPATCH_LEVEL
regole di conformità DDI Irql_Gather_DMA_Function(ndis)

Vedere anche

miniportInterruptDPC

DMA a dispersione/raccolta NDIS

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma