애플리케이션 호환성 데이터베이스
호환성 인프라는 데이터베이스를 사용하여 애플리케이션 호환성 문제 및 해당 솔루션을 식별합니다. 이 데이터베이스는 .sdb 확장자를 사용하는 인덱싱된 이진 파일입니다. 호환성 인프라는 데이터베이스에 액세스하기 위한 프로그래밍 인터페이스를 제공합니다.
호환성 문제는 런타임에 애플리케이션별로 해결할 수 있습니다. 데이터베이스에 지정된 각 애플리케이션에는 솔루션이 필요한 하나 이상의 구성 요소가 포함되어 있습니다. 구성 요소는 일반적으로 파일 특성(예: 체크섬)을 사용하여 설명하는 실행 파일입니다.
데이터베이스 조회 및 각 애플리케이션에 대한 솔루션 확인 프로세스를 일치라고 합니다. 파일 특성과 .exe 파일이 포함된 폴더 또는 하위 폴더에 연결된 파일의 존재를 사용하여 고유한 일치 항목을 만들 수 있습니다. 연결된 파일을 일치하는 파일이라고 합니다.
TAG는 데이터베이스의 항목 및 특성에 대한 고유 식별자입니다. TAG 형식은 TAG와 연결된 데이터의 형식을 나타냅니다. 예를 들어 TAG_NAMETAG_TYPE_STRINGREF 형식입니다. TAG_NAME 대한 데이터는 이름 문자열입니다. TAGID는 특정 데이터베이스의 항목에 대한 포인터입니다. TAGREF는 여러 데이터베이스에서 사용할 수 있는 항목에 대한 포인터입니다.
파일 특성 은 디스크의 파일과 연결된 메타데이터입니다. 이러한 특성에는 파일 이름, 파일 크기, 체크섬, 버전 및 날짜가 포함됩니다. 이러한 특성은 시스템에서 로드하는 파일이 데이터베이스 항목과 일치하는지 여부를 확인하는 데 사용됩니다. 따라서 이러한 파일 특성을 일치 특성이라고도 합니다.
솔루션
애플리케이션의 구성 요소에 적용되는 가장 일반적인 솔루션은 Apphelp 및 Appfix입니다.
Apphelp를 사용하면 일반적으로 애플리케이션이 설치되거나 시작될 때 사용자 지정 지역화된 메시지 알림이 표시됩니다. 호환성 문제를 설명하고 애플리케이션을 계속 실행하는 옵션을 제공하는 간단한 텍스트가 포함되어 있습니다. 그러나 일부 애플리케이션은 실행이 크게 실패합니다. Apphelp는 사용자에게 이러한 애플리케이션을 계속 실행하는 옵션을 제공하지 않습니다.
Appfix를 사용하면 애플리케이션의 구성 요소에서 호출하는 API에 대한 후크가 설치됩니다. 이러한 후크는 시스템 함수( shimming이라고도 함) 대신 호출할 수 있는 스텁 함수를 가리킵니다. 스텁 함수는 설치된 버전의 Windows에서 애플리케이션을 실행할 수 있도록 하는 데 필요한 작업을 수행합니다. 각 스텁 함수는 작업을 완료한 후 필요에 따라 시스템 함수를 호출할 수 있습니다. 호환성 계층 또는 모드에는 하나 이상의 shim 및 플래그가 포함됩니다.
섹션 내용
- 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
- Shim 데이터베이스 형식
- ShimFlushCache
- 태그
- TAG 형식
- TAGID
- TAGREF