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 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
드라이버는 현재 운영 체제에서 지원되지 않는 DMA 구성을 요청했습니다. |
|
드라이버가 ProfileConfig 매개 변수에 NULL을 제공했습니다. |
|
ProfileConfig 매개 변수가 가리키는 구조체의 Size 멤버가 WDF_DMA_SYSTEM_PROFILE_CONFIG 구조체의 크기와 같지 않습니다. |
|
ProfileConfig 매개 변수가 가리키는 구조체의 DmaDescriptor 멤버가 NULL이거나 ConfigDirection 매개 변수에 잘못된 값이 포함되어 있습니다. |
설명
WdfDmaEnablerConfigureSystemProfile을 호출하기 전에 드라이버는 WdfDmaEnablerCreate를 호출하여 enabler 개체를 만들어야 합니다.
드라이버는 일반적으로 EvtDevicePrepareHardware 콜백 함수에서 WdfDmaEnablerConfigureSystemProfile을 호출합니다.
드라이버가 WdfDmaEnablerCreate를 호출할 때 이중 프로필을 지정한 경우 WdfDmaEnablerConfigureSystemProfile 메서드의 ConfigDirection 매개 변수 값은 읽기 작업에 대한 DMA_ADAPTER 구조를 가져오려면 WdfDmaDirectionReadFromDevice이고 쓰기 작업에 대한 DMA_ADAPTER 구조를 가져오려면 WdfDmaDirectionReadFromDevice여야 합니다.
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) |