WDF_DMA_ENABLER_CONFIG 구조체(wdfdmaenabler.h)

[KMDF에만 적용]

WDF_DMA_ENABLER_CONFIG 구조체는 DMA 인에이블러 개체의 특성을 제공합니다.

구문

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

멤버

Size

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

Profile

WDF_DMA_PROFILE 형식의 값으로, DMA 인에이블러 개체와 연결될 버스 master DMA 작업의 유형을 식별합니다.

MaximumLength

디바이스가 단일 DMA 전송에서 처리할 수 있는 기본 최대 크기(바이트)입니다. (드라이버는 WdfDmaTransactionSetMaximumLength를 호출하여 개별 DMA 트랜잭션에 대해 이 기본값을 재정의할 수 있습니다.) 최대 16개의 맵 레지스터를 지원하는 Microsoft Windows 운영 체제 버전에서 드라이버를 실행해야 하는 경우 MaximumLength는 65,536보다 작아야 합니다.

EvtDmaEnablerFill

드라이버의 EvtDmaEnablerFill 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

EvtDmaEnablerFlush

드라이버의 EvtDmaEnablerFlush 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

EvtDmaEnablerDisable

드라이버의 EvtDmaEnablerDisable 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

EvtDmaEnablerEnable

드라이버의 EvtDmaEnablerEnable 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

EvtDmaEnablerSelfManagedIoStart

드라이버의 EvtDmaEnablerSelfManagedIoStart 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

EvtDmaEnablerSelfManagedIoStop

드라이버의 EvtDmaEnablerSelfManagedIoStop 이벤트 콜백 함수 또는 NULL에 대한 포인터입니다.

AddressWidthOverride

프로필에 지정된 주소 너비를 허용하려면 0으로 설정합니다. 드라이버는 이 멤버를 24에서 63 사이의 값으로 설정하여 프로필 주소 너비를 재정의할 수 있습니다. 드라이버가 시스템 모드 DMA 프로필을 지정하는 경우 AddressWidthOverride 는 0이어야 합니다. 드라이버가 32비트 DMA 프로필을 지정하는 경우 AddressWidthOverride 는 32보다 클 수 없습니다. AddressWidthOverride 멤버는 KMDF 버전 1.11 이상에서 사용할 수 있습니다. 설명에서 자세한 내용을 참조 하세요.

WdmDmaVersionOverride

기본 DMA 버전을 적용하려면 0으로 설정합니다. DMA 버전 3을 요청하려면 를 3으로 설정합니다. WdmDmaVersionOverride 멤버는 버전 1.11 이상 KMDF에서 사용할 수 있습니다. DMA 버전 3은 Windows 8부터 사용할 수 있습니다.

Flags

WDF_DMA_ENABLER_CONFIG_FLAGS 열거형에서 하나 이상의 값에 대한 비트 OR입니다. Flags 멤버는 버전 1.11 이상에서 KMDF에서 사용할 수 있습니다.

설명

WDF_DMA_ENABLER_CONFIG 구조체는 WdfDmaEnablerCreate 메서드에 대한 입력 매개 변수로 사용됩니다.

드라이버는 WDF_DMA_ENABLER_CONFIG 구조를 초기화하기 위해 WDF_DMA_ENABLER_CONFIG_INIT 호출해야 합니다.

Windows 8 이상에서 드라이버가 AddressWidthOverride에 0이 아닌 값을 제공하면 프레임워크는 DMA 버전 3을 요청하고 AddressWidthOverride 값을 HAL에 전달합니다.

Windows 7 및 Windows Vista에서 드라이버가 AddressWidthOverride에 0이 아닌 값을 제공하는 경우 프레임워크는 32비트 또는 24비트 DMA를 사용합니다. 예를 들어 드라이버가 64비트 프로필을 지정하고 AddressWidthOverride 32를 제공하는 경우 프레임워크는 32비트 DMA를 사용합니다. 드라이버가 32비트 프로필을 지정하고 AddressWidthOverride 24를 제공하는 경우 프레임워크는 24비트 DMA를 사용합니다.

요구 사항

요구 사항
최소 KMDF 버전 1.0
머리글 wdfdmaenabler.h(Wdf.h 포함)

추가 정보

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength