IopLiveDumpAllocateMappingResources
NTSTATUS __stdcall IopLiveDumpAllocateMappingResources(_LIVEDUMP_CONTEXT *Context){
unsigned int v1;
size_t v3;
VOID **PoolWithTag;
NTSTATUS v5;
int v7;
__int64 i;
__int64 v9;
VOID *DumpHibernateResources;
_MDL *Mdl;
v1 = KeNumberProcessors_0;
v3 = 16 * KeNumberProcessors_0;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 16i64 * (unsigned int)KeNumberProcessors_0, 1886217292i64);
v5 = 0;
*((_QWORD *)Context + 99) = PoolWithTag;
if( PoolWithTag )
{
memset(PoolWithTag, 0i64, v3);
Context[196] = v1;
v7 = 0;
if( !v1 )
return v5;
for( i = 0i64; ; i += 16i64 )
{
v9 = *((_QWORD *)Context + 99);
DumpHibernateResources = MmAllocateDumpHibernateResources(0x10000ui64);
*(_QWORD *)(i + v9) = DumpHibernateResources;
if( !DumpHibernateResources )
break;
Mdl = IoAllocateMdl(DumpHibernateResources, 0x10000ui64, 0, 0, 0i64);
*(_QWORD *)(i + v9 + 8) = Mdl;
if( !Mdl )
break;
if( ++v7 >= v1 )
return v5;
}
}
else
{
Context[196] = 0;
}
IopLiveDumpFreeMappingResources(Context);
return -1073741670;
}Referenced by:
IopLiveDumpAllocAndInitResources