다음을 통해 공유


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