TAG

In the context of working with Shim Database (SDB) files, a TAG is Microsoft’s name for the first 16 bits of any one item in the file. Each item comprises the TAG, an optional size of data to follow, and then this amount of data. The high 4 bits of the TAG give its type. For some types, the size of data is implied by the type, such that the TAG is followed immediately by the implied amount of data. For others, the size is explicitly a dword immediately after the TAG and thus before the data.

Tag Type Symbolic Name Size of Data Specific Interpretation of Data
0x1000 TAG_TYPE_NULL implicit: 0 bytes  
0x2000 TAG_TYPE_BYTE implicit: 1 byte  
0x3000 TAG_TYPE_WORD implicit: 2 bytes  
0x4000 TAG_TYPE_DWORD implicit: 4 bytes  
0x5000 TAG_TYPE_QWORD implicit: 8 bytes  
0x6000 TAG_TYPE_STRINGREF implicit: 4 bytes data is reference to string-table item
0x7000 TAG_TYPE_LIST explicit data is list of items
0x8000 TAG_TYPE_STRING explicit data is null-terminated Unicode string
0x9000 TAG_TYPE_BINARY explicit  

Formally, a TAG is just a USHORT. What matters are the numerous possible values and the APPHELP versions for which these values are expected—and, from there, what any of them mean to whoever acts on them. This last part is not obviously well-defined, there being potentially many modules that interpret SDB files for potentially many different purposes. For the tables that follow, a TAG is regarded as defined for some APPHELP version if that version’s implementation of the SdbTagToString function produces a non-trivial string that doesn’t dismiss the tag as invalid. Version 1.0 refers to the SDBAPIU.DLL from Windows 2000 SP3 and SP4, which is the first known support for SDB files and is here taken as an APPHELP precursor.

For all the possible TAG values that were defined in this sense for Windows Vista, the symbolic names that Microsoft uses in its programming are known from contemporaneous documentation of the TAG. For all these values, what Microsoft documents as the programmatic name is TAG_name, where name is the tag-to-string conversion by the Windows Vista implementation of SdbTagToString. Extrapolation of this correspondence to later versions gives at least a reasonable guess at Microsoft’s names for the many values that Microsoft has since defined but not documented. Be aware, though, that this relationship is inferred by observation, not deduced by inspection. It cannot have been true before version 6.0 since in these earlier versions some tag-to-string conversions contain spaces or other characters that are invalid in C-language identifiers. The view taken here is that the symbolic name that Microsoft documented for version 6.0 was the symbolic name all along and that the tag-to-string conversions were changed for version 6.0 as deliberate tidying up. These cases are noted in the Remarks column.

As a quirk of version 6.2, the tables show two very different symbolic names as valid in that version for each of the three tags 0x4034, 0x6025 and 0x7020. This is because the table that the SdbTagToString implementation works from has two entries for each of these tags. Though the function can return a name only from one entry for each tag, it seems that both names are meaningful. Whether their assignment to the same numerical value was by design or oversight is not known, and they anyway get disambiguated in version 6.3.

Beware that this article’s measure of a tag’s validity in any version cannot be definitive. That a tag gets converted by the SdbTagToString function in some APPHELP version does not mean the tag actually does get used in that version, of APPHELP or of anything else from the same Windows version, though at least in such a case the tag evidently is defined. More difficult for enumerating the defined values is that a tag could be meaningful, even to APPHELP, yet somehow have got missed when preparing APPHELP’s tag-to-string conversions. Tracking down all cases would be impractical if not impossible, but one case is known. Though tag 0x4029 does not get a tag-to-string conversion from APPHELP until Windows 7, the APPHELP from Windows Vista knows it for other purposes, e.g., for its implementation of SdbReadApphelpDetailsData.

If tags 0x4028 and 0x4029 actually were defined for Windows Vista without having tag-to-string conversions, then Microsoft documented all the values that were defined for Windows Vista but has documented absolutely none that have been added since. Whether the reason that Microsoft ever documented any of the tags (or functions that work with them) truly did go away after Windows Vista is not known. Indeed, no reason is yet clear that Microsoft ever documented any values at all, even just for Windows Vista. It does seem fair to say, however, that Microsoft’s documentation was at best half-hearted, if not grudging. Conspicuously, the documentation’s definitions are not reproduced in any header from any known development kit. As usual at this website, the undocumented values are highlighted yellow.

NULL Tags

Tags whose high 4 bits are 0 are followed by no data. In effect, they are boolean, with nothing to say beyond being present or absent.

Tag Symbolic Name Versions Remarks
0x1001 TAG_INCLUDE 1.0 and higher  
0x1002 TAG_GENERAL 1.0 and higher  
0x1003 TAG_MATCH_LOGIC_NOT 1.0 and higher  
0x1004 TAG_APPLY_ALL_SHIMS 1.0 and higher  
0x1005 TAG_USE_SERVICE_PACK_FILES 5.1 from Windows XP SP1, and higher  
0x1006 TAG_MITIGATION_OS 6.0 and higher  
0x1007 TAG_BLOCK_UPGRADE 6.0 to 6.1 next as 0x7029
TAG_TRACE_PCA 6.2 and higher  
0x1008 TAG_INCLUDEEXCLUDEDLL 6.0 and higher  
0x1009 TAG_RAC_EVENT_OFF 6.1 and higher  
0x100A TAG_TELEMETRY_OFF 6.1 and higher  
0x100B TAG_SHIM_ENGINE_OFF 6.1 and higher  
0x100C TAG_LAYER_PROPAGATION_OFF 6.1 and higher  
0x100D TAG_REINSTALL_UPGRADE 6.1 only next as 0x7027
TAG_FORCE_CACHE 6.2 and higher  
0x100E TAG_MONITORING_OFF 6.2 and higher  
0x100F TAG_QUIRK_OFF 6.3 and higher  
0x1010 TAG_ELEVATED_PROP_OFF 6.3 and higher  
0x1011 TAG_UPGRADE_ACTION_BLOCK_WEBSETUP 6.3 from Windows 8.1 With Update, and higher  
0x1012 TAG_UPGRADE_ACTION_PROCEED_TO_MEDIASETUP 6.3 from Windows 8.1 With Update, and higher  

See that two of these NULL tags change for Windows 8 from one extreme to the other, i.e., from carrying no data to having so many attributes, potentially, that they are made into List tags instead. Meanwhile, their old numerical values are reused, with completely different interpretations. It is not known whether these (and similar) redefinitions have caused any real-world problem from having the APPHELP from one Windows version read an SDB file that was prepared for a different Windows version. Though such mixing may be rare in whatever real-world practice Microsoft intends, defence against it certainly is not reliable. For instance, in advancing from Windows 7 to Windows 8, the implementation of the exported SdbQueryBlockUpgrade function simply changes from looking for TAG_BLOCK_UPGRADE as the NULL tag 0x1007 to looking for it as the List tag 0x7029.

BYTE Tags

Tags whose high 4 bits are 2 introduce one byte of data—and, in a database whose major version is 2 or higher, a byte of padding so that whatever tag follows is word-aligned. However, no BYTE tags are known to be defined.

WORD Tags

Tags whose high 4 bits are 3 introduce one 2-byte word of data.

Tag Symbolic Name Versions
0x3001 TAG_MATCH_MODE 1.0 and higher
0x3002 TAG_QUIRK_COMPONENT_CODE_ID 6.3 and higher
0x3003 TAG_QUIRK_CODE_ID 6.3 and higher

WORD tags have always had a second series in which the low 12 bits restart at 0x0801:

Tag Symbolic Name Versions
0x3801 TAG_TAG 1.0 and higher
0x3802 TAG_INDEX_TAG 1.0 and higher
0x3803 TAG_INDEX_KEY 1.0 and higher

It seems to be merely conventional that the tags in such second series have special meaning to the large-scale structure of an SDB file and are plausibly the tags that are generated automatically when compiling an SDB file from XML input.

DWORD Tags

Tags whose high 4 bits are 4 introduce one 4-byte dword of data. Very many such tags are defined.

Tag Symbolic Name Versions Remarks
0x4001 TAG_SIZE 1.0 and higher  
0x4002 TAG_OFFSET 1.0 and higher  
0x4003 TAG_CHECKSUM 1.0 and higher  
0x4004 TAG_SHIM_TAGID 1.0 and higher  
0x4005 TAG_PATCH_TAGID 1.0 and higher  
0x4006 TAG_MODULE_TYPE 1.0 and higher  
0x4007 TAG_VERDATEHI 1.0 and higher string before 6.0 is VERFILEDATEHI
0x4008 TAG_VERDATELO 1.0 and higher string before 6.0 is VERFILEDATELO
0x4009 TAG_VERFILEOS 1.0 and higher  
0x400A TAG_VERFILETYPE 1.0 and higher  
0x400B TAG_PE_CHECKSUM 1.0 and higher  
0x400C TAG_PREVOSMAJORVER 1.0 and higher string before 6.0 is PREVOSMAJORVERSION
0x400D TAG_PREVOSMINORVER 1.0 and higher string before 6.0 is PREVOSMINORVERSION
0x400E TAG_PREVOSPLATFORMID 1.0 and higher  
0x400F TAG_PREVOSBUILDNO 1.0 and higher  
0x4010 TAG_PROBLEMSEVERITY 1.0 and higher string before 6.0 is PROBLEM_SEVERITY
0x4011 TAG_LANGID 1.0 and higher string before 6.0 is APPHELP_LANGID
0x4012 TAG_VER_LANGUAGE 1.0 and higher  
0x4014 TAG_ENGINE 1.0 and higher  
0x4015 TAG_HTMLHELPID 1.0 and higher  
0x4016 TAG_INDEX_FLAGS 1.0 and higher string before 6.0 is INDEXFLAGS
0x4017 TAG_FLAGS 1.0 and higher  
0x4018 TAG_DATA_VALUETYPE 1.0 and higher string before 6.0 is VALUETYPE
0x4019 TAG_DATA_DWORD 1.0 and higher  
0x401A TAG_LAYER_TAGID 1.0 and higher  
0x401B TAG_MSI_TRANSFORM_TAGID 1.0 and higher  
0x401C TAG_LINKER_VERSION 1.0 and higher  
0x401D TAG_LINK_DATE 1.0 and higher  
0x401E TAG_UPTO_LINK_DATE 1.0 and higher  
0x401F TAG_OS_SERVICE_PACK 1.0 and higher  
0x4020 TAG_FLAG_TAGID 1.0 and higher  
0x4021 TAG_RUNTIME_PLATFORM 1.0 and higher  
0x4022 TAG_OS_SKU 5.1 from Windows XP SP1, and higher  
0x4023 TAG_OS_PLATFORM 5.2 from Windows Server 2003 SP1 to 6.3  
TAG_DEPRECATED_OS_PLATFORM 10.0 and higher  
0x4024 TAG_APP_NAME_RC_ID 6.0 and higher  
0x4025 TAG_VENDOR_NAME_RC_ID 6.0 and higher  
0x4026 TAG_SUMMARY_MSG_RC_ID 6.0 and higher  
0x4027 TAG_VISTA_SKU 6.0 to 6.2  
0x4028 TAG_DESCRIPTION_RC_ID 6.1 and higher  
0x4029 TAG_PARAMETER1_RC_ID 6.1 and higher  
0x4030 TAG_CONTEXT_TAGID 6.1 and higher  
0x4031 TAG_EXE_WRAPPER 6.1 and higher  
0x4032 TAG_URL_ID 6.1 from Windows 7 SP1 only next as 0x4034
TAG_EXE_TYPE 6.2 and higher  
0x4033 TAG_FROM_LINK_DATE 6.2 and higher  
0x4034 TAG_URL_ID 6.2 only previously 0x4032;
next as 0x404B
TAG_REVISION_EQ 6.2 and higher  
0x4035 TAG_REVISION_LE 6.2 and higher  
0x4036 TAG_REVISION_GE 6.2 and higher  
0x4037 TAG_DATE_EQ 6.2 and higher  
0x4038 TAG_DATE_LE 6.2 and higher  
0x4039 TAG_DATE_GE 6.2 and higher  
0x403A TAG_CPU_MODEL_EQ 6.2 and higher  
0x403B TAG_CPU_MODEL_LE 6.2 and higher  
0x403C TAG_CPU_MODEL_GE 6.2 and higher  
0x403D TAG_CPU_FAMILY_EQ 6.2 and higher  
0x403E TAG_CPU_FAMILY_LE 6.2 and higher  
0x403F TAG_CPU_FAMILY_GE 6.2 and higher  
0x4040 TAG_CREATOR_REVISION_EQ 6.2 and higher  
0x4041 TAG_CREATOR_REVISION_LE 6.2 and higher  
0x4042 TAG_CREATOR_REVISION_GE 6.2 and higher  
0x4043 TAG_SIZE_OF_IMAGE 6.2 and higher  
0x4044 TAG_SHIM_CLASS 6.3 and higher  
0x4045 TAG_PACKAGEID_ARCHITECTURE 6.2 and higher  
0x4046 TAG_REINSTALL_UPGRADE_TYPE 6.2 and higher  
0x4047 TAG_BLOCK_UPGRADE_TYPE 6.2 and higher  
0x4048 TAG_ROUTING_MODE 6.2 and higher  
0x4049 TAG_OS_VERSION_VALUE 6.2 and higher  
0x404A TAG_CRC_CHECKSUM 6.2 and higher  
0x404B TAG_URL_ID 6.3 and higher previously 0x4034
0x404C TAG_QUIRK_TAGID 6.3 and higher  
0x404E TAG_MIGRATION_DATA_TYPE 6.3 and higher  
0x404F TAG_UPGRADE_DATA 6.3 and higher  
0x4050 TAG_MIGRATION_DATA_TAGID 6.3 and higher  
0x4051 TAG_REG_VALUE_TYPE 6.3 and higher  
0x4052 TAG_REG_VALUE_DATA_DWORD 6.3 and higher  
0x4053 TAG_TEXT_ENCODING 6.3 and higher  
0x4054 TAG_UX_BLOCKTYPE_OVERRIDE 10.0 and higher  
0x4055 TAG_EDITION 10.0 and higher  
0x4056 TAG_FW_LINK_ID 10.0 and higher  
0x4057 TAG_KB_ARTICLE_ID 10.0 and higher  
0x4058 TAG_UPGRADE_MODE 10.0 and higher  

