MiDecrementShareCount
INT64 __fastcall MiDecrementShareCount(UINT64 a1){
char v1;
__int64 v2;
v1 = *(_BYTE *)(a1 + 34);
v2 = *(_QWORD *)(a1 + 24) & 0x3FFFFFFFFFFFFFFFi64;
if( (v1 & 7) != 6 )
KeBugCheckEx(
0x4Eu,
0x99ui64,
(__int64)(a1 - (_QWORD)MmGetPfnDb()) / 48,
v1 & 7,
*(_QWORD *)(a1 + 24) & 0x3FFFFFFFFFFFFFFFi64);
*(_QWORD *)(a1 + 24) ^= ((v2 - 1) ^ *(_QWORD *)(a1 + 24)) & 0x3FFFFFFFFFFFFFFFi64;
if( v2 == 1 )
return MiPfnShareCountIsZero(a1, 0i64);
else
return 2i64;
}Referenced by:
MiAddSystemPageTableToList
MiBuildReservationCluster
MiClearDriverHotPatchPtes
MiCompletePrivateZeroFault
MiConvertPrivateToProto
MiCopyOnWrite
MiDecrementLargeSubsections
MiDecrementProtoShareCounts
MiDeletePteList
MiDeleteTopLevelPage
MiDuplicateCloneLeaf
MiFinishLastForkPageTable
MiFreeContiguousPages
MiFreeRegistryPageRange
MiFreeUnmappedPageTables
MiInitializeProtoPfn
MiLockAndDecrementShareCount
MiMakeSystemCacheRangeValid
MiOutPageSingleKernelStack
MiPurgeImageSection
MiPurgeSubsection
MiRestoreTransitionPte
MiRewriteTrimPteAsDemandZero
MiSharePages
MiUnmapPatchTable
MiWsleFree
MiZeroCfgSystemWideBitmapWorker
MmOutSwapProcess
MmUnmapViewInSystemCache