IddCx 개체

IddCx(간접 디스플레이 드라이버 클래스 eXtension)는 확장 가능한 UMDF 개체 모델을 사용하여 간접 디스플레이 디바이스의 구성 요소를 나타냅니다. UMDF 개체 모델을 사용하면 드라이버별 스토리지를 각 IddCx(및 UMDF) 개체와 연결할 수 있습니다. 자세한 내용은 UMDF 개체 모델을 참조하세요.

IDD 개체를 만드는 순서는 다음과 같습니다.

  • 드라이버는 먼저 IDDCX_ADAPTER 개체를 만듭니다.
  • 그런 다음 드라이버는 IDDCX_MONITOR 개체를 만듭니다.
  • IDDCX_ADAPTERIDDCX_MONITOR 개체가 만들어지면 OS는 IDDCX_SWAPCHAIN 만들고 개체를 IDDCX_OPMCTX 드라이버에 보냅니다.

다음 섹션에서는 이러한 개체에 대한 자세한 내용을 제공합니다.

IDDCX_ADAPTER

이 개체는 두 단계 프로세스에서 드라이버가 만든 단일 논리 디스플레이 어댑터를 나타냅니다.

IDD 모델에는 명시적 삭제 어댑터 콜백이 없습니다. 어댑터 초기화 시퀀스가 성공적으로 완료되면 초기화 시 전달된 UMDF 디바이스가 중지될 때까지 어댑터가 유효합니다. 어댑터를 만들 때 드라이버는 간접 디스플레이 어댑터에 대한 정적 어댑터 정보를 제공합니다.

다기능 디바이스 처리

가장 간단한 경우 연결된 간접 디스플레이 디바이스에 대한 플러그 앤 플레이 하위 시스템에 의해 생성된 UMDF 디바이스 개체와 IDD(간접 디스플레이 드라이버)가 만드는 IDDCX_ADAPTER 개체 간에 일대일 매핑이 있습니다.

단일 간접 디스플레이 동글에 여러 플러그 앤 플레이 디바이스가 포함된 더 복잡한 시나리오가 있을 수 있습니다. 예를 들어 간접 디스플레이 솔루션에는 마이크(오디오 드라이버) 및 카메라(비디오 드라이버)와 같은 여러 PnP 디바이스 기능이 있을 수 있습니다. 이러한 상황에서는 각 PnP 디바이스에 대해 만들어진 여러 UMDF 디바이스 개체에 대해 단일 IDDCX_ADAPTER 개체를 만드는 것은 IDD의 책임입니다. 드라이버는 이 시나리오에서 다음을 고려해야 합니다.

  • IDDCX_ADAPTER 간접 표시 솔루션을 구성하는 모든 PnP 디바이스가 성공적으로 시작된 후에만 만들어야 합니다.
  • 드라이버는 어댑터를 만들 때 단일 WDFDEVICE 를 전달해야 하므로 전달할 UMDF 디바이스를 결정하는 논리가 필요합니다.
  • 간접 디스플레이 어댑터를 구성하는 디바이스에 하드웨어 오류가 있는 경우 드라이버는 어댑터를 구성하는 모든 디바이스를 오류로 보고해야 합니다.

IDDCX_MONITOR

이 개체는 간접 디스플레이 어댑터의 커넥터 중 하나에 연결된 특정 모니터를 나타냅니다.

드라이버는 두 단계 프로세스에서 모니터 개체를 만듭니다.

모니터가 분리되면 드라이버는 IddCxMonitorDeparture 콜백을 호출하여 모니터가 분리되었음을 보고하여 IDDCX_MONITOR 개체가 제거됩니다. 동일한 모니터가 연결되지 않은 다음 다시 연결되더라도 IddCxMonitorDeparture/IddCxMonitorArrival 시퀀스를 다시 호출해야 합니다.

IDDCX_MONITORIDDCX_ADAPTER 개체의 자식입니다.

IDDCX_SWAPCHAIN

이 개체는 연결된 모니터에 표시할 데스크톱 이미지를 제공하는 스왑 체인 을 나타냅니다. 스왑 체인에는 IDD가 다른 버퍼에 액세스하는 동안 OS가 한 버퍼에서 다음 데스크톱 이미지를 작성할 수 있도록 하는 여러 버퍼가 있습니다. IDDCX_SWAPCHAINIDDCX_MONITOR 자식이므로 언제든지 지정된 모니터에 할당된 스왑 체인이 하나만 있습니다.

OS는 IDDCX_SWAPCHAIN 개체를 만들고 삭제하고 EvtIddCxMonitorAssignSwapChainEvtIddCxMonitorUnassignSwapChain Ddi 호출을 사용하여 모니터에 할당/할당을 취소합니다.

IDDCX_OPMCTX

이 개체는 애플리케이션이 단일 모니터에서 출력 보호를 제어하는 데 사용할 수 있는 단일 애플리케이션 OPM 컨텍스트의 활성 OPM(출력 보호 관리자) 컨텍스트를 나타냅니다. 지정된 모니터에서 여러 OPM 컨텍스트를 동시에 활성화할 수 있습니다. OS는 드라이버의 EvtIddCxMonitorOPMCreateProtectedOutputEvtIddCxMonitorOPMDestroyProtectedOutput DDI 호출을 사용하여 OPM 컨텍스트를 만들고 삭제하기 위해 드라이버를 호출합니다.