Condividi tramite


Aggiornamenti per IddCx versioni 1.7 e successive

Questa pagina descrive le modifiche apportate in IddCx 1.7. Un singolo driver di visualizzazione indiretto (IDD) basato su IddCx 1.7 può essere eseguito in Windows 10, versione 1803 e versioni successive usando i controlli di runtime per verificare se le modifiche DDI in IddCx 1.7 sono disponibili nel sistema. Per altre informazioni, vedere Compilazione di un driver WDF per più versioni di Windows .

Le modifiche iddCx 1.7 rientrano nelle categorie seguenti:

  • La versione IddCxGetVersion è stata aggiornata (console e remoto). Per un elenco completo delle informazioni sulla versione correlate a IddCx, vedere Versioni iddCx .
  • È stato aggiunto un DDI del cursore del mouse migliorato (disponibile per la console e il remoto ma solo utile da remoto).
  • Il flag dell'adattatore IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS è stato deprecato (console e remoto).

Versione di IddCxGetVersion aggiornata

La versione IddCx restituita da IddCxGetVersion in Windows Server 2022 è stata aggiornata a IDDCX_VERSION_IRON (0x1700).

Cursore del mouse aggiornato per i driver remoti

Gli ID remoti nelle versioni iddCx precedenti alla versione 1.7 ricevono solo gli aggiornamenti del mouse per gli spostamenti del cursore procedurale . Uno spostamento del cursore procedurale è una modifica della posizione causata da una chiamata API da un'applicazione o dal sistema operativo nel server e non dall'input del mouse inserito nella sessione remota dal client remoto. Ciò comporta alcuni problemi univoci per le sessioni remote. Ad esempio:

  1. In IddCx 1.6 e versioni precedenti, il driver remoto non può indicare se una chiamata API imposta una posizione del mouse sulla stessa posizione due volte.
  2. Non è possibile attivare una modifica della forma o della visibilità del cursore senza una posizione valida. Non si tratta di un problema per gli ID console. Per i driver remoti, tuttavia, quando non sono state apportate modifiche procedurali valide, il DDI deve assegnare un valore di posizione che causerebbe il salto del cursore nel client.

Per risolvere questi problemi, le modifiche seguenti sono state apportate a partire da IddCx 1.7.

IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION flag è stato aggiunto

Il flag della scheda IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION è stato aggiunto a IDDCX_ADAPTER_FLAGS per consentire ai driver remoti di ricevere tutti gli aggiornamenti della posizione del mouse. Questo flag consente a un driver remoto di indicare in base all'adattatore che vuole ricevere tutte le modifiche di posizione del cursore e non solo gli spostamenti procedurali. Questo flag è valido solo se combinato con IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER. IddCxAdapterInitAsync avrà esito negativo se IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION è impostato senza IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER.

IddCxMonitorQueryHardwareCursor2 DDI è stato aggiunto per la posizione del cursore

IddCxMonitorQueryHardwareCursor2 DDI fornisce informazioni sulla posizione del cursore. Questo DDI restituisce una struttura IDARG_OUT_QUERY_HWCURSOR2 . Entrambi i driver remoti e console possono chiamare questo DDI, ma le informazioni nella struttura IDARG_OUT_QUERY_HWCURSOR2 non sono molto rilevanti per i driver della console.

La struttura IDARG_OUT_QUERY_HWCURSOR2 restituisce le informazioni aggiuntive di cursore seguenti:

  • ID posizione (PositionId)

    Prima di IddCx 1.7, il cursore DDI usa un ID forma in modo che il driver possa sapere se la forma è stata modificata dall'ultimo aggiornamento. A partire da IddCx 1.7, è stato aggiunto un ID posizione. Il valore ID posizione cambia se è stata segnalata una nuova posizione del cursore, anche se le coordinate X e Y della nuova posizione sono uguali a quella precedente.

  • Flag valido per la posizione (PositionValid)

    PositionValid indica al driver se la posizione del cursore nella struttura delle informazioni del cursore è valida. Questo flag valido copre i campi X, Y e PositionId . Se questo flag non è impostato, non è possibile usare i campi X, Y e PositionId .

IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS flag deprecato (console e remoto)

A causa delle modifiche apportate al rendering del desktop, a partire dalle aree di spostamento iddCx 1.7 non verranno più fornite in fase di acquisizione. L'elenco di recti sporchi fornito in fase di acquisizione contiene invece tutte le aree modificate dell'immagine e IDDCX_METADATA. MoveRegionCount sarà sempre zero.

I driver possono comunque impostare il flag di IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS per IddCx 1.7 e versioni successive, ma non avrà alcun effetto. Se un driver è progettato per l'esecuzione in pre-IddCx 1.7 e imposta il flag, tale driver deve avere la logica per elaborare gli spostamenti; in caso contrario, gli utenti visualizzeranno problemi visivi durante l'esecuzione nei sistemi pre-IddCx 1.7.