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


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

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

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

Синтаксис

NTSTATUS WdfDmaTransactionRelease(
  [in] WDFDMATRANSACTION DmaTransaction
);

Параметры

[in] DmaTransaction

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

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

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

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

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

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

Замечания

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

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

Примеры

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

NTSTATUS  status;

status = WdfDmaTransactionRelease(dmaTransaction);

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.0
Заголовок wdfdmatransaction.h (include Wdf.h)
Библиотека Wdf01000.sys (см. управление версиями библиотеки Платформы).)
IRQL <=DISPATCH_LEVEL
правил соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также

WdfDmaTransactionCreate