WDDM 아키텍처
WDDM(Windows 디스플레이 드라이버 모델)에는 사용자 모드 및 커널 모드 구성 요소가 있습니다. 다음 그림에서는 WDDM 아키텍처의 다양한 구성 요소를 보여 줍니다.
시스템 제공 모듈은 그림에 흰색 상자로 표시됩니다. 회색 상자는 파트너가 제공할 수 있는 모듈을 나타냅니다. 애플리케이션은 파트너가 시스템 제공 또는 개발할 수 있습니다.
시스템 제공 모듈
다음 시스템 제공 모듈은 WDDM 아키텍처의 일부입니다.
Direct3D 런타임은 애플리케이션용 애플리케이션 API를 제공하는 사용자 모드 구성 요소입니다. 다양한 서비스를 제공하며 애플리케이션, UMD(사용자 모드 그래픽 드라이버) 및 gdi32.dll 간의 상호 작용을 관리합니다.
gdi32.dll D3D 런타임 또는 파트너 그래픽 클라이언트가 연결하는 사용자 모드 라이브러리입니다. 런타임 또는 클라이언트는 DirectX 커널 하위 시스템(Dxgkrnl)에서 적절한 커널 모드 함수로 호출을 라우팅하는 gdi32 "thunk"를 호출합니다.
Dxgkrnl 은 Windows 운영 체제의 커널 모드 그래픽 하위 시스템의 핵심 구성 요소입니다. 운영 체제, UMD 및 커널 모드 디스플레이 미니포트 드라이버(KMD) 간의 통신을 용이하게 합니다. Dxgkrnl에는 디스플레이 포트 드라이버, 메모리 관리자(VidMm) 및 스케줄러(VidSch)와 같은 하위 구성 요소가 포함됩니다. Dxgkrnl 은 다음 시스템 파일로 구성됩니다.
- dxgmms2.sys. WDDM 버전 2.0 이상용 GPU/NPU 스케줄러 및 비디오 메모리 관리자를 구현합니다.
- dxgmms1.sys. WDDM 2.0 이전 버전의 WDDM용 GPU/NPU 스케줄러 및 비디오 메모리 관리자를 구현합니다.
- 필요한 dxgmms.sys 파일 로드, 사용자 모드에서 D3DKMTXxx 호출의 초기 처리, 디스플레이 모드, GPU 가상화, 전원 관리, 커널 임원과의 인터페이스 등 DirectX 커널 하위 시스템의 다른 모든 것을 처리하는 dxgkrnl.sys.
Win32 GDI 및 Win32k.sys 일부 애플리케이션에서 여전히 사용되는 레거시 구성 요소입니다.
타사 제공 모듈
UMD는 Direct3D 런타임이 로드하는 DLL(동적 연결 라이브러리)입니다.
KMD는 Dxgkrnl 및 그래픽 하드웨어와 통신합니다.
그래픽 하드웨어 공급업체는 UMD와 KMD를 모두 제공해야 합니다.
- 타사 파트너 그래픽 클라이언트는 자체 API 및 프레임워크가 있는 사용자 모드 구성 요소입니다. gdi32 unks를 호출하여 커널 모드 그래픽 하위 시스템과 통신합니다. Microsoft에서 알고 있는 클라이언트는 D3DKMT_CLIENTHINT 나열됩니다.