共用方式為


NdisMFreeNetBufferSGList 函式 (ndis.h)

警告

針對 ARM 和 ARM64 處理器,我們強烈建議 NDIS 驅動程式寫入器使用 WDF DMA 或 WDM DMA,而不是 NDIS 散佈圖/收集 DMA。

如需 WDF DMA 的詳細資訊,請參閱 處理 KMDF 驅動程式中的 DMA 作業

如需 WDM DMA 的詳細資訊,請參閱 管理驅動程式輸入/輸出的 DMA 相關子主題。

總線主機迷你埠驅動程式會呼叫 NdisMFreeNetBufferSGList 函式,以釋放藉由呼叫 所配置的散佈/收集清單資源 NdisMAllocateNetBufferSGList 函式。

語法

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

參數

[in] NdisMiniportDmaHandle

NDIS 用來管理 DMA 資源的內容區域的句柄。 呼叫端藉由呼叫 來取得此句柄 NdisMRegisterScatterGatherDma 函式。

[in] pSGL

迷你埠驅動程式散佈/收集清單緩衝區的指標。

[in] NetBuffer

與指定散佈/收集清單緩衝區相關聯的 NET_BUFFER 結構的指標。

傳回值

備註

總線主要迷你埠驅動程序必須呼叫 NdisMFreeNetBufferSGList 函式以釋放散佈/收集清單。 迷你埠驅動程式通常會從 MiniportInterruptDPC 函式呼叫 NdisMFreeNetBufferSGList,同時處理傳送完整中斷,或驅動程式不再需要散佈/收集清單。 當驅動程式或硬體仍在存取與散佈/收集清單相關聯的NET_BUFFER結構所描述的記憶體時,請勿呼叫 NdisMFreeNetBufferSGList

Miniport 驅動程式可以在 NdisMFreeNetBufferSGList 傳回之後,釋放 NdisMAllocateNetBufferSGList 函式的 ScatterGatherListBuffer 參數中指定的緩衝區。

存取收到的數據之前,迷你埠驅動程序必須呼叫 NdisMFreeNetBufferSGList 來清除記憶體快取。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL DISPATCH_LEVEL
DDI 合規性規則 Irql_Gather_DMA_Function (ndis)

另請參閱

MiniportInterruptDPC

NDIS 散佈圖/收集 DMA

NET_BUFFER

NdisMAllocateNetBufferSGList

NdisMRegisterScatterGatherDma