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