Database di compatibilità delle applicazioni
L'infrastruttura di compatibilità usa un database per identificare i problemi di compatibilità delle applicazioni e le relative soluzioni. Questo database è un file binario indicizzato con estensione sdb. L'infrastruttura di compatibilità fornisce un'interfaccia di programmazione per accedere al database.
I problemi di compatibilità possono essere risolti in base all'applicazione in fase di esecuzione. Ogni applicazione specificata nel database contiene uno o più componenti che richiedono una soluzione. I componenti sono file eseguibili descritti in genere usando i relativi attributi di file , ad esempio checksum.
Il processo di ricerca del database e la determinazione delle soluzioni per ogni applicazione viene chiamato corrispondenza. Gli attributi del file e la presenza di file associati nella cartella o nella sottocartella contenente il file .exe possono essere usati per creare una corrispondenza univoca. I file associati sono denominati file corrispondenti.
Un TAG è un identificatore univoco per le voci e gli attributi nel database. Il tipo TAG indica il formato dei dati associati al TAG. Ad esempio, TAG_NAME è di tipo TAG_TYPE_STRINGREF; i dati per TAG_NAME sono una stringa di nome. TAGID è un puntatore a una voce in un database specifico. TAGREF è un puntatore a una voce che può essere usata in più database.
Gli attributi di file sono metadati associati a un file su disco. Questi attributi includono il nome del file, le dimensioni del file, il checksum, la versione e la data. Questi attributi vengono usati per determinare se un file caricato dal sistema corrisponde a una voce di database. Di conseguenza, questi attributi di file sono detti anche attributi corrispondenti.
Soluzioni
Le soluzioni più comuni applicate ai componenti di un'applicazione sono Apphelp e Appfix.
Con Apphelp viene visualizzata una notifica di messaggio localizzata personalizzata, in genere quando l'applicazione viene installata o avviata. Contiene un breve testo che spiega il problema di compatibilità e offre la possibilità di continuare a eseguire l'applicazione. Tuttavia, alcune applicazioni avranno esito negativo drasticamente è consentito eseguire; Apphelp non offrirà all'utente la possibilità di continuare a eseguire queste applicazioni.
Con Appfix, gli hook vengono installati per le API chiamate dai componenti dell'applicazione. Questi hook puntano a funzioni stub che possono essere chiamate invece delle funzioni di sistema (note anche come shimming). Le funzioni stub eseguono operazioni necessarie per consentire l'esecuzione dell'applicazione nella versione installata di Windows. Ogni funzione stub può facoltativamente chiamare la funzione di sistema dopo aver completato il proprio lavoro. Un livello o una modalità di compatibilità contiene uno o più shim e flag.
In questa sezione
- APPHELP_DATA
- ATTRINFO
- BaseFlushAppcompatCache
- FIND_INFO
- INDEXID
- PATH_TYPE
- 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
- Tipi di database shim
- ShimFlushCache
- TAG
- Tipi TAG
- TAGID
- TAGREF