Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page décrit les modifications apportées dans IddCx 1.7. Un fichier binaire IDD (Indirect Display Driver) unique généré sur IddCx 1.7 peut s’exécuter sur Windows 10, version 1803 et ultérieure à l’aide de vérifications d’exécution pour vérifier si les modifications DDI dans IddCx 1.7 sont disponibles sur ce système. Pour plus d’informations, consultez Création d’un pilote WDF pour plusieurs versions de Windows .
Les modifications IddCx 1.7 appartiennent aux catégories suivantes :
- La version IddCxGetVersion a été mise à jour (console et distante). Consultez les versions IddCx pour obtenir la liste complète des informations de version associées à IddCx.
- Une DDI de curseur de souris améliorée a été ajoutée (disponible pour la console et à distance, mais uniquement utile à distance).
- L’indicateur de l’adaptateur IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS a été déconseillé (console et distant).
Mise à jour de la version IddCxGetVersion
La version IddCx retournée par IddCxGetVersion sur Windows Server 2022 a été mise à jour vers IDDCX_VERSION_IRON (0x1700).
Curseur de la souris mis à jour pour les pilotes distants
Les IDD distants dans les versions IddCx antérieures à la version 1.7 reçoivent uniquement les mises à jour de la souris pour les déplacements de curseur procédural . Un déplacement de curseur procédural est un changement de position provoqué par un appel d’API à partir d’une application ou du système d’exploitation sur le serveur, et non par l’entrée de la souris injectée dans la session distante à partir du client distant. Cela entraîne des problèmes uniques aux sessions à distance. Par exemple:
- Dans IddCx 1.6 et versions antérieures, le pilote distant ne peut pas indiquer si un appel d’API définit une position de souris sur la même position deux fois.
- Une modification de la forme ou de la visibilité du curseur ne peut pas être déclenchée sans position valide. Ce n’est pas un problème pour les IDD de console. Pour les pilotes distants, toutefois, lorsqu’aucune position procédurale valide n’a été modifiée, la DDI doit donner une valeur de position qui entraînerait le saut du curseur dans le client.
Pour résoudre ces problèmes, les modifications suivantes ont été apportées à partir d’IddCx 1.7.
L'indicateur IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION a été ajouté
L’indicateur d’adaptateur IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION a été ajouté à IDDCX_ADAPTER_FLAGS pour permettre aux pilotes distants de recevoir toutes les mises à jour de position de la souris. Cet indicateur permet à un pilote distant d’indiquer en fonction d’un adaptateur qu’il souhaite recevoir toutes les modifications de position du curseur et pas seulement les déplacements procéduraux. Cet indicateur n’est valide qu’en cas de combinaison avec IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER. IddCxAdapterInitAsync échoue si IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION est défini sans IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER.
IddCxMonitorQueryHardwareCursor2 DDI a été ajouté pour gérer la position du curseur
IddCxMonitorQueryHardwareCursor2 DDI fournit des informations de position de curseur. Cette DDI retourne une structure IDARG_OUT_QUERY_HWCURSOR2 . Les pilotes à distance et de console peuvent appeler cette DDI, mais les informations contenues dans la structure IDARG_OUT_QUERY_HWCURSOR2 ne revêtent pas une grande pertinence pour les pilotes de console.
La structure IDARG_OUT_QUERY_HWCURSOR2 retourne les informations de curseur supplémentaires suivantes :
ID de position (PositionId)
Avant IddCx 1.7, le curseur DDI utilise un ID de forme afin que le pilote puisse savoir si la forme a changé depuis la dernière mise à jour. À compter d’IddCx 1.7, un ID de position a été ajouté. La valeur de l’ID de position change si une nouvelle position de curseur a été signalée, même si les coordonnées X et Y de la nouvelle position sont identiques à l’ancienne.
Indicateur de position valide (PositionValid)
PositionValid indique au pilote si la position du curseur dans la structure des informations du curseur est valide. Cet indicateur valide couvre les champs X, Y et PositionId . Si cet indicateur n’est pas défini, les champs X, Y et PositionId ne peuvent pas être utilisés.
IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS indicateur déconseillé (console et distant)
À partir de la version IddCx 1.7, en raison des modifications apportées à la façon dont le bureau est rendu, les régions de déplacement ne seront plus fournies au moment de l’acquisition des trames. Au lieu de cela, la liste de rectangles sales fournie au moment de l’acquisition contient toutes les régions modifiées de l’image et IDDCX_METADATA. MoveRegionCount sera toujours égal à zéro.
Les pilotes peuvent toujours définir l’indicateur IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS pour IddCx 1.7 et versions ultérieures, mais il n’aura aucun effet. Si un pilote est conçu pour s’exécuter sur des versions antérieures à IddCx 1.7 et définit le drapeau, ce pilote doit inclure la logique nécessaire pour traiter les mouvements ; sinon, les utilisateurs auront des problèmes d’affichage lors de l’exécution sur des systèmes antérieurs à IddCx 1.7.