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。
在 NdisMFreeNetBufferSGList 返回后,微型端口驱动程序可以释放 在 NdisMAllocateNetBufferSGList 函数的 ScatterGatherListBuffer 参数 中指定的缓冲区。
在访问接收的数据之前,微型端口驱动程序必须调用 NdisMFreeNetBufferSGList 来刷新内存缓存。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | DISPATCH_LEVEL |
DDI 符合性规则 | Irql_Gather_DMA_Function (ndis) |