netdma.h) (NET_DMA_CHANNEL_PARAMETERS 结构

注意Windows 8 及更高版本中不支持 NetDMA 接口。
 
NET_DMA_CHANNEL_PARAMETERS 结构指定 DMA 提供程序驱动程序应用于配置 DMA 通道的配置参数。

语法

typedef struct _NET_DMA_CHANNEL_PARAMETERS {
  USHORT           Revision;
  USHORT           Size;
  ULONG            Flags;
  PVOID            CompletionVirtualAddress;
  PHYSICAL_ADDRESS CompletionPhysicalAddress;
  ULONG            ProcessorAffinityMask;
  ULONG            ChannelPriority;
  ULONG            CpuNumber;
  GROUP_AFFINITY   ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;

成员

Revision

此结构的修订号。

对于 Windows 7 和 Windows Server 2008 R2 及更高版本,将此成员设置为 NET_DMA_CHANNEL_PARAMETERS_REVISION_2

对于 Windows Vista 和 Windows Server 2008,将此成员设置为 NET_DMA_CHANNEL_PARAMETERS_REVISION_1

Size

此结构的大小(以字节为单位)。 将此成员设置为 sizeof (NET_DMA_CHANNEL_PARAMETERS) 。

Flags

定义 DMA 通道属性的标志的一组位。 将此成员设置为零。 当前未定义任何标志。

CompletionVirtualAddress

DMA 引擎可以写入 DMA 传输完成状态的内存位置的虚拟地址。 此虚拟地址与 中指定的物理地址相关联
CompletionPhysicalAddress 成员。

CompletionPhysicalAddress

DMA 引擎可以写入 DMA 传输完成状态的内存位置的物理地址。 如果未在 NET_DMA_DESCRIPTOR 结构的 ControlFlags 成员中设置 NET_DMA_STATUS_UPDATE_ON_COMPLETION 标志,则不使用 CompletionPhysicalAddress 。 否则,指定地址处的完成状态值是 64 位宽的 DMA 引擎处理的最新 DMA 描述符的物理地址和其他状态信息的组合。

DMA 描述符的物理地址必须与 64 位边界对齐。 因此,地址的下六位可用于其他信息。 DMA 引擎使用按位 OR 操作将以下状态值与描述符地址合并:

含义
NetDmaTransferStatusActive
最新 DMA 描述符的 DMA 传输未出错,并且 DMA 引擎有更多的描述符要处理。
NetDmaTransferStatusIdle
描述符链接列表中最后一个 DMA 描述符的 DMA 传输已完成,没有错误。
NetDmaTransferStatusSuspend
最新 DMA 描述符的 DMA 传输未出错,并且 DMA 传输已暂停,因为 NetDMA 接口称为 ProviderSuspendDma 函数。 NetDMA 接口调用 ProviderResumeDma 函数后,DMA 引擎将重启传输。
NetDmaTransferStatusHalted
最近 DMA 传输的 DMA 传输因错误或名为 ProviderAbortDma 函数的 NetDMA 接口而中止。
NetDmaTransferStatusArmed
第一个描述符的 DMA 传输尚未完成,并且已完成的描述符地址无效。

ProcessorAffinityMask

一个位图,指示可用于此 DMA 通道的 CPU。 ProcessorAffinityMask 中的每个位都标识一个 CPU。 例如,设置位 0 表示可以使用 CPU 0,设置位 1 表示可以使用 CPU 1,依此。

ChannelPriority

一个 DMA 通道优先级值,该值表示 DMA 通道相对于同一 DMA 引擎上其他 DMA 通道的优先级。 较低优先级设置表示优先级较低的 DMA 通道。 如果此值指示优先级高于硬件支持的优先级,则应使用硬件支持的最高值。 Windows Vista NetDMA 接口将此成员设置为零。

CpuNumber

与 DMA 通道关联的 CPU 编号。 DMA 提供程序驱动程序在从 返回之前设置值
ProviderAllocateDmaChannel 函数。 DMA 引擎将此 CPU 用于与 DMA 通道关联的中断 DPC。 如果 DMA 引擎和计算机配置支持 MSI-X,则中断还应与指示的 CPU 数相关联,除非指示的 CPU 没有可用的 MSI-X 中断。

ProcessorAffinityMaskEx

可以与此 DMA 通道关联的 CPU 的组号和位图。

注解

在使用 DMA 通道之前,NetDMA 接口调用
用于分配和初始化 DMA 通道的 DMA 提供程序驱动程序的 ProviderAllocateDmaChannel 函数。

NetDMA 接口在 ProviderAllocateDmaChannelChannelParameters 参数处提供NET_DMA_CHANNEL_PARAMETERS结构。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
标头 netdma.h (包括 Netdma.h)

另请参阅

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma