The MsiPatchMetadata Table contains information about a Windows Installer patch that is required to remove the patch and that is used by Add/Remove Programs.
Patches installed without this table present in the patch database (.msp file) cannot be removed, and are missing some information from Add/Remove Programs. The table must be in the database of the patch file and not in a transform in the patch.
The MsiPatchMetadata Table has the following columns.
The name of the company. An empty field (a Null value) indicates that the row contains one of the standard metadata properties of the Windows Installer. For more information, see the Remarks section of this topic.
By adding a row to the table and entering a company name in this field, you can add any company to extend the property set.
The name of a metadata property.
The value of the metadata property. This can never be Null or an empty string.
Available in Windows Installer 3.0 and later.
Rows in the MsiPatchMetadata Table that contain a Null value in the CompanyName field refer to one of the following standard Windows Installer metadata properties.
|AllowRemoval||Indicates whether or not the patch is an [Uninstallable Patch](uninstallable-patches.md). If the value field contains 0 (zero), the patch cannot be removed. If the value field contains one (1), the patch is an Uninstallable Patch.This property is registered and its value can be obtain by using the [MsiGetPatchInfoEx](/windows/desktop/api/Msi/nf-msi-msigetpatchinfoexa) function.
|ManufacturerName||Name of the manufacturer of the application.|
|MinorUpdateTargetRTM||Indicates that the patch targets the RTM version of the product or the most recent major upgrade patch. Author this optional property in minor upgrade patches that contain sequencing information to indicate that the patch removes of all patches up to the RTM version of the product, or up to the most recent major upgrade patch. This property is available in Windows Installer 3.1 and later.
|TargetProductName||Name of the application or target application suite.|
|MoreInfoURL||A URL that provides information specific to this patch. This property is registered and its value can be obtained by using the [MsiGetPatchInfoEx](/windows/desktop/api/Msi/nf-msi-msigetpatchinfoexa) function. Beginning with Windows XP with Service Pack 2 (SP2), this value can be the support link for the patch displayed in Add/Remove Programs.
|CreationTimeUTC||Creation time of the .msp file in the form of mm-dd-yy HH:MM (month-day-year hour:minute).|
|DisplayName||A title for the patch that is okay for public display. This property is registered, and its value can be obtained by using the [MsiGetPatchInfoEx](/windows/desktop/api/Msi/nf-msi-msigetpatchinfoexa) function. Beginning with Windows XP with SP2, this value is the name of the patch that is displayed in Add/Remove Programs.
|Description||Brief description of the patch.|
|Classification||A string value that contains the arbitrary category of updates as defined by the author of the patch. For example, patch authors can specify that each patch be classified as a Hotfix, Security Rollup, Critical Update, Update, Service Pack, or Update Rollup. This property is required.|
|OptimizeCA||Indicates whether the Windows Installer should skip custom actions when applying the patch. This can reduce the time required to apply the patch. The OptimizeCA property can have one of the following values:
The values of OptimizeCA can be combined when processing multiple new patches. If all patches have a 1 (one) included in the values, then all property and directory assignment custom actions are skipped. If one patch has the value 3 (three)for the property, and one patch has the value 1 (one) for the property, the property and directory assignment custom actions are skipped. However, the other immediate custom actions run, because not all of the patches requested are skipped.
|OptimizedInstallMode||If this property is set to 1 (one) in all the patches to be applied in a transaction, an application of the patch is optimized if possible. For more information, see [Patch Optimization](patch-optimization.md). Available beginning with Windows Installer 3.1.|