DWORD tags also have a second series:

Tag Symbolic Name Versions
0x4801 TAG_TAGID 1.0 and higher

QWORD Tags

Tags whose high 4 bits are 5 introduce one 8-byte qword of data.

Tag Symbolic Name Versions Remarks
0x5001 TAG_TIME 1.0 and higher  
0x5002 TAG_BIN_FILE_VERSION 1.0 and higher  
0x5003 TAG_BIN_PRODUCT_VERSION 1.0 and higher  
0x5004 TAG_MODTIME 1.0 and higher  
0x5005 TAG_FLAG_MASK_KERNEL 1.0 and higher  
0x5006 TAG_UPTO_BIN_PRODUCT_VERSION 1.0 and higher  
0x5007 TAG_DATA_QWORD 1.0 and higher  
0x5008 TAG_FLAG_MASK_USER 1.0 and higher  
0x5009 TAG_FLAGS_NTVDM1 1.0 and higher  
0x500A TAG_FLAGS_NTVDM2 1.0 and higher  
0x500B TAG_FLAGS_NTVDM3 1.0 and higher  
0x500C TAG_FLAG_MASK_SHELL 1.0 and higher  
0x500D TAG_UPTO_BIN_FILE_VERSION 1.0 and higher  
0x500E TAG_FLAG_MASK_FUSION 5.2 and higher  
0x500F TAG_FLAG_PROCESSPARAM 5.2 from Windows Server 2003 SP1, and higher string before 6.0 is FLAGS_PROCESSPARAM
0x5010 TAG_FLAG_LUA 6.0 and higher  
0x5011 TAG_FLAG_INSTALL 6.0 and higher  
0x5012 TAG_FROM_BIN_PRODUCT_VERSION 6.2 and higher  
0x5013 TAG_FROM_BIN_FILE_VERSION 6.2 and higher  
0x5014 TAG_PACKAGEID_VERSION 6.2 and higher  
0x5015 TAG_FROM_PACKAGEID_VERSION 6.2 and higher  
0x5016 TAG_UPTO_PACKAGEID_VERSION 6.2 and higher  
0x5017 TAG_OSMAXVERSIONTESTED 6.2 and higher  
0x5018 TAG_FROM_OSMAXVERSIONTESTED 6.2 and higher  
0x5019 TAG_UPTO_OSMAXVERSIONTESTED 6.2 and higher  
0x501A TAG_FLAG_MASK_WINRT 6.3 and higher  
0x501B TAG_REG_VALUE_DATA_QWORD 6.3 and higher  
0x501C TAG_QUIRK_ENABLED_UPTO_VERSION 6.3 and higher  
TAG_QUIRK_ENABLED_VERSION_LT 10.0 and higher  
0x501D TAG_SOURCE_OS 10.0 and higher  
0x501E TAG_SOURCE_OS_LTE 10.0 and higher  
0x501F TAG_SOURCE_OS_GTE 10.0 and higher  

String Reference Tags

Tags whose high 4 bits are 6 are followed by 4-byte dword of data that has a very particular interpretation as referring to a string in the database’s string table. Specifically, the dword is the offset, in bytes, from the beginning of the string table (tag 0x7801) to a string item (tag 0x8801).

Tag Symbolic Name Versions Remarks
0x6001 TAG_NAME 1.0 and higher  
0x6002 TAG_DESCRIPTION 1.0 and higher  
0x6003 TAG_MODULE 1.0 and higher  
0x6004 TAG_API 1.0 and higher  
0x6005 TAG_VENDOR 1.0 and higher  
0x6006 TAG_APP_NAME 1.0 and higher  
0x6008 TAG_COMMAND_LINE 1.0 and higher  
0x6009 TAG_COMPANY_NAME 1.0 and higher  
0x600A TAG_DLLFILE 1.0 and higher  
0x600B TAG_WILDCARD_NAME 1.0 and higher  
0x6010 TAG_PRODUCT_NAME 1.0 and higher  
0x6011 TAG_PRODUCT_VERSION 1.0 and higher  
0x6012 TAG_FILE_DESCRIPTION 1.0 and higher  
0x6013 TAG_FILE_VERSION 1.0 and higher  
0x6014 TAG_ORIGINAL_FILENAME 1.0 and higher  
0x6015 TAG_INTERNAL_NAME 1.0 and higher  
0x6016 TAG_LEGAL_COPYRIGHT 1.0 and higher  
0x6017 TAG_16BIT_DESCRIPTION 1.0 and higher string before 6.0 is S16BIT_DESCRIPTION
0x6018 TAG_APPHELP_DETAILS 1.0 and higher string before 6.0 is PROBLEM_DETAILS
0x6019 TAG_LINK_URL 1.0 and higher  
0x601A TAG_LINK_TEXT 1.0 and higher  
0x601B TAG_APPHELP_TITLE 1.0 and higher  
0x601C TAG_APPHELP_CONTACT 1.0 and higher  
0x601D TAG_SXS_MANIFEST 1.0 and higher  
0x601E TAG_DATA_STRING 1.0 and higher  
0x601F TAG_MSI_TRANSFORM_FILE 1.0 and higher  
0x6020 TAG_16BIT_MODULE_NAME 1.0 and higher string before 6.0 is S16BIT_MODULE_NAME
0x6021 TAG_LAYER_DISPLAYNAME 1.0 and higher  
0x6022 TAG_COMPILER_VERSION 1.0 and higher  
0x6023 TAG_ACTION_TYPE 5.1 from Windows XP SP1, and higher  
0x6024 TAG_EXPORT_NAME 6.0 and higher  
0x6025 TAG_URL 6.1 from Windows 7 SP1 to 6.2 next as 0x602C
TAG_VENDOR_ID 6.2 and higher  
0x6026 TAG_DEVICE_ID 6.2 and higher  
0x6027 TAG_SUB_VENDOR_ID 6.2 and higher  
0x6028 TAG_SUB_SYSTEM_ID 6.2 and higher  
0x6029 TAG_PACKAGEID_NAME 6.2 and higher  
0x602A TAG_PACKAGEID_PUBLISHER 6.2 and higher  
0x602B TAG_PACKAGEID_LANGUAGE 6.2 and higher  
0x602C TAG_URL 6.3 and higher previously 0x6025
0x602D TAG_MANUFACTURER 6.3 and higher  
0x602E TAG_MODEL 6.3 and higher  
0x602F TAG_DATE 6.3 and higher  
0x6030 TAG_REG_VALUE_NAME 6.3 and higher  
0x6031 TAG_REG_VALUE_DATA_SZ 6.3 and higher  
0x6032 TAG_MIGRATION_DATA_TEXT 6.3 and higher  
0x6033 TAG_APP_STORE_PRODUCT_ID 10.0 and higher  
0x6034 TAG_MORE_INFO_URL 10.0 and higher  

List Tags

Tags whose high 4 bits are 7 are followed by a 4-byte dword and some variable amount of data. The dword is the size, in bytes, of the data. In turn, the data is a list of child tags.

Tag Symbolic Name Versions Remarks
0x7001 TAG_DATABASE 1.0 and higher  
0x7002 TAG_LIBRARY 1.0 and higher  
0x7003 TAG_INEXCLUDE 1.0 and higher  
0x7004 TAG_SHIM 1.0 and higher  
0x7005 TAG_PATCH 1.0 and higher  
0x7006 TAG_APP 1.0 and higher  
0x7007 TAG_EXE 1.0 and higher  
0x7008 TAG_MATCHING_FILE 1.0 and higher  
0x7009 TAG_SHIM_REF 1.0 and higher  
0x700A TAG_PATCH_REF 1.0 and higher  
0x700B TAG_LAYER 1.0 and higher  
0x700C TAG_FILE 1.0 and higher  
0x700D TAG_APPHELP 1.0 and higher  
0x700E TAG_LINK 1.0 and higher  
0x700F TAG_DATA 1.0 and higher  
0x7010 TAG_MSI_TRANSFORM 1.0 and higher string before 6.0 is “MSI TRANSFORM”
0x7011 TAG_MSI_TRANSFORM_REF 1.0 and higher string before 6.0 is “MSI TRANSFORM REF”
0x7012 TAG_MSI_PACKAGE 1.0 and higher string before 6.0 is “MSI PACKAGE”
0x7013 TAG_FLAG 1.0 and higher  
0x7014 TAG_MSI_CUSTOM_ACTION 1.0 and higher string before 6.0 is “MSI CUSTOM ACTION”
0x7015 TAG_FLAG_REF 1.0 and higher  
0x7016 TAG_ACTION 5.1 from Windows XP SP1, and higher  
0x7017 TAG_LOOKUP 6.0 and higher  
0x7018 TAG_CONTEXT 6.1 and higher  
0x7019 TAG_CONTEXT_REF 6.1 and higher  
0x701A TAG_KDEVICE 6.2 and higher  
0x701C TAG_KDRIVER 6.2 and higher  
0x701E TAG_DEVICE 6.2 only  
TAG_MATCHING_DEVICE 6.3 and higher  
0x701F TAG_ACPI 6.2 and higher  
0x7020 TAG_SPC 6.1 from Windows 7 SP1 to 6.2 next as 0x702A
TAG_BIOS 6.2 and higher  
0x7021 TAG_CPU 6.2 and higher  
0x7022 TAG_OEM 6.2 and higher  
0x7023 TAG_KFLAG 6.2 and higher  
0x7024 TAG_KFLAG_REF 6.2 and higher  
0x7025 TAG_KSHIM 6.2 and higher  
0x7026 TAG_KSHIM_REF 6.2 and higher  
0x7027 TAG_REINSTALL_UPGRADE 6.2 and higher previously 0x100D
0x7028 TAG_KDATA 6.2 and higher  
0x7029 TAG_BLOCK_UPGRADE 6.2 and higher previously 0x1007
0x702A TAG_SPC 6.3 and higher previously 0x7020
0x702B TAG_QUIRK 6.3 and higher  
0x702C TAG_QUIRK_REF 6.3 and higher  
0x702D TAG_BIOS_BLOCK 6.3 and higher  
0x702E TAG_MATCHING_INFO_BLOCK 6.3 and higher  
0x702F TAG_DEVICE_BLOCK 6.3 and higher  
0x7030 TAG_MIGRATION_DATA 6.3 and higher  
0x7031 TAG_MIGRATION_DATA_REF 6.3 and higher  
0x7032 TAG_MATCHING_REG 6.3 and higher  
0x7033 TAG_MATCHING_TEXT 6.3 and higher  
0x7034 TAG_MACHINE_BLOCK 6.3 and higher  
0x7035 TAG_OS_UPGRADE 6.3 and higher  
0x7036 TAG_PACKAGE 6.3 and higher  
0x7037 TAG_PICK_ONE 10.0 and higher  
0x7038 TAG_MATCH_PLUGIN 10.0 and higher  
0x7039 TAG_MIGRATION_SHIM 10.0 and higher  
0x703A TAG_UPGRADE_DRIVER_BLOCK 10.0 and higher  
0x703C TAG_MIGRATION_SHIM_REF 10.0 and higher  
0x703D TAG_CONTAINS_FILE 10.0 and higher  
0x703E TAG_CONTAINS_HWID 10.0 and higher  
0x703F TAG_DRIVER_PACKAGE_BLOCK 10.0 and higher  

