Partager via


Présentation et utilisation des correctifs de compatibilité

Fonctionnement de l’infrastructure de correctif de compatibilité

Au fur et à mesure de l’évolution du système d’exploitation Windows® pour prendre en charge de nouvelles technologies et de nouvelles fonctionnalités, les implémentations de certaines fonctions peut changer. Cela peut entraîner des problèmes pour les applications dont le fonctionnement reposait sur l’implémentation d’origine. Vous pouvez éviter les problèmes de compatibilité en utilisant l’infrastructure de compatibilité des applications de Microsoft Windows (correctif de compatibilité) pour créer un correctif d’application spécifique destiné à une version particulière d’une application. L’infrastructure de correctif de compatibilité utilise la fonction de liaison des API pour rediriger une application du code Windows directement vers un autre code qui implémente le correctif de compatibilité.

Le format de fichier exécutable portable de Windows inclut des en-têtes qui contiennent les répertoires de données utilisés pour fournir une couche d’indirection entre l’application et le fichier lié. Les appels d’API aux fichiers binaires externes se font par l’intermédiaire de la table des adresses d’importation IAT (Import Address Table), laquelle appelle alors directement le système d’exploitation Windows, comme illustré dans la figure suivante.

L’application ACT appelle le système d’exploitation via IAT

Spécifiquement, le processus change l’adresse de la fonction Windows concernée dans la table IAT pour pointer vers le code de correctif de compatibilité, comme illustré dans la figure suivante.

Redirection de l’application ACT avec correctif de compatibilité

Notes

Pour les DLL liées statiquement, la redirection du code se produit lors du chargement par l’application. Vous pouvez aussi corriger des DLL liées dynamiquement au moyen d’un raccord dans l’API GetProcAddress.

Implications de l’infrastructure de correctif de compatibilité en matière de conception

En raison de certaines caractéristiques de l’infrastructure de correctif de compatibilité, d’importantes considérations sont à prendre en compte lors de la détermination de la stratégie de votre correctif d’application.

  • Le correctif de compatibilité ne fait pas partie du système d’exploitation Windows (comme indiqué dans la figure précédente). Les mêmes restrictions en matière de sécurité s’appliquent donc au correctif de compatibilité qu’au code de l’application, ce qui signifie que vous ne pouvez pas utiliser les correctifs de compatibilité pour éviter les mécanismes de sécurité du système d’exploitation. De ce fait, les correctifs de compatibilité n’augmentent pas votre exposition en termes de sécurité, mais vous n’avez pas non plus besoin de diminuer les valeurs de vos paramètres de sécurité pour accueillir les correctifs de compatibilité.

  • L’infrastructure de correctif de compatibilité injecte du code supplémentaire dans l’application avant son appel du système d’exploitation. Cela signifie que toute solution utilisée dans le cadre d’un correctif de compatibilité peut être aussi appliquée en corrigeant le code de l’application.

  • Les correctifs de compatibilité s’exécutent en tant que code en mode utilisateur au sein d’un processus d’application en mode utilisateur. Cela signifie que vous ne pouvez pas faire appel à un correctif de compatibilité pour résoudre les problèmes de code en mode noyau. Par exemple, vous ne pouvez pas utiliser un correctif de compatibilité pour résoudre des problèmes de pilote et de périphérique.

    Notes

    Du code de pare-feu, antivirus et anti-espion s’exécute en mode noyau.

Déterminer quand utiliser un correctif de compatibilité

La décision d’utiliser des correctifs de compatibilité pour résoudre vos problèmes de compatibilité n’implique pas uniquement des problèmes techniques. Les scénarios suivants décrivent d’autres raisons courantes qui justifient l’utilisation d’un correctif de compatibilité.

Scénario 1

Le problème de compatibilité concerne une application qui n’est plus prise en charge par le fournisseur.

Comme de nombreuses entreprises, vous exécutez peut-être des applications pour lesquelles le fournisseur a interrompu la prise en charge. Dans ce cas, vous ne pouvez pas demander au fournisseur de fournir le correctif, et vous ne pouvez pas non plus accéder au code source pour corriger vous-même le problème. Cependant, vous pouvez peut-être résoudre le problème de compatibilité en utilisant un correctif de compatibilité.

Scénario 2

Le problème de compatibilité porte sur une application créée en interne.

Même si vous préférez corriger le code de l’application pour résoudre le problème, cette option n’est pas toujours possible. Votre équipe en interne ne pourra peut-être pas corriger l’ensemble des problèmes avant le déploiement du nouveau système d’exploitation. Au lieu de cela, elle peut choisir d’utiliser un correctif de compatibilité chaque fois que cela est possible. Elle peut alors corriger le code uniquement pour les problèmes ne pouvant être résolus de cette manière. Grâce à cette méthode, votre équipe peut modifier l’application en fonction du temps disponible, sans retarder le déploiement du nouveau système d’exploitation dans votre environnement.

Scénario 3

Le problème de compatibilité concerne une application pour laquelle une version compatible sera publiée dans un futur proche, ou une application qui n’est pas critique pour l’organisation, quelle que soit sa version.

Dans le cas d’une application qui n’est pas importante pour votre organisation, ou dont une version compatible plus récente sera bientôt publiée, vous pouvez faire appel à un correctif de compatibilité comme solution temporaire. Cela signifie que vous pouvez continuer à utiliser l’application sans retarder le déploiement d’un nouveau système d’exploitation avec, pour objectif, la mise à jour de votre configuration dès la publication de la nouvelle version.

Déterminer quelle version d’une application doit être corrigée

Vous pouvez appliquer un correctif de compatibilité à une version spécifique d’une application en utilisant la clause « up to or including » ou en sélectionnant cette version spécifique. Cela signifie que le correctif de compatibilité ne sera pas appliqué automatiquement à la prochaine version de l’application. Cette considération est importante, car elle vous permet de continuer à utiliser votre application, mais elle encourage aussi le fournisseur à corriger l’application.

Prise en charge des correctifs de compatibilité

Les correctifs de compatibilité sont livrés avec le système d’exploitation Windows et sont mis à jour à l’aide de Windows Update. Ils bénéficient donc du même niveau de prise en charge que Windows.

Vous pouvez appliquer les correctifs de compatibilité à toutes vos applications. Cependant, Microsoft ne fournit pas les outils permettant d’utiliser l’infrastructure de correctif de compatibilité pour créer vos propres correctifs personnalisés.

Voir aussi

Autres ressources

Gestion des correctifs de compatibilité d’applications et des bases de données de correctifs personnalisés