Base de données de compatibilité des applications
L’infrastructure de compatibilité utilise une base de données pour identifier les problèmes de compatibilité des applications et leurs solutions. Cette base de données est un fichier binaire indexé avec une extension. sdb. L’infrastructure de compatibilité fournit une interface de programmation pour accéder à la base de données.
Les problèmes de compatibilité peuvent être traités application par application au moment de l’exécution. Chaque application spécifiée dans la base de données contient un ou plusieurs composants qui ont besoin d’une solution. Les composants sont des fichiers exécutables qui sont généralement décrits à l’aide de leurs attributs de fichier (par exemple, checksum).
Le processus de recherche de base de données et de détermination des solutions pour chaque application est appelé correspondance. Les attributs de fichier et la présence de fichiers associés dans le dossier ou sous-dossier contenant le fichier .exe peuvent être utilisés pour créer une correspondance unique. Les fichiers associés sont appelés fichiers correspondants.
Une balise est un identificateur unique pour les entrées et les attributs de la base de données. Le type de balise indique le format des données associées à la balise. Par exemple, le _ nom de la balise est de type tag _ _ STRINGREF; les données pour tag _ Name sont une chaîne de nom. Un TagId est un pointeur vers une entrée dans une base de données particulière. Un TAGREF est un pointeur vers une entrée qui peut être utilisée sur plusieurs bases de données.
Les attributs de fichier sont des métadonnées associées à un fichier sur le disque. Ces attributs incluent le nom du fichier, la taille du fichier, la somme de contrôle, la version et la date. Ces attributs sont utilisés pour déterminer si un fichier chargé par le système correspond à une entrée de base de données. Par conséquent, ces attributs de fichier sont également appelés attributs correspondants.
Solutions
Les solutions les plus courantes appliquées aux composants d’une application sont AppHelp et AppFix.
Avec AppHelp, une notification de message localisée personnalisée s’affiche, généralement lorsque l’application est installée ou démarrée. Il contient un bref texte qui explique le problème de compatibilité et offre la possibilité de continuer à exécuter l’application. Toutefois, certaines applications échouent considérablement et peuvent être exécutées ; AppHelp ne donne pas à l’utilisateur la possibilité de continuer à exécuter ces applications.
Avec AppFix, les raccordements sont installés pour les API appelées par les composants de l’application. Ces points de raccordement pointent vers des fonctions stub qui peuvent être appelées à la place des fonctions système (également appelées « Shiming»). Les fonctions stub effectuent les opérations nécessaires pour permettre à l’application de s’exécuter sur la version installée de Windows. Chaque fonction stub peut éventuellement appeler la fonction système après avoir terminé son travail. Une couche ou un mode de compatibilité contient un ou plusieurs shims et indicateurs.
Dans cette section
- _données APPHELP
- ATTRINFO
- BaseFlushAppcompatCache
- Rechercher des _ informations
- INDEXID contient
- TYPE de chemin _
- SdbBeginWriteListTag
- SdbCloseDatabase
- SdbCloseDatabaseWrite
- SdbCommitIndexes
- SdbCreateDatabase
- SdbDeclareIndex
- SdbEndWriteListTag
- SdbFindFirstDWORDIndexedTag
- SdbFindFirstTag
- SdbFindNextTag
- SdbFormatAttribute
- SdbFreeFileAttributes
- SdbGetAppPatchDir
- SdbGetBinaryTagData
- SdbGetFileAttributes
- SdbGetFirstChild
- SdbGetIndex
- SdbGetMatchingExe
- SdbGetNextChild
- SdbGetStringTagPtr
- SdbGetTagFromTagID
- SdbInitDatabase
- SdbIsStandardDatabase
- SdbMakeIndexKeyFromString
- SdbOpenApphelpDetailsDatabase
- SdbOpenApphelpResourceFile
- SdbOpenDatabase
- SdbQueryDataExTagID
- SDBQUERYRESULT
- SdbReadApphelpDetailsData
- SdbReadBinaryTag
- SdbReadDWORDTag
- SdbReadQWORDTag
- SdbReadStringTag
- SdbRegisterDatabaseEx
- SdbReleaseDatabase
- SdbReleaseMatchingExe
- SdbStartIndexing
- SdbStopIndexing
- SdbTagRefToTagID
- SdbTagToString
- SdbUnregisterDatabase
- SdbWriteBinaryTag
- SdbWriteBinaryTagFromFile
- SdbWriteDWORDTag
- SdbWriteNULLTag
- SdbWriteQWORDTag
- SdbWriteStringTag
- SdbWriteWORDTag
- Types de bases de données shim
- ShimFlushCache
- Référence
- Types de BALISes
- TAGID
- TAGREF