다음을 통해 공유


WdfDmaEnablerConfigureSystemProfile 함수(wdfdmaenabler.h)

[KMDF에만 적용]

WdfDmaEnablerConfigureSystemProfile 메서드는 시스템 모드 DMA 인에이블러에 대한 하드웨어별 설정을 구성하고 리소스 초기화를 완료합니다.

구문론

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

매개 변수

[in] DmaEnabler

DMA 인제이블러 개체에 대한 핸들입니다.

[in] ProfileConfig

WDF_DMA_SYSTEM_PROFILE_CONFIG 구조체에 대한 포인터입니다. 드라이버는 WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT호출하여 이 구조를 초기화해야 합니다.

[in] ConfigDirection

DMA 전송 작업의 방향을 지정하는 WDF_DMA_DIRECTION형식화된 값입니다. 이 사용 권한자의 WDF_DMA_PROFILE 값이 WdfDmaProfileSystemDuplex 않으면 프레임워크는 이 매개 변수를 무시합니다.

반환 값

WdfDmaEnablerConfigureSystemProfile 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_NOT_SUPPORTED
드라이버는 현재 운영 체제에서 지원되지 않는 DMA 구성을 요청했습니다.
파라미터 값이 잘못되었습니다
드라이버는 ProfileConfig 매개 변수에 NULL을 제공했습니다.
STATUS_INFO_LENGTH_MISMATCH
ProfileConfig 매개 변수가 가리키는 구조체의 Size 멤버가 WDF_DMA_SYSTEM_PROFILE_CONFIG 구조체의 크기와 같지 않습니다.
파라미터 값이 잘못되었습니다
ProfileConfig 매개 변수가 가리키는 구조체의 DmaDescriptor 멤버가 NULL이거나 ConfigDirection 매개 변수에 잘못된 값이 포함되어 있습니다.

비고

WdfDmaEnablerConfigureSystemProfile호출하기 전에 드라이버는 WdfDmaEnablerCreate 호출하여 enabler 개체를 만들어야 합니다.

드라이버는 일반적으로 EvtDevicePrepareHardware 콜백 함수에서 WdfDmaEnablerConfigureSystemProfile 호출합니다.

드라이버가 WdfDmaEnablerCreate호출할 때 이중 프로필을 지정한 경우 WdfDmaEnablerConfigureSystemProfile 메서드의 ConfigDirection 매개 변수의 값은 읽기 작업에 대한 DMA_ADAPTER 구조를 가져오려면 WdfDmaDirectionReadFromDevice , 쓰기 작업에 대한 DMA_ADAPTER 구조를 가져오려면 WdfDmaDirectionWriteToDevice 합니다.

DMA 인에이블러가 이중 인에이블러인 경우 드라이버는 특정 방향을 초기화해야 사용할 수 있습니다.

드라이버가 이중 프로필을 지정하지 않은 경우 드라이버는 WdfDmaDirectionReadFromDevice 또는 WdfDmaDirectionWriteToDevice 지정할 수 있습니다.

예시

다음 코드 예제는 드라이버의 EvtDevicePrepareHardware 콜백 함수입니다. 이 예제에서는 WDF_DMA_SYSTEM_PROFILE_CONFIG 구조를 초기화하고 WdfDmaEnablerConfigureSystemProfile 호출합니다.


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 8
대상 플랫폼 보편적
최소 KMDF 버전 1.11
헤더 wdfdmaenabler.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf)

참고하십시오

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate