Compartir a través de


Objetos IddCx

IddCx (eXtension de clase de controlador de pantalla indirecta) usa el modelo de objetos UMDF extensible para representar los componentes del dispositivo de visualización indirecto. El modelo de objetos UMDF permite asociar el almacenamiento específico del controlador a cada objeto IddCx (y, por tanto, UMDF). Consulte Modelo de objetos umdf para obtener más información.

El orden en que se crean los objetos IDD es:

  • El controlador crea primero un objeto IDDCX_ADAPTER .
  • A continuación, el controlador crea un objeto IDDCX_MONITOR .
  • Una vez creados los objetos IDDCX_ADAPTER y IDDCX_MONITOR , el sistema operativo crea IDDCX_SWAPCHAIN y IDDCX_OPMCTX objetos y los envía al controlador.

En las secciones siguientes se proporcionan más detalles sobre estos objetos.

IDDCX_ADAPTER

Este objeto representa un único adaptador de pantalla lógico creado por el controlador en un proceso de dos fases:

El modelo IDD no tiene una devolución de llamada explícita del adaptador de destrucción. Una vez que la secuencia de inicialización del adaptador se ha completado correctamente, el adaptador es válido hasta que se detenga el dispositivo UMDF pasado en el momento de la inicialización. Al crear el adaptador, el controlador proporciona información de adaptador estático sobre el adaptador de pantalla indirecto.

Control de dispositivos multifunción

En el caso más sencillo, hay una asignación uno a uno entre el objeto de dispositivo UMDF creado por el subsistema plug and play para el dispositivo de visualización indirecto conectado y el objeto IDDCX_ADAPTER que crea el controlador de pantalla indirecto (IDD).

Puede haber escenarios más complejos en los que un único dongle de pantalla indirecta contiene varios dispositivos plug and play. Por ejemplo, una solución de visualización indirecta podría tener varias funciones de dispositivo PnP, como un micrófono (controlador de audio) y una cámara (controlador de vídeo). En tales situaciones, es responsabilidad del IDD crear un único objeto de IDDCX_ADAPTER para los varios objetos de dispositivo UMDF creados para cada dispositivo PnP. El controlador debe tener en cuenta lo siguiente en este escenario:

  • El IDDCX_ADAPTER solo se debe crear una vez que todos los dispositivos PnP que componen la solución de visualización indirecta se han iniciado correctamente.
  • El controlador debe pasar un único WDFDEVICE al crear el adaptador, por lo que requiere lógica para decidir qué dispositivo UMDF pasará.
  • Si alguno de los dispositivos que componen el adaptador de pantalla indirecto tiene un error de hardware, el controlador debe notificar todos los dispositivos que componen el adaptador como en error.

IDDCX_MONITOR

Este objeto representa un monitor específico conectado a uno de los conectores del adaptador de pantalla indirecto.

El controlador crea el objeto de supervisión en un proceso de dos fases:

  • Primero llama a la devolución de llamada IddCxMonitorCreate para crear el objeto IDDCX_MONITOR .
  • A continuación, llama a la devolución de llamada IddCxMonitorArrival para completar la llegada del monitor.

Cuando un monitor está desconectado, el controlador llama a la devolución de llamada IddCxMonitorDeparture para informar de que el monitor se ha desconectado, lo que hace que se destruya el objeto IDDCX_MONITOR . Incluso si el mismo monitor no está conectado, se debe volver a llamar a la secuencia IddCxMonitorDeparture/IddCxMonitorArrival .

El IDDCX_MONITOR es un elemento secundario del objeto IDDCX_ADAPTER .

IDDCX_SWAPCHAIN

Este objeto representa una cadena de intercambio que proporcionará imágenes de escritorio que se mostrarán en un monitor conectado. La cadena de intercambio tiene varios búferes para permitir que el sistema operativo redacte la siguiente imagen de escritorio en un búfer mientras el IDD accede a otro búfer. El IDDCX_SWAPCHAIN es un elemento secundario del IDDCX_MONITOR , por lo que solo habrá una cadena de intercambio asignada a un monitor determinado en cualquier momento.

El sistema operativo crea y destruye los objetos IDDCX_SWAPCHAIN y los asigna o desasigna a monitores mediante las llamadas EvtIddCxMonitorAssignSwapChain y EvtIddCxMonitorUnassignSwapChain Ddi.

IDDCX_OPMCTX

Este objeto representa un contexto activo de Output Protection Manager (OPM) desde un único contexto de OPM de aplicación que la aplicación puede usar para controlar la protección de salida en un solo monitor. Varios contextos de OPM pueden estar activos en un monitor determinado al mismo tiempo. El sistema operativo llama al controlador para crear y destruir los contextos de OPM mediante las llamadas DDI EvtIddCxMonitorOPMCreateProtectedOutput y EvtIddCxMonitorOPMDestroyProtectedOutput del controlador.