MiSetPfnTbFlushStamp
VOID __stdcall MiSetPfnTbFlushStamp(_MMPFN *Pfn1, UINT64 TbFlushStamp, UINT64 PageLockHeld){
UINT64 v4;
__int64 bf_0;
signed __int64 v6;
signed __int64 v7;
v4 = (TbFlushStamp & 0xF) << 56;
if( (_DWORD)PageLockHeld == 1 )
{
Pfn1->u2._bf_0 = v4 | Pfn1->u2._bf_0 & 0xF0FFFFFFFFFFFFFFui64;
}
else
{
bf_0 = Pfn1->u2._bf_0;
v6 = _InterlockedCompareExchange64(&Pfn1->u2.Lock, v4 | bf_0 & 0xF0FFFFFFFFFFFFFFui64, bf_0);
if( bf_0 != v6 )
{
do
{
v7 = v6;
v6 = _InterlockedCompareExchange64(&Pfn1->u2.Lock, 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