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 和更新版本支援。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Gather_DMA_Function(ndis) |