перечисление WDF_DMA_ENABLER_CONFIG_FLAGS (wdfdmaenabler.h)
[Применимо только к KMDF]
Тип перечисления WDF_DMA_ENABLER_CONFIG_FLAGS определяет флаги, используемые в WDF_DMA_ENABLER_CONFIG структуре драйвера.
Синтаксис
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;
Константы
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION Значение: 0x00000001 Флаг WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION применяется только к следующим профилям DMA:
По умолчанию, если WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION не задан, а WDF_DMA_PROFILE является одним из них в предыдущем списке, WDF создает список точечной или сборной списков, используемых транзакцией этого адаптера DMA. Объектов. Записи списка инициализированы, чтобы разрешить максимальное указанное значение. Длина передачи. При выполнении транзакции WDF вызывает функцию записи BuildScatterGatherList. Перенаправление драйверов хода выполнения не должен устанавливать этот флаг и должен использовать один из четырех профилей, показанных ранее. Если WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION задано, и WDF_DMA_PROFILE является одним из тех, которые в предыдущем списке, WDF не создает список lookaside. При выполнении транзакции WDF вызывает GetScatterGatherList. Настройка WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION может привести к сокращению использования памяти, особенно если максимальная длина передачи велика. Однако установка этого флага может привести к сбою выполнения операций DMA в условиях с низкой памятью. Чтобы гарантировать ход выполнения пересылки при установке WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION, драйвер может использовать отдельный средства включения DMA или отскочить передачу через общий буфер. |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER Значение: 0x00000002 Флаг WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER доступен начиная с версии 1.19 KMDF. Этот флаг также требует DMA версии 3. Чтобы выбрать DMA версии 3, задайте WdmDmaVersionOverride член WDF_DMA_ENABLER_CONFIG 3. Этот флаг применяется ко всем профилям DMA. При установке WDF не фрагментируется wDFDMATRANSACTION, созданного с помощью этого включения, в несколько передач DMA. Если это невозможно, пытается инициализировать или выполнить транзакцию сбоем. Этот параметр предназначен для устройств, которые должны получать все данные в одной операции DMA. Драйверы также могут указывать это на уровне транзакции с WdfDmaTransactionSetSingleTransferRequirement. Дополнительные сведения см. в разделе Использованиеодноадресной передачи DMA. |
Замечания
Можно указать допустимые побитовые значения или значения на этой странице для элемента Flags структуры WDF_DMA_ENABLER_CONFIG.
Требования
Требование | Ценность |
---|---|
минимальная версия KMDF | 1.11 |
Заголовок | wdfdmaenabler.h (include Wdf.h) |