структура NET_DMA_CHANNEL_PARAMETERS (netdma.h)
Синтаксис
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:
Значение | Значение |
---|---|
|
Передача DMA для последнего дескриптора DMA завершена без ошибок, а подсистема DMA имеет больше дескрипторов для обработки. |
|
Передача DMA для последнего дескриптора DMA в связанном списке дескрипторов завершена без ошибок. |
|
Передача DMA для последнего дескриптора DMA завершена без ошибок, а передача DMA приостанавливается, так как интерфейс NetDMA называется функцией ProviderSuspendDma . Подсистема DMA перезапустит передачу после того, как интерфейс NetDMA вызовет функцию ProviderResumeDma . |
|
Передача DMA для последней передачи DMA была прервана из-за ошибок или из-за того, что интерфейс NetDMA вызвал функцию ProviderAbortDma . |
|
Передача 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) |