функция обратного вызова 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 в вызове функцию NetDmaRegisterProvider.
[in] CpuAffinityArray
Указатель на массив NET_DMA_CHANNEL_CPU_AFFINITY структуры, указывающие сходство ЦП для каналов DMA, связанных с поставщиком DMA.
[in] CpuAffinityArraySize
Длина буфера в байтах в CpuAffinityArray.
Возвращаемое значение
ProviderSetDmaChannelCpuAffinity возвращает одно из следующих значений состояния:
Возвращаемый код | Описание |
---|---|
|
Операция успешно завершена. |
|
Операция завершилась ошибкой из-за нехватки ресурсов. |
|
Операция завершилась ошибкой из-за неуказаемых причин. |
Замечания
Интерфейс NetDMA вызывает драйвер поставщика DMA ProviderSetDmaChannelCpuAffinity функцию, чтобы указать сходство ЦП каналов DMA поставщика DMA. NetDMA вызывает ProviderSetDmaChannelCpuAffinity в контексте функцию NetDmaRegisterProvider.
Так как фактическое число каналов DMA не известно до запуска поставщика DMA, интерфейс NetDMA указывает сходство ЦП для максимального количества каналов. Поставщик DMA предоставляет максимальное количество каналов в MaxDmaChannelCount члена NET_DMA_PROVIDER_CHARACTERISTICS структура, которая передается функции NetDmaRegisterProvider.
На компьютерах, не поддерживающих платформы MSI-X, можно указать сходство ЦП для прерываний, но не для прерываний. В этом случае интерфейс NetDMA указывает список возможных ЦП прерывания DPC в элементе ProcessorAffinityMask NET_DMA_CHANNEL_PARAMETERS структура.
На компьютерах, поддерживающих MSI-X, драйвер поставщика DMA может указать сходство прерываний при обработке IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP.
NetDMA вызывает ProviderSetDmaChannelCpuAffinity в IRQL = PASSIVE_LEVEL.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается для драйверов NetDMA 1.0 в Windows Vista. |
целевая платформа | Виндоус |
заголовка | netdma.h (include Netdma.h) |
IRQL | PASSIVE_LEVEL |