IopReadDumpRegistry
VOID __stdcall IopReadDumpRegistry(UINT64 *dumpSetting, UINT64 a2){
_KEY_VALUE_FULL_INFORMATION *v3;
_UNICODE_STRING KeyName;
_KEY_VALUE_FULL_INFORMATION *Information;
PVOID Handle;
Handle = 0i64;
Information = 0i64;
KeyName.Buffer = L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl";
*(_QWORD *)&KeyName.Length = 8388734i64;
if( IopOpenRegistryKey(&Handle, 0i64, &KeyName, 0x20019ui64, 0) >= 0 )
{
if( IopGetRegistryValue(Handle, (PWCHAR)L"AutoReboot", 0i64, &Information) >= 0 )
{
if( Information->DataLength )
dword_140C508EC = *(ULONG *)((char *)&Information->TitleIndex + Information->DataOffset);
ExFreePoolWithTag(Information, 0);
}
if( a2 && IopGetRegistryValue(Handle, (PWCHAR)L"CrashDumpEnabled", 0i64, &Information) >= 0 )
{
v3 = Information;
if( Information->DataLength )
*(_DWORD *)a2 = *(ULONG *)((char *)&Information->TitleIndex + Information->DataOffset);
ExFreePoolWithTag(v3, 0);
}
ObCloseHandle(Handle, 0);
}
}Referenced by:
IoConfigureCrashDump
IopInitializeCrashDump