Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El marco IddCx (Extensión de Clase de Controlador de Pantalla Indirecta) usa el modelo de objetos extensible de UMDF para representar los distintos componentes de los dispositivos de visualización indirecta. El modelo de objetos UMDF permite asociar el almacenamiento específico del controlador a cada objeto IddCx (y, por tanto, UMDF). Para obtener más información, vea Modelo de objetos UMDF.
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 visualización lógico creado por el controlador en un proceso de dos fases:
- El controlador llama a la función de devolución de llamada IddCxAdapterInitAsync.
- El sistema operativo llama al DDI EvtIddCxAdapterInitFinished del controlador para completar la inicialización.
El modelo IDD no tiene un callback explícito de adaptador de eliminación. Una vez que se completa correctamente la secuencia de inicialización del adaptador, este sigue siendo válido hasta que se detenga el dispositivo UMDF especificado durante la inicialización. Cuando el controlador de pantalla indirecto (IDD) crea el adaptador, proporciona información estática del adaptador sobre el mismo.
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 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, el IDD es responsable de crear un único objeto IDDCX_ADAPTER para los varios objetos de dispositivo UMDF creados para cada dispositivo PnP. El controlador debe tener en cuenta los siguientes puntos en este escenario:
- El IDDCX_ADAPTER solo debe crearse una vez que todos los dispositivos PnP que componen la solución de visualización indirecta se inician 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 al callback IddCxMonitorCreate para crear el objeto IDDCX_MONITOR.
- Luego, invoca 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 notificarlo. Esta llamada hace que el objeto IDDCX_MONITOR se destruya. Incluso si se desconecta y luego se vuelve a conectar el mismo monitor, es necesario llamar de nuevo 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 proporciona imágenes de escritorio para mostrar en un monitor conectado. La cadena de intercambio tiene varios búferes para permitir que el sistema operativo componga 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 hay 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 los monitores mediante las llamadas EvtIddCxMonitorAssignSwapChain y EvtIddCxMonitorUnassignSwapChain.
IDDCX_OPMCTX
Este objeto representa un contexto activo de Output Protection Manager (OPM) de una única aplicación que la aplicación puede usar para controlar la protección de salida en un único monitor. Varios contextos de OPM pueden estar activos en un monitor determinado al mismo tiempo. El sistema operativo invoca al controlador para crear y destruir los contextos OPM a través de las llamadas DDI del controlador EvtIddCxMonitorOPMCreateProtectedOutput y EvtIddCxMonitorOPMDestroyProtectedOutput.