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