перечисление 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, установите для элемента WdmDmaVersionOverrideWDF_DMA_ENABLER_CONFIG значение 3. Этот флаг применяется ко всем профилям DMA. Если он задан, WDF не фрагментируется WDFDMATRANSACTION, созданные с помощью этого включения, в несколько передач DMA. Если это невозможно, попытки инициализации или выполнения транзакции завершаются сбоем. Этот параметр предназначен для устройств, которым необходимо получать все данные в рамках одной операции DMA. Драйверы также могут указать это значение на уровне транзакции с помощью WdfDmaTransactionSetSingleTransferRequirement. Дополнительные сведения см. в разделе Использование DMA с одной передачей. |
Комментарии
Можно указать допустимое побитовое ИЛИ значений на этой странице для элемента Flags структуры WDF_DMA_ENABLER_CONFIG .
Требования
Требование | Значение |
---|---|
Минимальная версия KMDF | 1.11 |
Верхняя часть | wdfdmaenabler.h (включая Wdf.h) |