DMA_CHANNELS_CPU_AFFINITY_HANDLER回调函数 (netdma.h)
在 Windows 8 及更高版本中。
语法
DMA_CHANNELS_CPU_AFFINITY_HANDLER DmaChannelsCpuAffinityHandler;
NTSTATUS DmaChannelsCpuAffinityHandler(
[in] PVOID ProviderContext,
[in] PNET_DMA_CHANNEL_CPU_AFFINITY CpuAffinityArray,
[in] ULONG CpuAffinityArraySize
)
{...}
参数
[in] ProviderContext
标识 DMA 提供程序上下文区域的指针。 DMA 提供程序驱动程序在调用 NetDMA 时将此指针传递给 NetDMA NetDmaRegisterProvider 函数。
[in] CpuAffinityArray
指向
[in] CpuAffinityArraySize
CpuAffinityArray 处缓冲区的长度(以字节为单位)。
返回值
ProviderSetDmaChannelCpuAffinity 返回以下状态值之一:
返回代码 | 描述 |
---|---|
|
作已成功完成。 |
|
作由于资源不足而失败。 |
|
由于未指定的原因,作失败。 |
言论
NetDMA 接口调用 DMA 提供程序驱动程序的 ProviderSetDmaChannelCpuAffinity 函数来指定 DMA 提供程序的 DMA 通道的 CPU 关联。 NetDMA 在上下文中调用 ProviderSetDmaChannelCpuAffinity NetDmaRegisterProvider 函数。
由于启动 DMA 提供程序之前不知道 DMA 通道的实际数目,因此 NetDMA 接口指定最大通道数的 CPU 相关性。 DMA 提供程序在 MaxDmaChannelCount 成员中提供的最大通道数传递给 NetDmaRegisterProvider 函数的 NET_DMA_PROVIDER_CHARACTERISTICS 结构。
在不支持 MSI-X 平台上的计算机上,可以为中断 DPC 指定 CPU 关联,但不能为中断指定 CPU 关联。 在这种情况下,NetDMA 接口指定 ProcessorAffinityMask 成员中中断 DPC 的可能 CPU 列表 NET_DMA_CHANNEL_PARAMETERS 结构。
在支持 MSI-X 的计算机上,DMA 提供程序驱动程序可以在处理 MSI-X 时指定中断相关性 IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP。
NetDMA 在 IRQL = PASSIVE_LEVEL 调用 ProviderSetDmaChannelCpuAffinity。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 中支持 NetDMA 1.0 驱动程序。 |
目标平台 | 窗户 |
标头 | netdma.h (包括 Netdma.h) |
IRQL | PASSIVE_LEVEL |