RegLocator テーブル
RegLocator テーブルには、レジストリを使用してファイルまたはディレクトリを検索したり、特定のレジストリ エントリ自体を検索したりするために必要な情報が保持されています。 このテーブルには、次の列があります。
Column | 種類 | キー | Nullable |
---|---|---|---|
Signature_ | Identifier | Y | N |
Root | 整数 | N | N |
キー | RegPath | N | N |
名前 | Formatted | N | Y |
種類 | 整数 | N | Y |
[列]
-
Signature_
-
Signature_ フィールドの値は、Signature テーブルの列 1 の外部キーである一意の署名を表します。 この署名が Signature テーブルに存在する場合、検索される対象はファイルです。 この署名が Signature テーブルに存在せず、Type 列の値が msidbLocatorTypeRawValue の場合、検索される対象は、RegLocator テーブルが指しているレジストリ キー名です。 それ以外の場合、検索される対象は RegLocator テーブルが指しているディレクトリです。
-
Root
-
レジストリ値の定義済みのルート キー。
一定 16 進数 Decimal (10 進数型) ルート キー msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE msidbRegistryRootUsers 0x003 3 HKEY_USERS -
Key
-
レジストリ値のキー。
-
Name
-
レジストリ値の名前。 この値が null の場合、キーの名前のない値または既定値 (ある場合) の値が取得されます。
-
Type
-
レジストリ値がファイル名、ディレクトリの場所、生のレジストリ値のどれであるかを決定する値。
次の表に、有効な値の一覧を示します。 必要に応じて、最初の 3 つの値のいずれかと msidbLocatorType64bit を設定します。 このフィールドのエントリがない場合、Type は 1 に設定されます。
一定 16 進数 Decimal (10 進数型) 説明 msidbLocatorTypeDirectory 0x000 0 キー パスはディレクトリです。 msidbLocatorTypeFileName 0x001 1 キー パスはファイル名です。 msidbLocatorTypeRawValue 0x002 2 キー パスはレジストリ値です。 msidbLocatorType64bit 0x010 16 このビットは、インストーラーでレジストリの 64 ビット部分が検索されるように設定します。 インストーラーでレジストリの 32 ビット部分が検索されるようにこのビットを設定しないでください。
解説
Type フィールドの値が msidbLocatorTypeRawValue の場合、AppSearch テーブルの Property フィールドに指定されたプロパティの値が、インストーラーでレジストリ値に設定される点に注意してください。 インストーラーでは、レジストリ値の種類を識別するプレフィックスをレジストリ値に追加します。 レジストリ値の種類の詳細については、「レジストリ値の種類」を参照してください。
レジストリの種類 | インストーラーによって追加されるプレフィックス |
---|---|
REG_SZ | なし。ただし、レジストリ値の最初の文字が # の場合、インストーラーでは先頭にもう 1 つの # を付けて、その文字をエスケープします。 |
DWORD | 必要に応じて、"#" の後に "+" または "-" を付けます |
REG_EXPAND_SZ | "#%" |
REG_MULTI_SZ | Null。 インストーラーでは、プロパティを null で始まり、null で終わる値に設定します。 |
REG_BINARY | "#x"。REG_BINARYの場合、インストーラーでは各 16 進数 (ニブル) を変換し、先頭に "#x" を付けた ASCII 文字として保存します。 |
通常、このテーブルの列はローカライズされません。 作成者が複数の言語で製品を検索する場合、言語ごとに別個のエントリをテーブルに含める必要があります。
キーの有無のみを確認する場合は、RegLocator テーブルを使用できない点に注意してください。 ただし、キーの既定値を検索し、空でない場合はその値を取得できます。
詳細については、「既存のアプリケーション、ファイル、レジストリ エントリまたは .ini ファイル エントリの検索」を参照してください。
検証