다음을 통해 공유


WdfDmaTransactionDmaCompletedFinal 함수(wdfdmatransaction.h)

[KMDF에만 적용]

WdfDmaTransactionDmaCompletedFinal 메서드는 디바이스의 DMA 전송 작업이 언더런 조건으로 완료되었음을 프레임워크에 알리고 완료된 전송의 길이를 제공합니다.

구문

BOOLEAN WdfDmaTransactionDmaCompletedFinal(
  [in]  WDFDMATRANSACTION DmaTransaction,
  [in]  size_t            FinalTransferredLength,
  [out] NTSTATUS          *Status
);

매개 변수

[in] DmaTransaction

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

[in] FinalTransferredLength

디바이스가 전송한 바이트 수입니다.

[out] Status

DMA 전송의 상태 받는 위치에 대한 포인터입니다. 자세한 내용은 WdfDmaTransactionDmaCompleted에 대한 설명 섹션을 참조하세요.

반환 값

드라이버가 잘못된 입력 매개 변수를 제공하면 WdfDmaTransactionDmaCompletedFinalFALSE를 반환합니다. 그렇지 않으면 WdfDmaTransactionDmaCompletedFinal 은 항상 TRUE를 반환합니다. 이는 프레임워크가 DmaTransaction 매개 변수가 지정한 DMA 트랜잭션에 대해 더 이상 바이트를 전송하지 않음을 나타냅니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

드라이버는 일반적으로 EvtInterruptDpc 콜백 내에서 WdfDmaTransactionDmaCompletedFinal을 호출합니다. 시스템 모드 DMA 디바이스의 드라이버는 EvtDmaTransactionDmaTransferComplete 이벤트 콜백 함수 내에서 WdfDmaTransactionDmaCompletedFinal 을 호출할 수 있습니다.

PLX9x5x 샘플에서 드라이버는 EvtProgramDma 콜백 함수에서 WdfDmaTransactionDmaCompletedFinal을 호출합니다.

WdfDmaTransactionDmaCompletedFinal 메서드는 하드웨어가 언더런 조건을 보고하는 경우 드라이버가 일반적으로 WdfDmaTransactionDmaCompletedFinal을 호출한다는 점을 제외하고 WdfDmaTransactionDmaCompletedFinal 메서드는 WdfDmaTransactionDmaCompleted와 동일하게 동작합니다. 언더런 조건은 하드웨어가 마지막 DMA 전송에 대해 지정된 모든 바이트를 전송할 수 없음을 의미합니다. WdfDmaTransactionDmaCompletedFinal을 호출하면 프레임워크가 지정된 DMA 트랜잭션에 대한 DMA 전송을 더 이상 시작하지 않습니다.

드라이버가 WdfDmaTransactionDmaCompletedFinal을 호출하면 드라이버는 전송된 바이트 수를 제공합니다. 프레임워크가 지정된 트랜잭션에 대해 더 이상 바이트를 전송하지 않으므로 반환 값은 항상 TRUE입니다.

DMA 전송 완료에 대한 자세한 내용은 DMA 전송 완료를 참조하세요.

예제

다음 코드 예제에서는 디바이스의 DMA 전송 작업이 언더런 조건으로 완료되었음을 프레임워크에 알 수 있습니다.

BOOLEAN  success;
NTSTATUS  status;

success = WdfDmaTransactionDmaCompletedFinal(
                                             DmaTransaction,
                                             transferLength,
                                             &status
                                             );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfdmatransaction.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

WdfDmaTransaction만들기

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength