Функция WdfDmaTransactionRelease (wdfdmatransaction.h)
[Применимо только к KMDF]
Метод WdfDmaTransactionRelease завершает указанную транзакцию DMA без удаления связанного объекта транзакции DMA.
Синтаксис
NTSTATUS WdfDmaTransactionRelease(
[in] WDFDMATRANSACTION DmaTransaction
);
Параметры
[in] DmaTransaction
Дескриптор объекта транзакции DMA, полученный драйвером из предыдущего вызова WdfDmaTransactionCreate.
Возвращаемое значение
WdfDmaTransactionRelease возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть следующее значение:
Код возврата | Описание |
---|---|
|
Драйвер уже выпустил или удалил объект транзакции, указанный параметром 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) |