MiChargeResident
INT64 __fastcall MiChargeResident(ULONG_PTR *a1, unsigned __int64 a2, __int64 a3){
struct _KPRCB *CurrentPrcb;
unsigned __int64 v4;
bool v5;
unsigned __int32 v6;
if( a1 == &MiSystemPartition )
{
CurrentPrcb = KeGetCurrentPrcb();
v4 = *((unsigned int *)CurrentPrcb + 8391);
while( a2 <= v4 && (_DWORD)v4 != -1 )
{
v6 = _InterlockedCompareExchange((volatile signed __int32 *)CurrentPrcb + 8391, v4 - a2, v4);
v5 = (_DWORD)v4 == v6;
v4 = v6;
if( v5 )
return 1i64;
}
}
return MiChargePartitionResidentAvailable((INT64)a1, a2, a3);
}Referenced by:
MiAcquireNonPagedResources
MiAllocatePerSessionProtos
MiChargeForWriteInProgressPage
MiChargeLargeProtoSubsection
MiConstructLoaderEntry
MiCreateLargePfnList
MiCreatePagingFileMap
MiGetCrossPartitionCloneCharges
MiGetSubsectionCharges
MiInitializeSystemWorkingSetList
MiInsertVadCharges
MiObtainFaultCharges
MiObtainSystemCharges
MiSessionCreateInternal
MmAdjustWorkingSetSizeEx
MmChargeResources
MmCreateKernelStack
MmCreateProcessAddressSpace
MmGrowKernelStackEx
MmObtainChargesToLockPagedPool
MmSetHardFaultBehavior
MmStoreChargeResidentAvailableForRead
SMKM_STORE::SmStWorker