Partager via


Pilotes miroir

Vue d’ensemble

À compter de Windows 8, miroir pilotes ne seront pas installés sur le système. Les pilotes miroirs décrits dans cette section s’installent et s’exécutent uniquement sur les versions antérieures de Windows.

Toutefois, un modèle de pilote d’accessibilité GDI spécial est disponible à partir de Windows 8 pour les développeurs qui souhaitent fournir des fonctionnalités de pilote miroir dans les technologies d’assistance pour les clients handicapés ou handicapés. Pour en savoir plus sur ce modèle de pilote spécial, contactez acc_driver@microsoft.com.

Un modèle de pilote d’affichage distant basé sur l’architecture du pilote miroir peut également s’exécuter à partir de Windows 8, mais a été supprimé dans Windows 10 version 2004. Pour plus d’informations, consultez Pilotes d’affichage distants.

Notes

À partir de Windows 10, les pilotes d’accessibilité GDI ne sont plus recommandés pour les nouveaux produits et Microsoft supprimera la prise en charge dans une prochaine version du système d’exploitation. La prise en charge des pilotes d’affichage distant GDI a déjà été supprimée dans Windows 10 version 2004. Toutefois, la création d’une solution d’affichage à distance est toujours possible en créant un fournisseur de protocole à distance personnalisé et un pilote d’affichage indirect.

Description du pilote miroir

Un pilote miroir est un pilote d’affichage pour un périphérique virtuel qui reflète les opérations de dessin d’un ou plusieurs périphériques d’affichage physique supplémentaires. Il est implémenté et se comporte comme n’importe quel autre pilote d’affichage ; cependant, son pilote de miniport vidéo jumelé est minimal par rapport à un pilote miniport classique. Pour plus d’informations sur les pilotes miniport dans les systèmes de mise en miroir, consultez Prise en charge des pilotes miroir dans les pilotes miniports vidéo (modèle Windows 2000). Le Kit de pilotes Windows (WDK) via l’édition Windows 7 (version 7600) contient un exemple de pilote miroir qui inclut des fichiers sources de composants contenus dans trois répertoires.

Répertoire Contient des fichiers sources pour
\src\video\displays\miroir\disp Pilote miroir.
\src\video\miniport\miroir\mini Le pilote miniport.
\src\video\displays\miroir\app Service en mode utilisateur. Contient également miroir.inf.

GDI prend en charge un bureau virtuel et offre la possibilité de répliquer une partie du bureau virtuel sur un appareil miroir. GDI implémente le bureau virtuel en tant que couche graphique au-dessus de la couche de pilote d’affichage physique. Toutes les opérations de dessin commencent dans cet espace de bureau virtuel ; GDI extrait et les affiche sur les périphériques d’affichage physique appropriés qui existent dans le bureau virtuel.

Un appareil miroir peut spécifier une région de clip arbitraire dans le bureau virtuel, y compris une région qui s’étend sur plusieurs appareils d’affichage physiques. GDI envoie ensuite le miroir périphérique toutes les opérations de dessin qui croisent la région d’clip de ce pilote. Un appareil miroir peut définir une région de clip qui correspond exactement à un appareil physique particulier ; par conséquent, il peut efficacement miroir cet appareil.

Notes

Dans Windows 2000 et versions ultérieures, la région clip du pilote miroir doit inclure le périphérique d’affichage principal.

Dans Windows Vista et versions ultérieures, le Gestionnaire Windows de bureau (DWM) est désactivé lorsque le pilote miroir est chargé.

L’exemple de code de pilote miroir montre comment implémenter un pilote miroir. Pour plus d’informations qui vous aideront à comprendre l’exemple :

  • Utilisez l’exemple de fichier INF, miroir.inf, comme modèle. Pour plus d’informations, consultez Fichier INF du pilote miroir .
  • Consultez l’applicationmirror.exe, qui montre comment le pilote miroir est attaché au bureau virtuel. Pour plus d’informations, consultez Installation du pilote miroir .
  • Pour plus d’informations sur l’utilisation de la fonction Win32 EnumDisplayDevices , consultez la documentation du Kit de développement logiciel (SDK) Windows. Vous utilisez cette fonction pour déterminer le nom \\.\Display# associé à votre périphérique d’affichage mis en miroir. Ce numéro est requis pour modifier les paramètres de votre appareil mis en miroir. Pour plusieurs instances, est un nombre différent pour chaque instance ; par conséquent, # vous devez déterminer ce nombre en itérant sur les appareils d’affichage disponibles.

Attachement de l’appareil mis en miroir au bureau global

  1. Ajoutez l’entrée de Registre de REG_DWORD Attach.ToDesktop aux clés de services de votre pilote.

  2. Définissez l’entrée de cette clé sur 1 (un).

Pour désactiver le pilote miroir, définissez cette entrée sur 0 (zéro).

Comme mentionné précédemment, le pilote est installé et fonctionne dans une couche de dessin située au-dessus de la couche d’appareil. Étant donné que l’espace de coordonnées du pilote miroir est l’espace de coordonnées du bureau, il peut s’étendre sur plusieurs appareils. Si le pilote miroir est destiné à miroir l’affichage principal, ses coordonnées d’affichage doivent coïncider avec les coordonnées de bureau de l’affichage principal.

  • Une fois le pilote miroir installé, il est appelé pour toutes les opérations de rendu qui croisent la région d’affichage du pilote. Sur un système à plusieurs moniteurs, cela peut ne pas inclure toutes les opérations de dessin si le pilote miroir chevauche uniquement le périphérique d’affichage principal.

  • Il est recommandé d’utiliser un service en mode utilisateur pour gérer les paramètres du pilote miroir. Cette application peut s’assurer que le pilote est chargé correctement au moment du démarrage et elle peut répondre de manière appropriée aux modifications apportées au bureau en obtenant des notifications d’affichage des modifications via le message WM_DISPLAYCHANGE.

  • GDI appelle le pilote miroir pour toute opération de dessin DDI graphiques 2D qui croise le rectangle englobant du pilote. Notez que GDI n’effectue pas de rectangle englobant case activée si la surface est une image bitmap au format d’appareil; autrement dit, si surFOBJ a un iType de STYPE_DEVBITMAP.

  • Comme toujours, le pilote miroir doit être implémenté sans utiliser de variables globales. Tous les états doivent exister dans le PDEV pour ce pilote particulier. GDI appelle DrvEnablePDEV pour chaque extension de périphérique matérielle créée par le pilote de miniport vidéo.

  • Le pilote miroir ne doit pas prendre en charge DirectDraw.

  • Un pilote miroir doit définir l’indicateur GCAPS_LAYERED sur TRUE dans le membre flGraphicsCaps de la structure DEVINFO.

  • Un pilote miroir d’accessibilité doit définir les indicateurs GCAPS2_EXCLUDELAYERED et GCAPS2_INCLUDEAPIBITMAPS sur TRUE dans le membre flGraphicsCaps2 de la structure DEVINFO.

  • Un pilote miroir peut éventuellement prendre en charge les réalisations de pinceau en implémentant DrvRealizeBrush.

GDI permet au même pilote de s’exécuter sur un système à moniteur unique et à plusieurs moniteurs. Un pilote dans un système à plusieurs moniteurs n’a besoin que de suivre sa position dans le bureau global. GDI fournit cette position au pilote chaque fois qu’un appel Win32 ChangeDisplaySettings se produit, par exemple lorsqu’un utilisateur modifie dynamiquement la position du moniteur sur le bureau à l’aide du programme Display dans Panneau de configuration. GDI met à jour le membre dmPosition de la structure DEVMODEW en conséquence lorsqu’une telle modification se produit. Un pilote peut recevoir la notification d’une telle modification en implémentant DrvNotify. Pour plus d’informations, consultez Installation du pilote miroir .

Notes

Les pilotes miroirs ne sont pas nécessaires pour effectuer un rendu avec une précision parfaite en pixels lorsque le rendu côté client avec une telle précision peut être difficile. Par exemple, l’adaptateur/moniteur recevant l’image mise en miroir n’est pas nécessaire pour afficher le dessin de ligne d’intersection de grille (GIQ) et les remplissages de polygones avec la même précision que l’adaptateur/moniteur mis en miroir.