MiDecrementShareCount
_MI_PAGE_DELETE_RESULT __stdcall MiDecrementShareCount(_MMPFN *Pfn1){
char v1;
__int64 v2;
v1 = *((_BYTE *)&Pfn1->u3 + 2);
v2 = Pfn1->u2._bf_0 & 0x3FFFFFFFFFFFFFFFi64;
if( (v1 & 7) != 6 )
KeBugCheckEx(
0x4Eu,
(PVOID)0x99,
(PVOID)(Pfn1 - MmGetPfnDb()),
(PVOID)(v1 & 7),
(PVOID)(Pfn1->u2._bf_0 & 0x3FFFFFFFFFFFFFFFi64));
Pfn1->u2._bf_0 ^= ((v2 - 1) ^ Pfn1->u2._bf_0) & 0x3FFFFFFFFFFFFFFFi64;
if( v2 == 1 )
return MiPfnShareCountIsZero(Pfn1, 0i64);
else
return 2;
}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
MiTrimSystemImagePages
MiUnmapPatchTable
MiWsleFree
MiZeroCfgSystemWideBitmapWorker
MmOutSwapProcess
MmUnmapViewInSystemCache