Blog
MSI Locator Table ,The primary uses for this set of tables are to find old versions of components being upgraded or to check to make sure the user has installed software prerequisites. The Locator Tables group contains a set of tables that can be used to search for applications and files on the user’s computer before the new software is installed.
The Signature Table: (MSI Locator Table)
What is a Signature table?
The Signature table holds the information that uniquely identifies a file signature. This table contains the following columns:

Signature:
The Signature column is a unique file signature
FileName:
This is the name of the file being checked.
MinVersion:
If the value in this column is notnull, the Installer checks the version of the file and only accepts the file as identical if the file version is greater than or equal to this version.
MaxVersion:
If this column is non-null, the Installer checks the version of the file and only accepts the file as identical if the file version is less than or equal to this version.
MinSize:
If this column is non-null, the Installer checks the size of the file and only accepts the file as identical if the file size is greater than or equal to this size.
MaxSize:
If this column is non-null, the Installer checks the size of the file and only accepts the file as identical if the file size is at most equal to this maxsize.
MinDate:
If this column is non-null, the Installer checks the creation date of the file and only accepts the file as identical if the file creation date is greater than or equal to this date.
MaxDate:
If this field is specified, then the file under inspection must have a creation date that is at most equal to MaxDate.
Languages:
If this column is non-null, the Installer checks the languages supported by the file and only accepts the file as identical if all of the languages on this list are supported by the file.
The RegLocator Table: (MSI Locator Table)
What is a RegLocator table? The RegLocator table holds the information needed to search for a file or directory using the registry, or to search for a particular registry entry itself. This table has the following columns:

Signature_
The value in the Signature_ field represents a unique signature that is an external key into column one of the Signature table. If this signature is present in the Signature table, the search is for a file. If this signature is absent from the Signature table, and the value of the Type column is msidbLocatorTypeRawValue, the search is for the registry key name pointed to by the RegLocator table. Otherwise the search is for a directory pointed to by the RegLocator table
Root:
This is a constant that indicates which Registry hives to search.
Decimal | Root Key |
0 | HKEY_CLASSES_ROOT |
1 | HKEY_CURRENT_USER |
2 | HKEY_LOCAL_MACHINE |
3 | HKEY_USERS |
Key:
This is the key for the Registry value to evaluate.
Name:
This is the name of the Registry value to evaluate.
Type:
Decimal value of type | Description |
0 | Key path is a directory. |
1 or missing | Key path is a file. |
2 | Key path is Registry value. |
The IniLocator Table: (MSI Locator Table)
What is an IniLocator table?
The IniLocator table is used to locate files and directories referred to in .ini files. It has these following columns:

Signature_
An external key into the first column of the Signature table. The Signature_ column represents a unique signature and is also the external key into column one of the Signature table. If this signature is present in the Signature table, then the search is for a file. If this key is absent from the Signature table, and the value of the Type column is msidbLocatorTypeRawValue, the search is for the .ini entry specified by the IniLocator table. Otherwise the search is for a directory specified by the IniLocator table.
Filename:
This is the .ini filename.
Section:
This is the section within the .ini file.
Key:
This is the key within the section.
Field:
The field in the .ini line to read, starting with 1 as the first field. If zero or null, the entire line is read.
Type:
A value that determines whether the .ini value is a file location, a directory location, or raw .ini value.
Decimal | Description |
0 | A directory location |
1 | A file location |
2 | A raw .ini value |
The CompLocator Table:
The CompLocator table takes advantage of the Installer’s own configuration information to find files. This table contains following three columns:

Signature_:
This column represents a unique file signature and is also the external key into the Signature Table. If the key is absent from the Signature Table, the search is assumed to be for the presence of a directory pointed to by the CompLocator Table.
ComponentID:
This is the Installer component ID of the component whose keyfile we are searching for. This need not be a component installed by the current Installer package.
Type:
If zero, the key path is a directory. If 1 or missing, it’s a file.
Value | Description |
0 | Key path is a directory |
1 or Null | Key path is a file. |
The DrLocator Table:
What is a DrLocator table?
The DrLocator table contains information used to locate files by searching on the user’s hard drive or directory tree. The DrLocator table has the following columns:

Signature_:
This column can be either a foreign key into the Signature table, or a unique identifier that occurs only in this table. In the latter case, we are assumed to be searching for a directory rather than a file.
Parent:
This column holds the signature of the parent directory of the file in the Signature_ column. If this field is null, and the Path column doesn’t evaluate to a full path, then all the fixed drives in the user’s system are searched.
Path:
The Path column contains the path on the user’s system. This is a either a full path or a relative subpath below the directory specified in the Parent column.
Depth:
This is the number of levels of subdirectories to recursively search. If zero or null, then no subdirectories are searched.
The AppSearch Table
What is an AppSearch table?
The AppSearch table contains properties needed to search for a file having a particular file signature. The AppSearch table can also be used to set a property to the existing value of a registry or .ini file entry. It contains two columns:

Property:
This is the name of a property. It should be a public property (all capital letters).
Signature_:
This column is a foreign key into the Signature, RegLocator, IniLocator, CompLocator or DrLocator tables. When the AppSearch action is executed, it looks for the files referred to by the Signature_ column, and if they’re found, it sets their names into the corresponding properties in the Property column.
The CCPSearch Table:
What is a CCPSearch table? The CCPSearch table contains a list of signatures that should be used with the Compliance Checking Program (CCP). It has a following single column

Signature_:
This column is a foreign key into the Signature, RegLocator, IniLocator, CompLocator or DrLocator tables. This table is used by the CCPSearch and RMCCPSearch actions.