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


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

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

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

Синтаксис

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

Параметры

[in] Transaction

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

[in] Device

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

[in] Context

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

[in] Direction

WDF_DMA_DIRECTION типизированное значение, указывающее направление операции передачи DMA.

[in] SgList

Указатель на структуру SCATTER_GATHER_LIST .

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

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

Комментарии

Драйверы регистрируют функцию обратного вызова события EvtProgramDma , вызывая WdfDmaTransactionInitializeUsingRequest или WdfDmaTransactionInitialize.

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

Драйвер не должен управлять буферами данных, связанными с транзакцией, до тех пор, пока WdfDmaTransactionDmaCompletedXxx не вернет значение TRUE.

Для передачи одного пакета список точечной и сборной, на который указывает параметр SgList , содержит один элемент.

Дополнительные сведения об этой функции обратного вызова см. в разделе Программирование оборудования DMA.

Требования

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

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

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest