APPHELP 5.1 Exports

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.