다음을 통해 공유


WdfDmaTransactionRelease 함수(wdfdmatransaction.h)

[KMDF에만 적용]

WdfDmaTransactionRelease 메서드는 연결된 DMA 트랜잭션 개체를 삭제하지 않고 지정된 DMA 트랜잭션을 종료합니다.

구문

NTSTATUS WdfDmaTransactionRelease(
  [in] WDFDMATRANSACTION DmaTransaction
);

매개 변수

[in] DmaTransaction

드라이버가 WdfDmaTransactionCreate에 대한 이전 호출에서 가져온 DMA 트랜잭션 개체에 대한 핸들입니다.

반환 값

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)

추가 정보

WdfDmaTransaction만들기