DMA_APPEND_HANDLER回调函数 (netdma.h)
ProviderAppendDma 函数将 DMA 描述符的链接列表追加到 DMA 通道上的最后一个描述符。
语法
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
参数
[in] ProviderChannelContext
标识 DMA 通道的上下文区域的指针。 DMA 提供程序将此句柄返回到在 的 pProviderChannelContext 参数中指定的位置的 NetDMA ProviderAllocateDmaChannel 函数。
[in] DescriptorVirtualAddress
指向 DMA 描述符链接列表中的第一个 NET_DMA_DESCRIPTOR 结构的虚拟地址的指针。 相应的物理地址在 DescriptorPhysicalAddress 参数中指定。
[in] DescriptorPhysicalAddress
指向 DMA 描述符链接列表中第一个 DMA 描述符的物理地址的指针。 相应的虚拟地址在 DescriptorVirtualAddress 参数中指定。
[in] DescriptorCount
DescriptorVirtualAddress 处的 DMA 描述符数。
返回值
ProviderAppendDma 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
操作因未指定的原因而失败。 |
注解
NetDMA 接口调用 DMA 提供程序驱动程序的 ProviderAppendDma 函数,以在 DMA 通道上的最后一个描述符后面追加 DMA 描述符的链接列表。 启动 DMA 传输后,NetDMA 接口可以调用 ProviderAppendDma 任意次数。 但是,NetDMA 接口必须在通道重置或中止后或在首次分配 DMA 通道后调用 ProviderStartDma 函数。
如果活动传输中的当前描述符是最后一个描述符,则 DMA 引擎必须重新读取最后一个描述符。 最后一个NET_DMA_DESCRIPTOR结构中的 NextDescriptor 成员应具有新地址,并且 DMA 引擎应继续使用下一个描述符。 如果当前描述符不是最后一个描述符,则 DMA 引擎可以继续处理没有其他任务的 DMA 描述符。
NetDMA 在 IRQL <= DISPATCH_LEVEL 调用 ProviderAppendDma。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 支持 Windows Server 2008 中的 NetDMA 2.0 驱动程序。 支持 Windows Server 2008 中的 NetDMA 1.1 驱动程序。 支持 Windows Server 2008 和 Windows Vista 中的 NetDMA 1.0 驱动程序。 |
目标平台 | Windows |
标头 | netdma.h (包括 Netdma.h) |
IRQL | <= DISPATCH_LEVEL |