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


Функция WdfDmaTransactionSetTransferCompleteCallback (wdfdmatransaction.h)

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

Метод WdfDmaTransactionSetTransferCompleteCallback регистрирует функцию обратного вызова события завершения передачи для транзакции DMA в системном режиме.

Синтаксис

void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext
);

Параметры

[in] DmaTransaction

Дескриптор инициализированного объекта транзакции DMA, для которого необходимо задать или очистить обратный вызов завершения передачи.

[in, optional] DmaCompletionRoutine

Указатель на функцию обратного вызова события EvtDmaTransactionDmaTransferComplete драйвера или значение NULL для очистки ранее заданной функции обратного вызова.

[in, optional] DmaCompletionContext

Указатель на буфер, содержащий контекст, заданный драйвером, который будет предоставлен функции обратного вызова события EvtDmaTransactionDmaTransferComplete драйвера или NULL.

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

None

Remarks

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

Как правило, из функции обратного вызова событий очереди ввода-вывода драйвер выполняет следующие действия в следующем порядке:

  1. Вызывает WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize или WdfDmaTransactionInitializeUsingOffset для инициализации объекта транзакции.
  2. Вызывает WdfDmaTransactionSetTransferCompleteCallback для объекта транзакции.
  3. Вызывает WdfDmaTransactionExecute.
Если драйвер указал функцию обратного вызова события EvtDmaTransactionDmaTransferComplete путем вызова WdfDmaTransactionSetTransferCompleteCallback , а драйвер впоследствии вызывает WdfDmaTransactionRelease, обратный вызов очищается.

WdfDmaTransactionSetTransferCompleteCallback можно использовать только с активатором DMA, указывающим системный профиль DMA.

Если драйвер вызывает этот метод в операционной системе до Windows 8, средство проверки платформы сообщает об ошибке.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Целевая платформа Универсальное
Минимальная версия KMDF 1.11
Верхняя часть wdfdmatransaction.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы).
IRQL <=DISPATCH_LEVEL
Правила соответствия DDI DriverCreate(kmdf)

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

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease