WdfDmaTransactionSetTransferCompleteCallback 함수(wdfdmatransaction.h)

[KMDF에만 적용]

WdfDmaTransactionSetTransferCompleteCallback 메서드는 시스템 모드 DMA 트랜잭션에 대한 전송 완료 이벤트 콜백 함수를 등록합니다.

구문

void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext
);

매개 변수

[in] DmaTransaction

전송 완료 콜백을 설정하거나 지울 초기화된 DMA 트랜잭션 개체에 대한 핸들입니다.

[in, optional] DmaCompletionRoutine

드라이버의 EvtDmaTransactionDmaTransferComplete 이벤트 콜백 함수 또는 이전에 설정된 콜백 함수를 지우는 NULL에 대한 포인터입니다.

[in, optional] DmaCompletionContext

드라이버의 EvtDmaTransactionDmaTransferComplete 이벤트 콜백 함수 또는 NULL에 제공할 드라이버 지정 컨텍스트를 포함하는 버퍼에 대한 포인터입니다.

반환 값

없음

설명

드라이버는 시스템 DMA 컨트롤러가 전송을 완료한 후 프레임워크가 호출하는 완료 루틴을 설정하기 위해 이 메서드를 호출합니다. 프레임워크는 트랜잭션의 각 전송에 대해 드라이버의 EvtDmaTransactionDmaTransferComplete 콜백을 한 번 호출합니다.

일반적으로 I/O 큐 이벤트 콜백 함수 내에서 드라이버는 다음 단계를 다음 순서로 수행합니다.

  1. WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize 또는 WdfDmaTransactionInitializeUsingOffset을 호출하여 트랜잭션 개체를 초기화합니다.
  2. 트랜잭션 개체에서 WdfDmaTransactionSetTransferCompleteCallback 을 호출합니다.
  3. WdfDmaTransactionExecute를 호출합니다.
드라이버가 WdfDmaTransactionSetTransferCompleteCallback을 호출하여 EvtDmaTransactionDmaTransferComplete 이벤트 콜백 함수를 지정하고 드라이버가 이후에 WdfDmaTransactionRelease를 호출하면 콜백이 지워집니다.

WdfDmaTransactionSetTransferCompleteCallback 은 시스템 모드 DMA 프로필을 지정하는 DMA 사용권자에서만 사용할 수 있습니다.

드라이버가 Windows 8 이전의 운영 체제에서 이 메서드를 호출하는 경우 프레임워크의 검증 도구는 오류를 보고합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
대상 플랫폼 유니버설
최소 KMDF 버전 1.11
머리글 wdfdmatransaction.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf)

추가 정보

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease