WDF_DMA_SYSTEM_PROFILE_CONFIG 구조체(wdfdmaenabler.h)

[KMDF에만 적용]

WDF_DMA_SYSTEM_PROFILE_CONFIG 구조는 시스템 모드 DMA 인에이블러와 관련된 하드웨어별 설정을 설명합니다.

구문

typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG {
  ULONG                           Size;
  BOOLEAN                         DemandMode;
  BOOLEAN                         LoopedTransfer;
  DMA_WIDTH                       DmaWidth;
  PHYSICAL_ADDRESS                DeviceAddress;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
} WDF_DMA_SYSTEM_PROFILE_CONFIG, *PWDF_DMA_SYSTEM_PROFILE_CONFIG;

멤버

Size

이 구조체의 크기(바이트)입니다.

DemandMode

전송이 디바이스의 DMA에 의해 제어되도록 지정합니다.
이 구조체의 DmaDescriptor 멤버에 지정된 요청 줄입니다. 설명에서 자세한 내용을 참조하세요.

LoopedTransfer

길이가 버퍼 크기보다 큰 경우 DMA 어댑터가 지정된 전송 주위에 반복되도록 지정합니다.

DmaWidth

DeviceAddress에서 지정한 레지스터의 너비입니다. 가능한 값은 Width8Bits, Width16Bits, Width32Bits 및 Width64Bits입니다.

DeviceAddress

DMA 컨트롤러가 전송하는 변환된 주소입니다. 드라이버는 WdfDmaTransactionSetDeviceAddressOffset을 호출하여 각 트랜잭션의 이 기본 주소에서 오프셋을 지정할 수 있습니다.

DmaDescriptor

EvtDevicePrepareHardware 중에 DMA 채널의 번역된 리소스 설명자에 디바이스가 할당되었습니다. 그러면 어댑터에 대한 DMA 요청 줄이 제공됩니다.

설명

드라이버는 시스템 프로필 DMA 인에이블러를 만든 후 WdfDmaEnablerConfigureSystemProfile 에 이 구조를 제공합니다.

일반적으로 드라이버는 DemandMode 를 TRUE로 설정합니다. 드라이버의 EvtProgramDma 콜백 함수는 디바이스를 프로그래밍하여 DMA 요청 줄을 어설션하고 전송을 시작합니다. 이 경우 EvtProgramDma 가 계속 실행되는 동안 전송이 시작될 수 있습니다.

드라이버는 드라이버의 EvtProgramDma 콜백 함수가 실행을 시작하기 전에 디바이스의 DMA 요청 줄이 어설션되지 않았는지 확인해야 합니다. 그렇지 않으면 프레임워크가 EvtProgramDma를 호출하기 전에 DMA 전송을 시작할 수 있습니다.

DemandMode가 FALSE로 설정된 경우 프레임워크가 드라이버의 EvtProgramDma 함수를 호출하기 전에 DMA 전송이 시작될 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
최소 KMDF 버전 1.11
머리글 wdfdmaenabler.h(Wdf.h 포함)

추가 정보

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerConfigureSystemProfile