다음을 통해 공유


WDDM 1.2 이상에서 원활한 상태 전환 제공

Windows 8 시작하여 부팅 프로세스 중, 저전력 상태에서 전환하는 동안, 그리고 드라이버 업그레이드 또는 시스템 버그 검사에서 운영 체제 제어로 다시 전환하는 동안 화면 깜박임 및 깜박임을 최소화하거나 제거하는 데 도움이 되는 몇 가지 기능이 있습니다. 또한 Windows 8 이상 컴퓨터의 시스템 펌웨어는 전원이 공급될 때 통합 디스플레이 패널의 기본 해상도 및 타이밍을 감지하고 이 정보를 운영 체제에 전달해야 합니다. WDDM(Windows Display Driver Model) 1.2 이상 디스플레이 미니포트 드라이버는 이 동작을 지원해야 합니다.

최소 WDDM 버전 1.2
최소 Windows 버전 8
드라이버 구현 - 전체 그래픽 및 디스플레이만 필수
WHCK 요구 사항 및 테스트

System.Client.Firmware.UEFI.GOP.Display

Device.Graphics... PnpStopStartSupport

Device.Graphics... DisplayOutputControl

펌웨어에서 운영 체제로 전환

클라이언트 SKU를 대상으로 하는 모든 Windows 8 시스템은 UEFI(Unified Extensible Firmware Interface) GOP(그래픽 출력 프로토콜)를 지원해야 합니다. 부팅 단계에서 GOP는 시스템의 통합 디스플레이 패널에서 네이티브 타이밍 및 네이티브 해상도를 설정합니다. 운영 체제가 디스플레이의 소유권을 인수할 준비가 되면 GOP는 디스플레이로 스캔하는 데 사용할 수 있는 프레임 버퍼를 해제합니다. 현재 운영 체제는 디스플레이 타이밍 또는 해상도를 다시 설정하지 않고 제공된 프레임 버퍼를 사용하기만 하면 화면 플래시가 하나 제거됩니다.

하드웨어 인증 요구 사항

하드웨어 디바이스가 이 기능을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 System.Client.Firmware.UEFI.GOP.Display의 관련 WHCK 설명서를 참조하세요.

운영 체제에서 드라이버로 전환

운영 체제는 부팅 후 WDDM 드라이버에 디스플레이의 소유권을 전달하는 경우 DxgkDdiStartDevice 함수를 호출하여 디바이스의 플러그 앤 플레이(PnP) 시작을 시작합니다. 또는 최대 절전 모드에서 다시 시작한 후 운영 체제는 DeviceUid 매개 변수가 DISPLAY_ADAPTER_HW_ID(Video.h에 정의됨)로 설정된 DxgkDdiSetPowerState 함수를 호출하여 디바이스를 시작합니다. 이때 일반적으로 WDDM 그래픽 드라이버가 제어하는 동안 화면이 비어 있습니다(검은색으로 렌더링).

드라이버는 DxgkCbAcquirePostDisplayOwnership 함수(Windows 8 시작)를 호출하여 운영 체제에서 현재 프레임 버퍼의 정확한 상태와 펌웨어 및 부팅 로더에 의해 설정된 디스플레이 모드를 쿼리할 수 있습니다. 이 함수에서 검색한 DXGK_DISPLAY_INFORMATION 구조체의 정보를 사용하면 드라이버가 디스플레이 컨트롤러를 활성 상태로 유지하고 모니터를 다시 동기화하지 않을 수 있습니다. 드라이버에는 프레임 버퍼에 대한 자세한 정보도 있으므로 더 원활한 전환을 수행할 수 있습니다.

PnP 시작에 대한 자세한 내용은 WDDM 1.2 이상에서 PnP(플러그 앤 플레이)에서 제공됩니다.

드라이버에서 운영 체제로 전환

운영 체제는 DxgkDdiStopDevice 함수를 호출하여 디스플레이 디바이스의 PnP 중지를 요청할 수 있습니다. 이때 일반적으로 화면이 비워져(검은색으로 렌더링됨) 운영 체제가 디스플레이 컨트롤을 인수합니다. 운영 체제는 WDDM 드라이버가 스캔 아웃을 위해 구성된 프레임 버퍼를 설정해야 하는 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 함수(Windows 8부터 사용 가능)를 호출할 수 있습니다. 운영 체제는 디스플레이를 제어하는 동안 이 프레임 버퍼로 렌더링되어 원활한 전환을 수행할 수 있습니다.

