IopInitCrashDumpDuringSysInit
NTSTATUS __stdcall IopInitCrashDumpDuringSysInit(_LOADER_PARAMETER_BLOCK *LoaderBlock){
NTSTATUS v1;
unsigned int v3;
unsigned __int64 v4;
char v6;
_QWORD PagingFileName[3];
_RTL_QUERY_REGISTRY_TABLE QueryTable[2];
UINT8 IncludeType[30];
__int16 v10;
char v11;
char v12;
v1 = 0;
v6 = 0;
*(&stru_140C452E0 + 886) = HalSetEnvironmentVariableEx;
if( !*(&stru_140CF2E80 + 4800) && SecureDump_Init() < 0 )
*(&stru_140CF2E80 + 4800) = 1;
if( (*(_DWORD *)&LoaderBlock->FirmwareInformation & 2) != 0 )
*(&stru_140C452E0 + 886) = VslReportBugCheckProgress;
v3 = 0;
v4 = 0i64;
do
{
if( v4 >= 0x29 )
_report_rangecheckfailure();
IncludeType[v4] = 0;
++v3;
++v4;
}
while( v3 < 0x29 );
v10 = 257;
IncludeType[6] = 1;
v11 = 1;
v12 = 1;
qword_140C508F0 = MmInitializeMemoryLimits(LoaderBlock, IncludeType);
memset(QueryTable, 0i64, sizeof(QueryTable));
QueryTable[0].Flags = 4;
QueryTable[0].QueryRoutine = (int(__fastcall *)(wchar_t *, unsigned int, void *, unsigned int, void *, void *))IopInitCrashDumpRegCallback;
QueryTable[0].DefaultType = 0;
QueryTable[0].Name = L"ExistingPageFiles";
QueryTable[0].EntryContext = &v6;
RtlQueryRegistryValuesEx(2ui64, L"Session Manager\\Memory Management", QueryTable, LoaderBlock, 0i64);
if( !v6 )
{
*(_OWORD *)&PagingFileName[1] = 0i64;
v1 = IoInitializeCrashDump(0i64, (_UNICODE_STRING *)&PagingFileName[1]) == 0 ? 0xC0000001 : 0;
}
IopInitializeOfflineCrashDump(LoaderBlock->Extension);
return v1;
}Referenced by:
IoInitSystemPreDrivers