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


структура WDF_DMA_ENABLER_CONFIG (wdfdmaenabler.h)

[Относится только к KMDF]

Структура WDF_DMA_ENABLER_CONFIG предоставляет характеристики для объекта включения DMA.

Синтаксис

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

Члены

Size

Размер данной структуры (в байтах).

Profile

WDF_DMA_PROFILE типизированное значение, определяющее тип операции DMA master шины, которая будет связана с объектом включения DMA.

MaximumLength

Максимальный размер по умолчанию (в байтах), который устройство может обрабатывать в рамках одной передачи DMA. (Драйверы могут переопределить это значение по умолчанию для отдельных транзакций DMA , вызвав WdfDmaTransactionSetMaximumLength.) Если драйвер должен работать в версиях операционных систем Microsoft Windows, поддерживающих не более 16 регистров карт, значение MaximumLength должно быть меньше 65 536.

EvtDmaEnablerFill

Указатель на функцию обратного вызова события EvtDmaEnablerFill драйвера или NULL.

EvtDmaEnablerFlush

Указатель на функцию обратного вызова события EvtDmaEnablerFlush драйвера или NULL.

EvtDmaEnablerDisable

Указатель на функцию обратного вызова события EvtDmaEnablerDisable драйвера или NULL.

EvtDmaEnablerEnable

Указатель на функцию обратного вызова события EvtDmaEnablerEnable драйвера или NULL.

EvtDmaEnablerSelfManagedIoStart

Указатель на функцию обратного вызова события EvtDmaEnablerSelfManagedIoStart драйвера или NULL.

EvtDmaEnablerSelfManagedIoStop

Указатель на функцию обратного вызова события EvtDmaEnablerSelfManagedIoStop драйвера или NULL.

AddressWidthOverride

Задайте нулевое значение, чтобы принять ширину адреса, указанную в разделе Профиль. Драйвер может переопределить ширину адреса профиля , установив для этого элемента значение от 24 до 63. Если драйвер указывает профиль DMA в системном режиме, параметр AddressWidthOverride должен иметь нулевое значение. Если драйвер указывает 32-разрядный профиль DMA, значение AddressWidthOverride не может превышать 32. Член AddressWidthOverride доступен в KMDF версии 1.11 и более поздних. Дополнительные сведения см. в разделе Примечания.

WdmDmaVersionOverride

Установите значение 0, чтобы принять версию DMA по умолчанию. Чтобы запросить DMA версии 3, задайте значение 3. Член WdmDmaVersionOverride доступен в версии 1.11 и более поздних версиях KMDF. DMA версии 3 доступен начиная с Windows 8.

Flags

Побитовое ИЛИ одного или нескольких значений из перечисления WDF_DMA_ENABLER_CONFIG_FLAGS . Элемент Flags доступен в версии 1.11 и более поздних версиях KMDF.

Комментарии

Структура WDF_DMA_ENABLER_CONFIG используется в качестве входного параметра метода WdfDmaEnablerCreate .

Драйверы должны вызывать WDF_DMA_ENABLER_CONFIG_INIT для инициализации структуры WDF_DMA_ENABLER_CONFIG .

В Windows 8 и более поздних версиях, когда драйвер предоставляет ненулевое значение для AddressWidthOverride, платформа запрашивает DMA версии 3 и передает значение AddressWidthOverride через в HAL.

В Windows 7 и Windows Vista, когда драйвер предоставляет ненулевое значение для AddressWidthOverride, платформа использует 32-разрядную или 24-разрядную DMA. Например, если драйвер задает 64-разрядный профиль и предоставляет AddressWidthOverride 32, платформа использует 32-разрядную DMA. Если драйвер указывает 32-разрядный профиль и предоставляет AddressWidthOverride 24, платформа использует 24-разрядную DMA.

Требования

Требование Значение
Минимальная версия KMDF 1,0
Верхняя часть wdfdmaenabler.h (включая Wdf.h)

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

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength