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 인에이블러 개체와 연결할 버스 마스터 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
Profile지정된 주소 너비를 허용하려면 0으로 설정합니다. 드라이버는 이 멤버를 24에서 63 사이의 값으로 설정하여 Profile 주소 너비를 재정의할 수 있습니다. 드라이버가 시스템 모드 DMA 프로필을 지정하는 경우 addressWidthOverride 0이어야 합니다. 드라이버가 32비트 DMA 프로필을 지정하는 경우 AddressWidthOverride 32보다 클 수 없습니다. AddressWidthOverride 멤버는 버전 1.11 이상 버전의 KMDF에서 사용할 수 있습니다. 설명자세한 내용을 참조하세요.
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에서 드라이버가 AddressWidthOverride0이 아닌 값을 제공하는 경우 프레임워크는 32비트 또는 24비트 DMA를 사용합니다. 예를 들어 드라이버가 64비트 프로필을 지정하고 32의 AddressWidthOverride 제공하는 경우 프레임워크는 32비트 DMA를 사용합니다. 드라이버가 32비트 프로필을 지정하고 24의 AddressWidthOverride 제공하는 경우 프레임워크는 24비트 DMA를 사용합니다.
요구 사항
요구 사항 | 가치 |
---|---|
최소 KMDF 버전 | 1.0 |
헤더 | wdfdmaenabler.h(Wdf.h 포함) |
참고하십시오
EvtDmaEnablerSelfManagedIoStart