MiDecrementSubsection
NTSTATUS __stdcall MiDecrementSubsection(PVOID BugCheckParameter2){
__int64 v1;
unsigned __int64 v3;
UINT64 v4;
UINT64 v5;
NTSTATUS result;
unsigned int v7;
v1 = *(_QWORD *)BugCheckParameter2;
v3 = (unsigned __int8)ExAcquireSpinLockExclusive((INT64 *)(*(_QWORD *)BugCheckParameter2 + 72i64));
LODWORD(v4) = MiDecrementSubsections((_SUBSECTION *)BugCheckParameter2, (_SUBSECTION *)BugCheckParameter2, 0i64);
v5 = v4;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(v1 + 72));
result = KiIrqlFlags;
v7 = 0;
__writecr8(v3);
if( v5 )
{
LOBYTE(v7) = *(_QWORD *)(v1 + 64) != 0i64;
MiReturnCrossPartitionSectionCharges(
*(_MI_CROSS_PARTITION_CHARGES **)(*(&stru_140C4DB30 + 267) + 8i64 * (*(_WORD *)(v1 + 60) & 0x3FF)),
v7,
v5);
}
return result;
}Referenced by:
MiPurgeBadFileOnlyPages
MiTrimSection
MiTrimSharedPage