PopOpenKey
NTSTATUS __stdcall PopOpenKey(VOID **Handle, WCHAR *Name, UINT64 AccessMask){
INT64 v3;
unsigned int v4;
int v7;
INT64 v9;
INT64 v10;
UINT64 v11;
INT64 v12;
INT64 v13;
VOID *KeyHandle;
_UNICODE_STRING DestinationString;
_OBJECT_ATTRIBUTES ObjectAttributes;
VOID *v17;
*(&ObjectAttributes.Length + 1) = 0;
memset(&ObjectAttributes.Attributes + 1, 0, 20);
KeyHandle = 0i64;
v4 = AccessMask;
v17 = 0i64;
ObjectAttributes.RootDirectory = 0i64;
ObjectAttributes.ObjectName = &CmRegistryMachineSystemCurrentControlSet;
ObjectAttributes.Length = 48;
ObjectAttributes.Attributes = 576;
DestinationString = 0i64;
v7 = ZwOpenKey(&KeyHandle, 0x2001Fui64, &ObjectAttributes, v3, v9, v10, v12, v13);
if( v7 >= 0 )
{
RtlInitUnicodeString(&DestinationString, Name);
LODWORD(v11) = 0;
ObjectAttributes.RootDirectory = KeyHandle;
ObjectAttributes.Length = 48;
ObjectAttributes.ObjectName = &DestinationString;
ObjectAttributes.Attributes = 576;
*(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
v7 = ZwCreateKey(&v17, v4, &ObjectAttributes, 0i64, 0i64, v11, 0i64);
if( v7 < 0 )
v17 = 0i64;
else
*Handle = v17;
if( KeyHandle )
ZwClose((_HANDLE)KeyHandle);
}
return v7;
}Referenced by:
PopLoadResumeContext
PopOpenPowerKey
PopSaveHibernateEnabled
PopSetHiberFileSize
PopSetHiberFileType
PpmInitIllegalThrottleLogging