netdma.h) (NET_DMA_CHANNEL_PARAMETERS 结构
语法
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 操作将以下状态值与描述符地址合并:
值 | 含义 |
---|---|
|
最新 DMA 描述符的 DMA 传输未出错,并且 DMA 引擎有更多的描述符要处理。 |
|
描述符链接列表中最后一个 DMA 描述符的 DMA 传输已完成,没有错误。 |
|
最新 DMA 描述符的 DMA 传输未出错,并且 DMA 传输已暂停,因为 NetDMA 接口称为 ProviderSuspendDma 函数。 NetDMA 接口调用 ProviderResumeDma 函数后,DMA 引擎将重启传输。 |
|
最近 DMA 传输的 DMA 传输因错误或名为 ProviderAbortDma 函数的 NetDMA 接口而中止。 |
|
第一个描述符的 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 接口在 ProviderAllocateDmaChannel 的 ChannelParameters 参数处提供NET_DMA_CHANNEL_PARAMETERS结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
标头 | netdma.h (包括 Netdma.h) |