MiSetPfnTbFlushStamp
VOID __fastcall MiSetPfnTbFlushStamp(_MMPFN *Pfn1, UINT64 TbFlushStamp, UINT64 PageLockHeld){
UINT64 v4;
signed __int64 v5;
signed __int64 v6;
signed __int64 v7;
v4 = (TbFlushStamp & 0xF) << 56;
if( (_DWORD)PageLockHeld == 1 )
{
*((_QWORD *)Pfn1 + 3) = v4 | *((_QWORD *)Pfn1 + 3) & 0xF0FFFFFFFFFFFFFFui64;
}
else
{
v5 = *((_QWORD *)Pfn1 + 3);
v6 = _InterlockedCompareExchange64((volatile signed __int64 *)Pfn1 + 3, v4 | v5 & 0xF0FFFFFFFFFFFFFFui64, v5);
if( v5 != v6 )
{
do
{
v7 = v6;
v6 = _InterlockedCompareExchange64((volatile signed __int64 *)Pfn1 + 3, v4 | v6 & 0xF0FFFFFFFFFFFFFFui64, v6);
}
while( v7 != v6 );
}
}
}Referenced by:
MiAllocateDummyPage
MiAllocateKernelStackPages
MiChangePageAttributeContiguous
MiConvertLargePfnToSmall
MiConvertLockedSmallPageToLarge
MiCopyOnWrite
MiDeleteSubsectionLargePages
MiFinalizePageAttribute
MiGetPageTablePages
MiGetPoolPages
MiInitializeHardFaultPfn
MiMapPageFileHash
MiMigratePfn
MiPerformFinalZeroing
MiPurgeBadFileOnlyPages
MiSwapNumaStandbyPage
MiSwapStackPage
MiTradePage
MiUpdateLargePageSectionPfns