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


Функция WdfDmaEnablerConfigureSystemProfile (wdfdmaenabler.h)

[Применимо только к KMDF]

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

Синтаксис

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

Параметры

[in] DmaEnabler

Дескриптор объекта включения DMA.

[in] ProfileConfig

Указатель на структуру WDF_DMA_SYSTEM_PROFILE_CONFIG. Драйверы должны инициализировать эту структуру путем вызова WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.

[in] ConfigDirection

Значение WDF_DMA_DIRECTIONтипа, указывающее направление операции передачи DMA. Если значение WDF_DMA_PROFILE для этого включения не WdfDmaProfileSystemDuplex, платформа игнорирует этот параметр.

Возвращаемое значение

WdfDmaEnablerConfigureSystemProfile возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений.

Код возврата Описание
STATUS_NOT_SUPPORTED
Драйвер запросил конфигурацию DMA, которая не поддерживается в текущей операционной системе.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Драйвер предоставил значение NULL в параметре ProfileConfig.
STATUS_INFO_LENGTH_MISMATCH
Элемент size структуры, на который указывает параметр profileConfig ProfileConfig, не равен размеру структуры WDF_DMA_SYSTEM_PROFILE_CONFIG.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Элемент DmaDescriptor структуры, на который указывает параметр ProfileConfig , имеет значение NULL или параметр ConfigDirection содержит недопустимое значение.

Замечания

Перед вызовом WdfDmaEnablerConfigureSystemProfileдрайвер должен вызвать WdfDmaEnablerCreate для создания объекта включения.

Драйвер обычно вызывает WdfDmaEnablerConfigureSystemProfile из функции обратного вызова EvtDevicePrepareHard ware.

Если драйвер указал дуплексный профиль при вызове WdfDmaEnablerCreate, параметр WdfDmaEnablerConfigureSystemProfile метода ConfigDirection значение должно быть WdfDmaDirectionReadFromDevice, чтобы получить структуру DMA_ADAPTER для операций чтения и WdfDmaDirectionWriteToDevice, чтобы получить структуру DMA_ADAPTER для операций записи.

Если включение DMA является дуплексным включением, драйвер должен инициализировать определенное направление, прежде чем он сможет использовать его.

Если драйвер не указал дуплексный профиль, драйвер может указать WdfDmaDirectionReadFromDevice или WdfDmaDirectionWriteToDevice.

Примеры

В следующем примере кода используется функция обратного вызова драйвера EvtDevicePrepareHardware. В этом примере инициализируется структура WDF_DMA_SYSTEM_PROFILE_CONFIG и вызывается WdfDmaEnablerConfigureSystemProfile.


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

Требования

Требование Ценность
Минимально поддерживаемый клиент Windows 8
целевая платформа универсальный
минимальная версия KMDF 1.11
Заголовок wdfdmaenabler.h (include Wdf.h)
Библиотека Wdf01000.sys (см. управление версиями библиотеки Платформы).)
IRQL PASSIVE_LEVEL
правил соответствия DDI DriverCreate(kmdf)

См. также

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate