EVT_WDF_PROGRAM_DMA 콜백 함수(wdfdmatransaction.h)

[KMDF에만 적용]

프레임워크 기반 드라이버의 EvtProgramDma 이벤트 콜백 함수는 지정된 디바이스를 프로그래밍하여 DMA 전송 작업을 수행합니다.

구문

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

매개 변수

[in] Transaction

현재 DMA 트랜잭션을 나타내는 DMA 트랜잭션 개체에 대한 핸들입니다.

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] Context

드라이버가 WdfDmaTransactionExecute에 대한 이전 호출에서 지정한 컨텍스트 포인터입니다.

[in] Direction

DMA 전송 작업의 방향을 지정하는 WDF_DMA_DIRECTION 형식의 값입니다.

[in] SgList

SCATTER_GATHER_LIST 구조체에 대한 포인터입니다.

반환 값

EvtProgramDma 콜백 함수는 DMA 전송 작업을 성공적으로 시작하면 TRUE를 반환해야 합니다. 그렇지 않으면 이 콜백 함수는 FALSE를 반환해야 합니다. 그러나 프레임워크는 현재 반환 값을 무시합니다.

설명

드라이버는 WdfDmaTransactionInitializeUsingRequest 또는 WdfDmaTransactionInitialize를 호출하여 EvtProgramDma 이벤트 콜백 함수를 등록합니다.

프레임워크는 DMA 전송을 사용할 수 있을 때 드라이버의 EvtProgramDma 이벤트 콜백 함수를 호출합니다. 콜백 함수는 전송을 시작하려면 하드웨어를 프로그래밍해야 합니다.

WdfDmaTransactionDmaCompletedXxx가 TRUE를 반환할 때까지 드라이버는 트랜잭션과 연결된 데이터 버퍼를 조작해서는 안 됩니다.

단일 패킷 전송의 경우 SgList 매개 변수가 가리키는 분산/수집 목록에 단일 요소가 포함됩니다.

이 콜백 함수에 대한 자세한 내용은 DMA 하드웨어 프로그래밍을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfdmatransaction.h(Wdf.h 포함)
IRQL DISPATCH_LEVEL

추가 정보

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest