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


структура 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

Физический адрес расположения памяти, в котором подсистема 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 перезагрузит передачу после вызова функции ProviderResumeDma интерфейса NetDMA.
NetDmaTransferStatusHalted
Передача DMA для последней передачи DMA была прервана из-за ошибок или из-за того, что интерфейс NetDMA вызвал функцию ProviderAbortDma.
NetDmaTransferStatusArmed
Передача DMA для первого дескриптора не завершена, а полный адрес дескриптора недопустим.

ProcessorAffinityMask

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

ChannelPriority

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

CpuNumber

Номер ЦП, связанный с каналом DMA. Драйвер поставщика DMA задает значение перед возвратом из драйвера поставщика DMA.
функция ProviderAllocateDmaChannel. Модуль DMA использует этот ЦП для прерывания ЦП, связанных с каналом 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 (include Netdma.h)

См. также

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma