Creates the specified key. If the key already exists in the registry, the call opens it.
The key that this call creates has no values. An application can use RtRegSetValueEx to set key values.
The key identified by the hKey parameter must have been opened with KEY_CREATE_SUB_KEY access. To open the key, use either this call or RtRegOpenKeyEx.
An application cannot create a key under HKEY_USERS or HKEY_LOCAL_MACHINE.
An application can use this call to temporarily lock a portion of the registry. When the locking process creates a new key, it receives the disposition value REG_CREATED_NEW_KEY, indicating that it "owns" the lock. Another process attempting to create the same key receives the disposition value REG_OPENED_EXISTING_KEY, indicating that another process already owns the lock.
LONG RtRegCreateKeyEx(
    HKEY hKey,                                     // handle to an open key
    LPCTSTR lpSubKey,                              // address of subkey name
    DWORD Reserved,                                // reserved
    LPTSTR lpClass,                                // address of class string
    DWORD dwOptions,                               // special options flag
    REGSAM samDesired,                             // desired security access
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,    // address of key security structure
    PHKEY phkResult,                               // address of buffer for opened handle
    LPDWORD lpdwDisposition                        // address of disposition value buffer
);
hKey 
lpSubKey 
Reserved 
lpClass 
dwOptions 
REG_OPTION_NON_VOLATILE | 
This key is not volatile; this is the default. The information is stored in a file and is preserved when the system is restarted. | 
REG_OPTION_VOLATILE | 
This key is volatile; the information is stored in memory and is not preserved when the system is restarted. This flag is ignored if the key already exists. | 
REG_OPTION_BACKUP_RESTORE | 
If this flag is set, the call ignores the samDesired parameter and attempts to open the key with the access required to backup or restore the key. 
If the RT Registry Server has the SE_BACKUP_NAME privilege enabled, the key is opened with ACCESS_SYSTEM_SECURITY and KEY_READ access. If the RT Registry Server has the SE_RESTORE_NAME privilege enabled, the key is opened with ACCESS_SYSTEM_SECURITY and KEY_WRITE access. If both privileges are enabled, the key has the combined accesses for both privileges.  | 
samDesired 
KEY_ALL_ACCESS | 
Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access. | 
KEY_CREATE_LINK | 
Permission to create a symbolic link. | 
KEY_CREATE_SUB_KEY | 
Permission to create subkeys. | 
KEY_ENUMERATE_SUB_KEYS | 
Permission to enumerate subkeys. | 
KEY_EXECUTE | 
Permission for read access. | 
KEY_NOTIFY | 
Permission for change notification. | 
KEY_QUERY_VALUE | 
Permission to query subkey data. | 
KEY_READ | 
Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access. | 
KEY_SET_VALUE | 
Permission to set subkey data. | 
KEY_WRITE | 
Combination of KEY_SET_VALUE and KEY_CREATE_SUB_KEY access. | 
lpSecurityAttributes 
phkResult 
lpdwDisposition 
REG_CREATED_NEW_KEY | 
The key did not exist and was created. | 
REG_OPENED_EXISTING_KEY | 
The key existed and was simply opened without being changed. | 
ERROR_SUCCESS 
| Versions | Defined in | Include | Link to | 
|---|---|---|---|
| INtime 3.0 | intime/rt/include/rtbase.h | rt.h | rt.lib |