Поделиться через


структура NET_DMA_CHANNEL_PARAMETERS (netdma.h)

Примечание Интерфейс NetDMA не поддерживается в Windows 8 и более поздних версиях.
 
Структура 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_STATUS_UPDATE_ON_COMPLETION не задан в элементе ControlFlags структуры NET_DMA_DESCRIPTOR , параметр CompletionPhysicalAddress не используется. В противном случае значение состояния завершения по указанному адресу представляет собой 64-разрядную комбинацию физического адреса последнего дескриптора DMA, обработанного обработчиком DMA, и дополнительных сведений о состоянии.

Физический адрес дескриптора DMA должен быть выровнен по 64-разрядным границам. Таким образом, шесть нижних битов адреса доступны для других сведений. Подсистема DMA объединяет следующие значения состояния с адресом дескриптора с помощью побитовой операции OR:

Значение Значение
NetDmaTransferStatusActive
Передача DMA для последнего дескриптора DMA завершена без ошибок, а подсистема DMA имеет больше дескрипторов для обработки.
NetDmaTransferStatusIdle
Передача DMA для последнего дескриптора DMA в связанном списке дескрипторов завершена без ошибок.
NetDmaTransferStatusSuspend
Передача DMA для последнего дескриптора DMA завершена без ошибок, а передача DMA приостанавливается, так как интерфейс NetDMA называется функцией ProviderSuspendDma . Подсистема DMA перезапустит передачу после того, как интерфейс NetDMA вызовет функцию ProviderResumeDma .
NetDmaTransferStatusHalted
Передача DMA для последней передачи DMA была прервана из-за ошибок или из-за того, что интерфейс NetDMA вызвал функцию ProviderAbortDma .
NetDmaTransferStatusArmed
Передача DMA для первого дескриптора не завершена, и адрес завершенного дескриптора недопустим.

ProcessorAffinityMask

Растровое изображение, показывающее процессоры, доступные для использования с этим каналом DMA. Каждый бит в ProcessorAffinityMask определяет ЦП. Например, задание бита 0 означает, что можно использовать ЦП 0, значение бита 1 — возможность использования ЦП 1 и т. д.

ChannelPriority

Значение приоритета канала DMA, представляющее приоритет для канала DMA относительно других каналов DMA в том же механизме DMA. Более низкий приоритет указывает на канал DMA с более низким приоритетом. Если это значение указывает на более высокий приоритет, чем поддерживает оборудование, следует использовать наибольшее значение, которое поддерживает оборудование. Интерфейс NetDMA Windows Vista задает для этого элемента нулевое значение.

CpuNumber

Номер ЦП, связанный с каналом DMA. Драйвер поставщика DMA задает значение перед возвратом из
Функция ProviderAllocateDmaChannel . Подсистема DMA использует этот ЦП для прерываний DPC, связанных с каналом DMA. Если подсистема DMA и конфигурация компьютера поддерживают MSI-X, прерывание также должно быть связано с указанным номером ЦП, если для указанного ЦП не было доступных прерываний MSI-X.

ProcessorAffinityMaskEx

Номер группы и растровое изображение ЦП, с которыми может быть связан этот канал DMA.

Комментарии

Перед использованием канала DMA интерфейс NetDMA вызывает
Функция ProviderAllocateDmaChannel драйвера поставщика DMA для выделения и инициализации канала DMA.

Интерфейс NetDMA предоставляет структуру NET_DMA_CHANNEL_PARAMETERS в параметре ChannelParametersобъекта ProviderAllocateDmaChannel.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Верхняя часть netdma.h (включая Netdma.h)

См. также раздел

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma