2011-12-31 6 views
2

VGA 포트와 HDMI 포트가있는 노트북이 있습니다. 따라서 최대 3 개의 디스플레이 사이를 전환 할 수 있습니다. 2가 동시에 활성화됩니다.활성 디스플레이를 전환하기 위해 windows-drivers에서 사용하는 프로그래밍 인터페이스

Windows API 또는 .NET 프레임 워크를 사용하여 프로그래밍 방식으로 활성 디스플레이를 전환하는 방법을 찾으려고했습니다. 그러나 그것은 불가능한 것처럼 보인다. WWW의 다른 포럼 게시물에 따르면 그래픽 카드에 속한 라이브러리를 사용해야 만 가능합니다. "AMD 디스플레이 라이브러리"(ADL) 또는 nVidia 장치 용 NVAPI.

하지만 프로그래밍 인터페이스는 없지만 Windows가 시스템 설정에서 모니터를 전환하는 설정을 제공 할 수 있는지 궁금합니다. Windows에서도 ADL/NVAPI를 사용하고 있습니까?

편집 디아나는 의견에서 지적

는 아마 활성 표시 전환에 대한 문서화 된 API가 없다. 디스플레이 드라이버 개발자는 어떻게 드라이버 개발 방법을 알 수 있습니까? 그런 것들을 공개하지 않는 이유는 무엇입니까?

+1

Windows는 드라이버에서 제공하는 모든 디스플레이 어댑터를 지원합니다. 2를 노출하는 경우에만 드라이버 관련 문제입니다. Windows 자체에는 "2 개의 디스플레이 활성화"제한이 없습니다. – Deanna

+0

@Deanna 질문은 "인터페이스가없는 경우 어떻게 창을 얻을 수 있습니까?"(및 "인터페이스가있는 경우 어디에서 찾을 수 있습니까/어떻게 사용할 수 있습니까")에 대한 질문입니다. "활성"은 동시에 두 개의 디스플레이에서 그래픽을 볼 수 있음을 의미합니다 (GPU가 해당 제한을 적용 함). – fishbone

+0

Windows가 Windows를 할 수 있습니까, 아니면 드라이버입니까?내가 말했듯이 Windows에는 활성 수에 대한 제한이 없습니다. 또한 Windows 자체에서 수행한다는 사실은 공용 문서 API가 있음을 의미하지는 않습니다. – Deanna

답변

2

EnumDisplayDevicesChangeDisplaySettingsEx을 사용하여 CDS_SET_PRIMARY을 전달하여 사용하려는 모니터를 선택할 수 있어야합니다. 이것이 내가 알지 못할 최상의 인터페이스를 제공하는지 여부. 그렇지 않으면 here, IViewHelper COM 문서 또는 D3D에 의해 노출 된 사용자 모드 display configuration API으로 나열된 여러 모니터에서 WDDM 문서를 파헤쳐 야합니다.

하지만 프로그래밍 인터페이스가 없지만 윈도우, 시스템 설정에서 모니터를 전환하기위한 설정을 제공 할 수있는 방법을 궁금해

Windows에서 디스플레이 드라이버가 노출 할 필요가 있음을 주목해야한다

특정 기능을 사용하여 Windows 커널 용 저수준 API를 구현하여 커널이 이러한 작업을 쉽게 수행 할 수 있도록합니다.

디스플레이 드라이버 개발자는 드라이버 개발 방법을 어떻게 알 수 있습니까? 그런 것들을 공개하지 않는 이유는 무엇입니까?

그들은 그들에게 DDK의 사용 가능한 전문 것 * (여기서 [XDDM | WDDM] 디스플레이 드라이버를 쓰기에 대한 MSDN의 문서입니다). 아주 소수의 사람들이 필요하기 때문에 모니터 출력을 쉽게 스왑하는 데 필요한 API의 종류가 공개되지 않을 수 있습니다. 따라서 일반적으로 사용되는 섹션에서 고정 된 버그로 시간과 돈을 낭비하게됩니다.

* 공용 DDK에는 디스플레이 드라이버 구현을위한 3dlabs의 고대 샘플이 있지만 온라인 문서는 꽤 포괄적이지만 전체 디스플레이 드라이버를 작성하는 것은 주요한 작업이며 대부분 아마도 MS ISV 또는 하드웨어 파트너가 될 필요가있는 MS의 직접 지원이 필요합니다.