MiCreatePlaceholderStorage
INT64 __fastcall MiCreatePlaceholderStorage(__int64 a1){
ULONG_PTR v2;
INT64 result;
__int64 v4;
__int64 v5;
__int64 Vad;
v2 = *((_QWORD *)KeGetCurrentThread() + 23);
result = PsChargeProcessNonPagedPoolQuota(v2, 0x88ui64);
if( (int)result >= 0 )
{
LODWORD(v4) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
v5 = v4;
if( v4 )
{
*(_DWORD *)(v4 + 64) = 128;
Vad = MiAllocateVad(0i64, 0i64, 2);
*(_QWORD *)(v5 + 8) = Vad;
if( Vad )
{
MiInsertVadEvent((_MMVAD_SHORT *)a1, (_MI_VAD_EVENT_BLOCK *)v5, 0i64);
return 0i64;
}
ExFreePoolWithTag((PVOID)v5, 0);
}
PsReturnProcessNonPagedPoolQuota(v2, 0x88ui64);
return 3221225626i64;
}
return result;
}Referenced by:
MiAllocateChildVads
MiDeletePartialVad
MiMapViewOfDataSection
MiReserveUserMemory