Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо только к 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 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) |