Programkompatibilitetsdatabas

Kompatibilitetsinfrastrukturen använder en databas för att identifiera problem med programkompatibilitet och deras lösningar. Den här databasen är en indexerad binär fil med filnamnstillägget .sdb. Kompatibilitetsinfrastrukturen tillhandahåller ett programmeringsgränssnitt för åtkomst till databasen.

Kompatibilitetsproblem kan åtgärdas program för program vid körning. Varje program som anges i databasen innehåller en eller flera komponenter som behöver en lösning. Komponenter är körbara filer som vanligtvis beskrivs med hjälp av deras filattribut (till exempel kontrollsumma).

Processen för databassökning och fastställande av lösningar för varje program kallas matchande. Filattributen och förekomsten av associerade filer i mappen eller undermappen som innehåller .exe-filen kan användas för att skapa en unik matchning. De associerade filerna kallas matchande filer.

En TAG- är en unik identifierare för posterna och attributen i databasen. Taggtypen anger formatet på de data som är associerade med TAG-. Till exempel är TAG_NAME av typen TAG_TYPE_STRINGREF; data för TAG_NAME är en namnsträng. Ett TAGID- är en pekare till en post i en viss databas. En TAGREF- är en pekare till en post som kan användas i flera databaser.

Filattribut är metadata som är associerade med en fil på disk. Dessa attribut omfattar filnamn, filstorlek, kontrollsumma, version och datum. Dessa attribut används för att avgöra om en fil som läses in av systemet matchar en databaspost. Därför kallas dessa filattribut även matchande attribut.

Lösningar

De vanligaste lösningarna som tillämpas på komponenterna i ett program är Apphelp och Appfix.

Med Apphelp visas ett anpassat lokaliserat meddelandemeddelande, vanligtvis när programmet installeras eller startas. Den innehåller kort text som förklarar kompatibilitetsproblemet och ger möjlighet att fortsätta köra programmet. Men vissa program kommer att misslyckas dramatiskt tillåts att köras. Apphelp ger inte användaren möjlighet att fortsätta köra dessa program.

Med Appfix installeras krokar för API:er som anropas av programmets komponenter. Dessa krokar pekar på stub-funktioner som kan anropas i stället för systemfunktionerna (kallas även shimming). Stub-funktionerna utför de åtgärder som krävs för att programmet ska kunna köras på den installerade versionen av Windows. Varje stub-funktion kan eventuellt anropa systemfunktionen när den har slutfört sitt arbete. Ett kompatibilitetslager eller läge innehåller en eller flera shims och flaggor.

I det här avsnittet