mirror of
https://github.com/reactos/reactos.git
synced 2025-05-23 02:56:09 +00:00
[ADVAPI32]
- Rewrite RegOpenKeyExA as a wrapper around RegOpenKeyExW CORE-8582 svn path=/trunk/; revision=64414
This commit is contained in:
parent
de0f394751
commit
ef18d16459
1 changed files with 9 additions and 38 deletions
|
@ -3452,54 +3452,25 @@ RegOpenKeyW(HKEY hKey,
|
|||
* @implemented
|
||||
*/
|
||||
LONG WINAPI
|
||||
RegOpenKeyExA(HKEY hKey,
|
||||
LPCSTR lpSubKey,
|
||||
DWORD ulOptions,
|
||||
REGSAM samDesired,
|
||||
PHKEY phkResult)
|
||||
RegOpenKeyExA(
|
||||
_In_ HKEY hKey,
|
||||
_In_ LPCSTR lpSubKey,
|
||||
_In_ DWORD ulOptions,
|
||||
_In_ REGSAM samDesired,
|
||||
_Out_ PHKEY phkResult)
|
||||
{
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING SubKeyString;
|
||||
HANDLE KeyHandle;
|
||||
NTSTATUS Status;
|
||||
ULONG Attributes = OBJ_CASE_INSENSITIVE;
|
||||
LONG ErrorCode = ERROR_SUCCESS;
|
||||
LONG ErrorCode;
|
||||
|
||||
TRACE("RegOpenKeyExA hKey 0x%x lpSubKey %s ulOptions 0x%x samDesired 0x%x phkResult %p\n",
|
||||
hKey, lpSubKey, ulOptions, samDesired, phkResult);
|
||||
if (!phkResult)
|
||||
{
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Status = MapDefaultKey(&KeyHandle,
|
||||
hKey);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return RtlNtStatusToDosError(Status);
|
||||
}
|
||||
|
||||
if (ulOptions & REG_OPTION_OPEN_LINK)
|
||||
Attributes |= OBJ_OPENLINK;
|
||||
|
||||
RtlCreateUnicodeStringFromAsciiz(&SubKeyString,
|
||||
(LPSTR)lpSubKey);
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&SubKeyString,
|
||||
Attributes,
|
||||
KeyHandle,
|
||||
NULL);
|
||||
|
||||
Status = NtOpenKey((PHANDLE)phkResult,
|
||||
samDesired,
|
||||
&ObjectAttributes);
|
||||
ErrorCode = RegOpenKeyExW(hKey, SubKeyString.Buffer, ulOptions, samDesired, phkResult);
|
||||
|
||||
RtlFreeUnicodeString(&SubKeyString);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ErrorCode = RtlNtStatusToDosError(Status);
|
||||
}
|
||||
|
||||
ClosePredefKey(KeyHandle);
|
||||
|
||||
return ErrorCode;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue