структура 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) |
См. также раздел
EvtDmaEnablerSelfManagedIoStart