Функция 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, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений.
Код возврата | Описание |
---|---|
|
Драйвер запросил конфигурацию DMA, которая не поддерживается в текущей операционной системе. |
|
Драйвер предоставил значение NULL в параметре ProfileConfig . |
|
Элемент Size структуры, на который указывает параметр ProfileConfig , не равен размеру структуры WDF_DMA_SYSTEM_PROFILE_CONFIG . |
|
Элемент 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) |