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


функция обратного вызова EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL (wdfdmatransaction.h)

[Относится только к KMDF]

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

Синтаксис

EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL EvtWdfDmaTransactionConfigureDmaChannel;

BOOLEAN EvtWdfDmaTransactionConfigureDmaChannel(
  [in]           WDFDMATRANSACTION DmaTransaction,
  [in]           WDFDEVICE Device,
  [in]           PVOID Context,
  [in, optional] PMDL Mdl,
  [in]           size_t Offset,
  [in]           size_t Length
)
{...}

Параметры

[in] DmaTransaction

Дескриптор объекта транзакции DMA, представляющий выполняемую транзакцию.

[in] Device

Дескриптор объекта устройства платформы, который драйвер указал при вызове WdfDmaTransactionCreate.

[in] Context

Указатель контекста, указанный драйвером в предыдущем вызове WdfDmaTransactionSetChannelConfigurationCallback.

[in, optional] Mdl

Указатель на один список дескрипторов памяти (MDL) или цепочку MDL, описывающую буфер, связанный с текущей передачей, или значение NULL, если последняя передача была завершена и адаптер освобождается.

[in] Offset

Смещение байтов в буфер, указанный в параметре Mdl , где начинается текущая передача.

[in] Length

Количество байтов, передаваемых в текущей передаче.

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

Функция обратного вызова EvtDmaTransactionConfigureDmaChannel возвращает значение TRUE, если канал DMA успешно настроен. Если эта функция обратного вызова возвращает значение FALSE, платформа останавливает транзакцию и не вызывает EvtProgramDma.

Комментарии

Драйверы регистрируют функцию обратного вызова события EvtDmaTransactionConfigureDmaChannel , вызывая WdfDmaTransactionSetChannelConfigurationCallback.

Платформа вызывает EvtDmaTransactionConfigureDmaChannel один раз для каждой передачи DMA системного профиля в транзакции после выделения канала адаптера, но перед сопоставлением передачи и вызова EvtProgramDma.

Драйвер может использовать обратный вызов EvtDmaTransactionConfigureDmaChannel , чтобы настроить любое настраиваемое программирование для адаптера DMA перед сопоставлением передачи.

Если драйвер испытывает ошибку при настройке канала, он может остановить передачу DMA, вызвав WdfDmaTransactionDmaCompletedFinal и при необходимости выполнив запрос. Затем драйвер должен возвращать значение FALSE из этой функции обратного вызова.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Целевая платформа Универсальное
Минимальная версия KMDF 1.11
Верхняя часть wdfdmatransaction.h (включая Wdf.h)
IRQL DISPATCH_LEVEL

См. также раздел

WdfDmaTransactionDmaCompletedFinal

WdfDmaTransactionSetChannelConfigurationCallback