This sequence has gaps at 0x701B and 0x701D. It may be that these were planned to be TAG_KDEVICE_WILD and TAG_KDRIVER_WILD, which are known from error messages in the Compatibility Administrator, compatadmin.exe.

List tags have a second series:

Tag Symbolic Name Versions
0x7801 TAG_STRINGTABLE 1.0 and higher
0x7802 TAG_INDEXES 1.0 and higher
0x7803 TAG_INDEX 1.0 and higher

String Tags

Tags whose high 4 bits are 8 are followed by a 4-byte dword and some variable amount of data. The dword gives the size, in bytes, of the data. In turn, the data is a null-terminated Unicode string.

Tag Symbolic Name Versions Remarks
0x8801 TAG_STRINGTABLE_ITEM 1.0 and higher string before 6.0 is STRTAB_ITEM

Binary Tags

Tags whose high 4 bits are 9 are followed by a 4-byte dword and some variable amount of data—and, in a database whose major version is 2 or higher, a byte of padding so that whatever tag follows is word-aligned. The dword gives the size, in bytes, of the data.

Tag Symbolic Name Versions Remarks
0x9002 TAG_PATCH_BITS 1.0 and higher  
0x9003 TAG_FILE_BITS 1.0 and higher  
0x9004 TAG_EXE_ID 1.0 and higher string before 6.0 is “EXE_ID(GUID)”
0x9005 TAG_DATA_BITS 1.0 and higher  
0x9006 TAG_MSI_PACKAGE_ID 1.0 and higher string before 6.0 is “MSI_PACKAGE_ID(GUID)”
0x9007 TAG_DATABASE_ID 1.0 and higher string before 6.0 is “DATABASE_ID(GUID)”
0x9008 TAG_CONTEXT_PLATFORM_ID 6.1 and higher  
0x9009 TAG_CONTEXT_BRANCH_ID 6.1 and higher  
0x9010 TAG_FIX_ID 6.1 and higher  
0x9011 TAG_APP_ID 6.1 and higher  
0x9012 TAG_REG_VALUE_DATA_BINARY 6.3 and higher  
0x9013 TAG_TEXT 6.3 and higher  

Binary tags have a second series:

Tag Symbolic Name Versions
0x9801 TAG_INDEX_BITS 1.0 and higher