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


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

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

Метод WdfDmaTransactionRelease завершает указанную транзакцию DMA, не удаляя связанный объект транзакции DMA.

Синтаксис

NTSTATUS WdfDmaTransactionRelease(
  [in] WDFDMATRANSACTION DmaTransaction
);

Параметры

[in] DmaTransaction

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

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

WdfDmaTransactionRelease возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть следующее значение:

Код возврата Описание
STATUS_INVALID_DEVICE_STATE
Драйвер уже выпустил или удалил объект транзакции, указанный параметром DmaTransaction .
 

Этот метод также может возвращать другие значения NTSTATUS.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Метод WdfDmaTransactionRelease очищает буферы передачи и освобождает все системные ресурсы, связанные с транзакцией DMA. Объект транзакции не удаляется и может использоваться повторно. Дополнительные сведения о повторном использовании объектов транзакций см. в разделе Повторное использованием объектов транзакций DMA.

Если WdfDmaTransactionInitializeXxx возвращает успешное выполнение, а WdfDmaTransactionExecute возвращает значение ошибки, драйвер должен вызвать WdfDmaTransactionRelease.

Примеры

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

NTSTATUS  status;

status = WdfDmaTransactionRelease(dmaTransaction);

Требования

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

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

WdfDmaTransactionCreate