추가 시나리오를 포함하여 PnP 중지에 대한 자세한 내용은 WDDM 1.2 이상에서 PnP(플러그 앤 플레이)에 제공됩니다.

하드웨어 인증 요구 사항

이 핸드오프에 대한 자세한 내용은 Device.Graphics...의 관련 WHCK 설명서를 참조 하세요. PnpStopStartSupport.

드라이버를 사용하지 않도록 설정하지 않고 운영 체제로 전환

경우에 따라 운영 체제에서 복구할 수 없는 오류가 발생하며 시스템 버그 검사 실행해야 합니다. 이 경우 운영 체제가 디스플레이를 제어해야 하지만 WDDM 드라이버를 중지할 수 없는 경우가 있습니다. WDDM 1.2 이상 드라이버는 DxgkDdiSystemDisplayEnableDxgkDdiSystemDisplayWrite 함수를 구현해야 하며, 이를 통해 운영 체제는 고해상도 및 색 깊이에서 그래픽 인터페이스를 유지하면서 오류 화면을 표시할 수 있는 상태로 원활하게 전환할 수 있습니다. 이렇게 전환하면 사용자 환경이 없어지게 됩니다.

하드웨어 인증 요구 사항

하드웨어 디바이스가 이 기능을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 Device.Graphics...의 관련 WHCK 설명서를 참조 하세요. DisplayOutputControl.

Windows 8 펌웨어 모드 변경

다음은 펌웨어가 운영 체제에 대한 제어를 해제하기 전에 펌웨어의 디스플레이 모드에 대한 변경 내용입니다.

WDDM 1.2 이상 드라이버(DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
디스플레이 플래시를 제거하기 위해 Windows 8 시작하여 WDDM 1.2 이상 드라이버용 펌웨어에서 Int10 모드 변경 요청이 호출되지 않습니다.

또한 모니터가 꺼져 있는 동안 모드 변경이 발생하는 경우 운영 체제는 DxgkDdiCommitVidPn 함수를 한 번만 호출하며, pCommitVidPnArg 매개 변수는 모니터가 설정된 경우의 값으로 설정되고 pCommitVidPnArg-Flags>의 PathPoweredOff 멤버는 TRUE로 설정됩니다.

WDDM 1.0 및 1.1 드라이버(DXGKDDI_INTERFACE_VERSION<DXGKDDI_INTERFACE_VERSION_WIN8)
Windows 8 실행되는 WDDM 버전 1.0 및 1.1 드라이버의 경우 부팅 프로세스 중 또는 최대 절전 모드에서 다시 시작될 때 디스플레이 해상도를 모니터의 기본 고해상도로 설정하는 int10 VGA 모드 0x12 호출됩니다. Windows 8 전에 Int10 VGA 모드 0x12 호출은 디스플레이 해상도를 픽셀당 16비트(깜박이는 커서 없이 640 x 480 픽셀)로 설정하여 운영 체제 시작 화면 이미지를 표시합니다.

그러나 고해상도 모드를 지원하지 않음을 나타내는 WDDM 버전 1.0 및 1.1 드라이버의 경우 부팅을 VGA 모드로 Windows 8 0x12 디스플레이 해상도를 픽셀당 16비트에서 640 x 480 픽셀로 설정하며 깜박이는 커서가 없습니다. 시스템이 최대 절전 모드에서 다시 시작되면 디스플레이 해상도가 모니터의 기본 고해상도로 설정됩니다.

또한 모니터가 꺼져 있는 동안 모드 변경이 발생하는 경우 운영 체제는 WDDM 1.2 드라이버에 대해 위에서 설명한 대로 DxgkDdiCommitVidPn 함수를 호출하고 pCommitVidPnArg-hFunctionalVidPn>에서 빈 비디오 프레젠테이션 네트워크(VidPN)를 사용하여 DxgkDdiCommitVidPn 함수를 두 번째로 호출하며 pCommitVidPnArg-Flags>에 설정된 플래그 값은 없습니다.

이 두 부분으로 구성된 호출 시퀀스는 최대 절전 모드 후 시스템이 다시 시작되고 동기화 생성을 모니터링할 때도 발생합니다. 이 경우 드라이버는 DxgkDdiCommitVidPn에 대한 두 번째 호출을 받을 때 아무 작업도 수행하지 않아야 합니다.