RegRtlOpenPredefinedKey
NTSTATUS __stdcall RegRtlOpenPredefinedKey(
VOID *hKey,
VOID **phkPredef,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8){
wchar_t *Buffer;
int v10;
_UNICODE_STRING UnicodeString;
UnicodeString = 0i64;
if( hKey == (VOID *)2147483650i64 )
{
Buffer = L"\\REGISTRY\\MACHINE";
LABEL_3:
v10 = RegRtlOpenKeyTransacted(0i64, Buffer, 0i64, 0x2000000ui64, phkPredef, 0i64);
goto LABEL_4;
}
if( hKey == (VOID *)0x80000000i64 )
{
Buffer = L"\\REGISTRY\\MACHINE\\SOFTWARE\\CLASSES";
goto LABEL_3;
}
if( hKey == (VOID *)2147483651i64 )
{
Buffer = L"\\REGISTRY\\USER";
goto LABEL_3;
}
if( hKey == (VOID *)2147483653i64 )
{
Buffer = L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET\\HARDWARE PROFILES\\CURRENT";
goto LABEL_3;
}
if( hKey != (VOID *)2147483649i64 )
{
v10 = -1073741816;
goto LABEL_4;
}
v10 = RtlFormatCurrentUserKeyPath(&UnicodeString);
if( v10 >= 0 )
{
Buffer = UnicodeString.Buffer;
goto LABEL_3;
}
LABEL_4:
RtlFreeAnsiString(&UnicodeString);
return v10;
}Referenced by:
RegRtlCreateKeyTransacted
RegRtlOpenKeyTransacted
RegRtlQueryKeyPathName