Функция 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, которая не поддерживается в текущей операционной системе.
STATUS_INVALID_PARAMETER
Драйвер предоставил значение NULL в параметре ProfileConfig .
STATUS_INFO_LENGTH_MISMATCH
Элемент Size структуры, на который указывает параметр ProfileConfig , не равен размеру структуры WDF_DMA_SYSTEM_PROFILE_CONFIG .
STATUS_INVALID_PARAMETER
Элемент DmaDescriptor структуры, на который указывает параметр ProfileConfig , имеет значение NULL или параметр ConfigDirection содержит недопустимое значение.

Комментарии

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

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

Если драйвер указал дуплексный профиль при вызове WdfDmaEnablerCreate, значение параметра ConfigDirection метода WdfDmaEnablerConfigureSystemProfile должно иметь значение 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 (включая 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