DMA_START_HANDLER回调函数 (netdma.h)
Windows 8 及更高版本中。
ProviderStartDma 函数在指定的 DMA 通道上启动 DMA 传输。
语法
DMA_START_HANDLER DmaStartHandler;
NTSTATUS DmaStartHandler(
[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 描述符数。
返回值
ProviderStartDma 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
由于资源不足,操作失败。 |
|
操作由于未指定的原因而失败。 |
注解
NetDMA 接口调用 DMA 提供程序驱动程序的 ProviderStartDma 函数来启动 DMA 传输。 分配 DMA 通道后,NetDMA 接口可以随时调用 ProviderStartDma 。 NetDMA 接口在调用 ProviderAbortDma、ProviderResetChannel 或后,必须调用 ProviderStartDma DMA 通道的 ProviderAllocateDmaChannel 函数。
DMA 传输的源是 DMA 描述符的链接列表。 DescriptorVirtualAddress 参数中NET_DMA_DESCRIPTOR结构的 NextDescriptor 成员包含链接列表中下一个NET_DMA_DESCRIPTOR结构的物理地址。
ProviderStartDma 启动初始 DMA 传输后,NetDMA 接口可以调用 ProviderAppendDma 函数,以将其他数据追加到传输中。
NetDMA 在 IRQL <= DISPATCH_LEVEL 调用 ProviderStartDma。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 支持 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 |