Compartir a través de


Novedades para las versiones 1.7 y posteriores de IddCx

En esta página se describen los cambios realizados en IddCx 1.7. Un único archivo binario de controlador de pantalla indirecto (IDD) creado con IddCx 1.7 se puede ejecutar en Windows 10, versión 1803 y posteriores mediante comprobaciones en tiempo de ejecución para comprobar si los cambios de DDI en IddCx 1.7 están disponibles en ese sistema. Consulta Compilar un controlador WDF para varias versiones de Windows para obtener más información.

Los cambios de IddCx 1.7 se dividen en las siguientes categorías:

  • La versión iddCxGetVersion se actualizó (consola y remoto). Consulte Versiones de IddCx para obtener una lista completa de la información de versión relacionada con IddCx.
  • Se ha agregado un DDI de cursor de mouse mejorado (disponible para consola y remoto, pero solo útil desde remoto).
  • La marca del adaptador de IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS estaba en desuso (consola y remoto).

Versión actualizada de IddCxGetVersion

La versión iddCx devuelta por IddCxGetVersion en Windows Server 2022 se actualizó a IDDCX_VERSION_IRON (0x1700).

Cursor de mouse actualizado para controladores remotos

Los IDD remotos de las versiones de IddCx anteriores a la 1.7 solo reciben actualizaciones del mouse para los movimientos de cursor de procedimiento . Un movimiento de cursor de procedimiento es un cambio de posición causado por una llamada API desde una aplicación o el sistema operativo en el servidor, y no por la entrada del mouse insertada en la sesión remota desde el cliente remoto. Esto provoca algunos problemas que son exclusivos de las sesiones remotas. Por ejemplo:

  1. En IddCx 1.6 y versiones anteriores, el controlador remoto no puede indicar si una llamada API establece una posición del mouse en la misma posición dos veces.
  2. No se puede desencadenar un cambio en la forma o visibilidad del cursor sin una posición válida. Este no es un problema para los IDENTIFICADORes de consola. Sin embargo, en el caso de los controladores remotos, cuando no haya habido ningún cambio de posición de procedimiento válido, la DDI tendría que proporcionar un valor de posición que haría que el cursor saltara al cliente.

Para solucionar estos problemas, se realizaron los siguientes cambios a partir de IddCx 1.7.

se agregó IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION marca

La marca del adaptador de IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION se agregó a IDDCX_ADAPTER_FLAGS para permitir que los controladores remotos reciban todas las actualizaciones de posición del mouse. Esta marca permite que un controlador remoto indique en un adaptador que quiere recibir todos los cambios de posición del cursor y no solo movimientos de procedimientos. Esta marca solo es válida cuando se combina con IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER. Se producirá un error en IddCxAdapterInitAsync si se establece IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION sin IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER.

IddCxMonitorQueryHardwareCursor2 DDI se agregó para la posición del cursor

IddCxMonitorQueryHardwareCursor2 DDI proporciona información sobre la posición del cursor. Este DDI devuelve una estructura de IDARG_OUT_QUERY_HWCURSOR2 . Los controladores remotos y de consola pueden llamar a este DDI, pero la información de la estructura de IDARG_OUT_QUERY_HWCURSOR2 no es muy relevante para los controladores de consola.

La estructura IDARG_OUT_QUERY_HWCURSOR2 devuelve la siguiente información adicional sobre el cursor:

  • Identificador de posición (PositionId)

    Antes de IddCx 1.7, el DDI del cursor usa un identificador de forma para que el controlador pueda saber si la forma ha cambiado desde la última actualización. A partir de IddCx 1.7, se agregó un identificador de posición. El valor del identificador de posición cambia si se ha notificado una nueva posición del cursor, incluso si las coordenadas X e Y de la nueva posición son las mismas que las antiguas.

  • Una marca válida de posición (PositionValid)

    PositionValid indica al controlador si la posición del cursor en la estructura de información del cursor es válida. Esta marca válida cubre los campos X, Y y PositionId . Si no se establece esta marca, no se pueden usar los campos X, Y y PositionId .

IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS marca en desuso (consola y remoto)

Debido a los cambios en la forma en que se representa el escritorio, a partir de IddCx 1.7, las regiones de movimiento ya no se proporcionarán en tiempo de adquisición. En su lugar, la lista de rectts sucios proporcionada en el período de adquisición contiene todas las regiones modificadas de la imagen y IDDCX_METADATA. MoveRegionCount siempre será cero.

Los controladores todavía pueden establecer la marca de IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS para IddCx 1.7 y versiones posteriores, pero no tendrá ningún efecto. Si un controlador está diseñado para ejecutarse en pre-IddCx 1.7 y establece la marca , ese controlador debe tener la lógica para procesar los movimientos; de lo contrario, los usuarios verán problemas visuales al ejecutarse en sistemas anteriores a IddCx 1.7.