指定したレジストリ キーをオフライン レジストリ ハイブに作成します。 キーが既に存在する場合、関数によって開かれます。
構文
DWORD ORCreateKey(
_In_ ORHKEY Handle,
_In_ PCWSTR lpSubKey,
_In_opt_ PWSTR lpClass,
_In_opt_ DWORD dwOptions,
_In_opt_ PSECURITY_DESCRIPTOR pSecurityDescriptor,
_Out_ PORHKEY phkResult,
_Out_opt_ PDWORD pdwDisposition
);
パラメーター
-
ハンドル [入力]
-
オフライン レジストリ ハイブで開いているレジストリ キーへのハンドル。
-
lpSubKey [in]
-
この関数が開くか作成するサブキーの名前を含む Unicode 文字列へのポインター。 lpSubKey パラメーターは、Handle パラメーターで識別されるキーのサブキーを指定する必要があります。レジストリ ツリーの深いレベルは最大 32 レベルです。 キー名の詳細については、「 レジストリの構造」を参照してください。
このパラメーターを NULL にすることはできません。
キー名では大文字と小文字は区別されません。
-
lpClass [in, optional]
-
このキーのクラス (オブジェクト型)。 このパラメーターは無視できます。 このパラメーターは、NULL でもかまいません。
-
dwOptions [in, optional]
-
このパラメーターには、0 または次のいずれかの値を指定できます。
値 説明 - REG_OPTION_CREATE_LINK
- 0x00000002L
キーはシンボリック リンクです。 ターゲット パスは、キーの L"SymbolicLinkValue" 値に割り当てられます。 ターゲット パスは絶対レジストリ パスである必要があります。 このオプションを設定する場合は、 REG_OPTION_NON_VOLATILE も設定する必要があります。
lpSubKey パラメーターで既存のキーを指定する場合は、REG_OPTION_CREATE_LINKを使用して作成されている必要があります。
レジストリ シンボリック リンクは、アプリケーションの互換性のために絶対に必要な場合にのみ使用する必要があります。- REG_OPTION_NON_VOLATILE
- 0x00000000L
キーは揮発性ではありません。これが既定値です。 情報はファイルに格納され、システムの再起動時に保持されます。 ORSaveHive 関数は、揮発性ではないキーを保存します。 -
pSecurityDescriptor [in, optional]
-
新しいキーのセキュリティ記述子を含む SECURITY_DESCRIPTOR 構造体へのポインター。 pSecurityDescriptor が NULL の場合、キーは既定のセキュリティ記述子を取得します。 キーの既定のセキュリティ記述子の ACL は、その直接の親キーから継承されます。
-
phkResult [out]
-
開かれた、または作成されたキーへのハンドルを受け取る変数へのポインター。 ハンドルの使用が完了したら、 ORCloseKey 関数を使用してキーを閉じます。
-
pdwDisposition [out, optional]
-
次のいずれかの処理値を受け取る変数へのポインター。
値 説明 - REG_CREATED_NEW_KEY
- 0x00000001L
キーが存在せず、作成されました。 - REG_OPENED_EXISTING_KEY
- 0x00000002L
キーは存在し、変更されずに単純に開かれました。 pdwDisposition が NULL の場合、処理情報は返されません。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS です。
関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を使用すると、エラーの一般的な説明を取得できます。
dwOptions パラメーターが REG_OPTION_CREATE_LINK で設定されているが、REG_OPTION_NON_VOLATILEが明確な場合、または返されるハンドルがハイブのルート キーへのハンドルである場合、関数はERROR_INVALID_PARAMETERを返します。
解説
ORCreateKey 関数によって作成されるキーには値がありません。 アプリケーションでは 、ORSetValue 関数を使用してキー値を設定できます。
ORCreateKey 関数を使用して、オフライン レジストリ ハイブにルート キーを作成することはできません。 ORCreateHive 関数を使用してルート キーを作成し、キーのハンドルを取得します。
オフライン レジストリでは、個々のキーの保存はサポートされていません。 ORSaveHive 関数を使用して、キーとそのサブキーをハイブに保存します。
必要条件
| 要件 | 値 |
|---|---|
| 再頒布可能パッケージ |
Windows オフライン レジストリ ライブラリ バージョン 1.0 以降 |
| ヘッダー |
|
| [DLL] |
|
関連項目