Geoff Chappell, Software Analyst
The table below lists all the functions that are exported from APPHELP.DLL version 5.1. Though this is the first known version of APPHELP, many of the functions it exports pre-date APPHELP as exports from an SDBAPIU.DLL that is known only in Windows 2000 SP3 and SP4, and a few have a separate existence as internal routines in the kernel.
Function | Remarks |
---|---|
AllowPermLayer | |
ApphelpCheckExe | supported by DelayLoadFailureHook in 5.1 and higher |
ApphelpCheckIME | |
ApphelpCheckInstallShieldPackage | |
ApphelpCheckMsiPackage | |
ApphelpCheckRunApp | supported by DelayLoadFailureHook in 6.1 and higher |
ApphelpCheckShellObject | not just documented but declared (in appcompatapi.h); supported by DelayLoadFailureHook in 5.1 and higher |
ApphelpFixMsiPackage | |
ApphelpFixMsiPackageExe | |
ApphelpFreeFileAttributes | |
ApphelpGetFileAttributes | |
ApphelpGetNTVDMInfo | |
ApphelpQueryModuleData | begins in SP2; discontinued in 5.2 until restored for Windows Server 2003 SP1 |
ApphelpShowDialog | |
ApphelpShowUI | discontinued in 6.0 |
ApphelpUpdateCacheEntry | |
DeleteAppcompatModeW | discontinued in SP1 |
GetPermLayers | supported by DelayLoadFailureHook in 6.0 and higher |
PersistAppcompatModeW | discontinued in SP1 |
SdbCloseApphelpInformation | supported by DelayLoadFailureHook in 5.1 and higher |
SdbCloseDatabase | earlier in SDBAPIU; supported by DelayLoadFailureHook in 6.0 and higher |
SdbCreateMsiTransformFile | earlier in SDBAPIU |
SdbDeletePermLayerKeys | |
SdbEnumMsiTransforms | earlier in SDBAPIU |
SdbFindFirstMsiPackage | earlier in SDBAPIU |
SdbFindFirstMsiPackage_Str | earlier in SDBAPIU |
SdbFindFirstNamedTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbFindFirstTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbFindFirstTagRef | earlier in SDBAPIU |
SdbFindNextMsiPackage | earlier in SDBAPIU |
SdbFindNextTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbFindNextTagRef | earlier in SDBAPIU |
SdbFreeFlagInfo | begins in SP1 |
SdbGetBinaryTagData | earlier in SDBAPIU; also kernel-mode in 6.3 and higher |
SdbGetDatabaseID | also kernel-mode in 5.1 and higher |
SdbGetDatabaseMatch | supported by DelayLoadFailureHook in 5.1 and
higher; also kernel-mode in 5.1 and higher |
SdbGetDatabaseVersion | earlier in SDBAPIU |
SdbGetEntryFlags | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGetFirstChild | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGetMsiPackageInformation | |
SdbGetNextChild | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGetPermLayerKeys | |
SdbGetStandardDatabaseGUID | supported by DelayLoadFailureHook in 5.1 and higher |
SdbGetStringTagPtr | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGetTagDataSize | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGetTagFromTagID | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbGrabMatchingInfo | earlier in SDBAPIU |
SdbGrabMatchingInfoEx | earlier in SDBAPIU |
SdbInitDatabase | earlier in SDBAPIU; supported by DelayLoadFailureHook in 5.1 and higher |
SdbOpenApphelpDetailsDatabase | |
SdbOpenApphelpDetailsDatabaseSP | begins in SP1; discontinued in 5.2 until restored for Windows Server 2003 SP1 |
SdbOpenApphelpInformation | supported by DelayLoadFailureHook in 5.1 and higher |
SdbOpenDatabase | earlier in SDBAPIU; supported by DelayLoadFailureHook in 6.0 and higher; also kernel-mode in 6.2 only |
SdbQueryApphelpInformation | supported by DelayLoadFailureHook in 5.1 and higher |
SdbQueryData | earlier in SDBAPIU; supported by DelayLoadFailureHook in 5.1 and higher; also kernel-mode in 5.1 to 6.1 |
SdbQueryDataEx | earlier in SDBAPIU; also kernel-mode in 5.1 and higher, but not 6.3 |
SdbQueryFlagInfo | begins in SP1 |
SdbReadBYTETag | earlier in SDBAPIU |
SdbReadBYTETagRef | earlier in SDBAPIU |
SdbReadBinaryTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbReadDWORDTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbReadDWORDTagRef | earlier in SDBAPIU |
SdbReadEntryInformation | earlier in SDBAPIU; supported by DelayLoadFailureHook in 5.1 and higher; also kernel-mode in 5.1 and higher |
SdbReadMsiTransformInfo | earlier in SDBAPIU |
SdbReadQWORDTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbReadQWORDTagRef | earlier in SDBAPIU |
SdbReadStringTag | earlier in SDBAPIU |
SdbReadStringTagRef | earlier in SDBAPIU |
SdbReadWORDTag | earlier in SDBAPIU; also kernel-mode in 5.1 and higher |
SdbReadWORDTagRef | earlier in SDBAPIU |
SdbRegisterDatabase | |
SdbRegisterDatabaseEx | begins in SP1 |
SdbReleaseDatabase | earlier in SDBAPIU; supported by DelayLoadFailureHook in 5.1 and higher; also kernel-mode in 5.1 and higher |
SdbResolveDatabase | supported by DelayLoadFailureHook in 6.0 and
higher; also kernel-mode in 10.0 and higher |
SdbSetPermLayerKeys | |
SdbTagIDToTagRef | earlier in SDBAPIU; also kernel-mode in 5.1 and higher, but not 6.2 to 6.3 |
SdbTagRefToTagID | earlier in SDBAPIU; supported by DelayLoadFailureHook in 6.0 and higher; also kernel-mode in 5.1 and higher |
SdbTagToString | earlier in SDBAPIU |
SdbUnregisterDatabase | |
SetPermLayers | supported by DelayLoadFailureHook in 6.0 and higher |
ShimDumpCache | |
ShimFlushCache |
Kernel-mode use of a function as an internal routine is inferred from the name’s appearance in symbol files for the kernel. Beware that the inference is one-way only. If a name appears, then the routine is present in the binary. Non-appearance may mean just that the function, as written somewhere in source code, never got instantiated as a function in the binary, but instead was always inlined. Specifically, that symbol files for some versions of the kernel do not show SdbQueryDataEx and SdbTagIDToTagRef as internal routines need not mean that those versions of the kernel do not use the routines.