The following list of error values is not comprehensive. It is included here to give you an idea of the kinds of errors to expect. Future versions of Windows may return new error codes, or return slightly different error codes under analogous circumstances.
Value | Meaning |
ERROR_SUCCESS | The function was successful. |
ERROR_NO_MORE_ITEMS | There are no more keys or values to enumerate. |
ERROR_MORE_DATA | Passed in buffer is not large enough to hold the entire value. |
ERROR_FILE_NOT_FOUND | The specified key was not found in the registry database. |
ERROR_KEY_DELETED | HKEY passed to service has been deleted since it was opened. |
ERROR_CANTOPEN ERROR_CANTREAD | Aliases of ERROR_FILE_NOT_FOUND for 16 bit code. |
ERROR_ACCESS_DENIED | Attempt to write to a key for which code does not have write access. |
ERROR_OUTOFMEMORY | Insufficient memory to open the registry key or insufficient memory to load the required data from the registry file. |
The following may be returned when calling the registry services incorrectly:
ERROR_BADKEY | The subkey string contains an invalid character or the handle identifying the key is invalid. |
ERROR_LOCK_FAILED | Registry reentered while blocked by same process. |
ERROR_INVALID_PARAMETER | Parameter is required and not specified, an invalid pointer or otherwise not valid. |
The following indicate a system problem. The system contains procedures for recovering from these errors, mostly involving rebooting:
ERROR_BADDB ERROR_REGISTRY_CORRUPT | Registry data structures corrupt. |
ERROR_REGISTRY_IO_FAILED | The registry file cannot be found or it was already opened by another application. A full disk or problem reading or writing to the disk may also cause this error. |
When an HKEY is specified as an input parameter, it must be an HKEY returned from one of the registry services or one of the following predefined keys:
HKEY_CLASSES_ROOT | |
HKEY_CURRENT_USER | |
HKEY_LOCAL_MACHINE | |
HKEY_USERS | |
HKEY_CURRENT_CONFIG | |
HKEY_DYN_DATA |
Of the predefined key values, only HKEY_LOCAL_MACHINE and HKEY_DYN_DATA are available to VxDs during initialization time. The entire registry space can only be accessed after VxD initialization is complete.
The key names are in OEM character set with some variations. Prior to completion of VxD initialization, all key names referenced must not contain any characters in the extended character set (character whose value is greater than 127). After VxD initialization, the entire character set is available.