RegCreateKeyA 関数 (winreg.h)

指定したレジストリ キーが作成されます。 キーがレジストリに既に存在する場合は、関数によって開かれます。

メモ この関数は、16 ビット バージョンの Windows との互換性のためにのみ提供されます。 アプリケーションでは 、RegCreateKeyEx 関数を使用する必要があります。 ただし、システム ファイルやレジストリ ハイブを含むシステム状態をバックアップまたは復元するアプリケーションでは、レジストリ関数の代わりに ボリューム シャドウ コピー サービス を使用する必要があります。
 

構文

LSTATUS RegCreateKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [out]          PHKEY  phkResult
);

パラメーター

[in] hKey

開いているレジストリ キーへのハンドル。 呼び出し元のプロセスには、キーへのKEY_CREATE_SUB_KEYアクセス権が必要です。 詳細については、「 レジストリ キーのセキュリティとアクセス権」を参照してください。

キー作成のアクセスは、ハンドルが取得されたときに指定されたアクセス マスクではなく、レジストリ キーのセキュリティ記述子に対してチェックされます。 そのため、 hKeysamDesired のKEY_READで開かれた場合でも、セキュリティ記述子で許可されている場合はキーを作成する操作で使用できます。

このハンドルは、 RegCreateKeyEx 関数または RegOpenKeyEx 関数によって返されます。または、次の 定義済みキーのいずれかを指定できます。

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

この関数によって開かれる、または作成されるキーの名前。 このキーは、 hKey パラメーターによって識別されるキーのサブキーである必要があります。

キー名の詳細については、「 レジストリの構造」を参照してください。

hKey が定義済みのキーの 1 つである場合、lpSubKey はNULL である可能性があります。 その場合、 phkResult は 関数に渡されたのと同じ hKey ハンドルを受け取ります。

[out] phkResult

開かれた、または作成されたキーへのハンドルを受け取る変数へのポインター。 キーが定義済みのレジストリ キーの 1 つでない場合は、ハンドルの使用が完了したら 、RegCloseKey 関数を呼び出します。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して FormatMessage 関数を使用すると、エラーの一般的な説明を取得できます。

注釈

アプリケーションは、 HKEY_USERSまたはHKEY_LOCAL_MACHINE の直接の子であるキー 作成できません。 アプリケーションは、HKEY_USERSまたは HKEY_LOCAL_MACHINE ツリーの下位レベルでサブキー 作成できます。

サービスまたはアプリケーションが異なるユーザーを偽装する場合は、この関数を HKEY_CURRENT_USERで使用しないでください。 代わりに、 RegOpenCurrentUser 関数を 呼び出します。

RegCreateKey 関数は、不足しているすべてのキーを指定したパスに作成します。 アプリケーションでは、この動作を利用して、一度に複数のキーを作成できます。 たとえば、アプリケーションでは、 lpSubKey パラメーターに次の形式の文字列を指定することで、前の 3 つのサブキーと同時に 4 つのレベルの深さのサブキーを作成できます。

subkey1\subkey2\subkey3\subkey4

パス内の既存のキーのスペルが正しくない場合、この動作により不要なキーが作成されることに注意してください。

注意

winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegCreateKey を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winreg.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

RegCloseKey

RegCreateKeyEx

RegDeleteKey

RegOpenKeyEx

レジストリ関数

レジストリの概要