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 |