IRAPISession::CeRegCreateKeyEx (Windows Embedded CE 6.0)

1/6/2010

This method creates a registry key on a remote Windows Embedded CEā€“based device. If the key already exists in the registry, this method opens it.

Syntax

LONG CeRegCreateKeyEx( 
  HKEY hKey, 
  LPCWSTR lpszSubKey, 
  DWORD Reserved, 
  LPWSTR lpszClass, 
  DWORD dwOptions, 
  REGSAM samDesired, 
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, 
  PHKEY phkResult, 
  LPDWORD lpdwDisposition 
);

Parameters

  • hKey
    [in] Handle to a currently open key or one of the following predefined reserved handle values:

    HKEY_CLASSES_ROOT

    HKEY_CURRENT_USER

    HKEY_LOCAL_MACHINE

    HKEY_USERS

    Windows Embedded CE does not support the HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA predefined reserved handle values.

    The key opened or created by the IRAPISession::CeRegCreateKeyEx method is a subkey of the key identified by the hKey parameter.

  • lpszSubKey
    [in] Pointer to a null-terminated string specifying the name of a subkey that this method opens or creates. The subkey specified must be a subkey of the key identified by the hKey parameter. This subkey must not begin with the backslash character (\). If the parameter is NULL, then IRAPISession::CeRegCreateKeyEx behaves like IRAPISession::CeRegOpenKey, where it opens the key specified by hKey. In Windows Embedded CE, the maximum length of a key name is 255 characters, not including the terminating NULL character. You can also only nest 16 levels of sub-keys in Windows Embedded CE.
  • Reserved
    [in] Reserved; set to 0.
  • lpszClass
    [in] Pointer to a null-terminated string that specifies the class (object type) of this key. This parameter is ignored if the key already exists. In Windows Embedded CE, the maximum length of a class string is 255 characters, not including the terminating NULL character.
  • dwOptions
    [in] Ignored; set to 0 to ensure compatibility with future versions of Windows Embedded CE.
  • samDesired
    [in] Ignored; set to 0 to ensure compatibility with future versions of Windows Embedded CE.
  • lpSecurityAttributes
    [in] Set to NULL. Windows Embedded CE automatically assigns the key a default security descriptor.
  • phkResult
    [out] Pointer to a variable that receives a handle to the opened or created key. When you no longer need the returned handle, call the IRAPISession::CeRegCloseKey function to close it.
  • lpdwDisposition
    [out] Pointer to a variable that receives one of the following values.

    Value Description

    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.

Return Value

ERROR_SUCCESS indicates success. A nonzero error code defined in Winerror.h indicates failure. To get a generic description of the error, call FormatMessage with the FORMAT_MESSAGE_FROM_SYSTEM flag set.

Remarks

The key that the IRAPISession::CeRegCreateKeyEx method creates has no value. An application can use the IRAPISession::CeRegSetValueEx function to set the key value.

IRAPISession::CeRegCreateKeyEx can create keys under the HKEY_LOCAL_MACHINE and HKEY_USERS registries.

An application can use IRAPISession::CeRegCreateKeyEx 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.

Requirements

Header rapi2.h
Library ole32.lib, rapiuuid.lib
Windows Embedded CE Windows Embedded CE 6.0 and later

See Also

Reference

IRAPISession
IRAPISession::CeRegCreateKeyEx
IRAPISession::CeRegDeleteKey
IRAPISession::CeRegOpenKeyEx
IRAPISession::CeRegSetValueEx