MiSetPfnBlink
VOID __stdcall MiSetPfnBlink(_MMPFN *Pfn1, UINT64 BlinkValue, UINT64 PageLockHeld){
UINT64 v3;
signed __int64 v5;
signed __int64 v6;
signed __int64 v7;
v3 = BlinkValue & 0xFFFFFFFFFi64;
if( (_DWORD)PageLockHeld == 1 )
{
*((_QWORD *)Pfn1 + 3) = v3 | *((_QWORD *)Pfn1 + 3) & 0xFFFFFFF000000000ui64;
}
else
{
v5 = *((_QWORD *)Pfn1 + 3);
v6 = _InterlockedCompareExchange64((volatile signed __int64 *)Pfn1 + 3, v3 | v5 & 0xFFFFFFF000000000ui64, v5);
if( v5 != v6 )
{
do
{
v7 = v6;
v6 = _InterlockedCompareExchange64((volatile signed __int64 *)Pfn1 + 3, v3 | v6 & 0xFFFFFFF000000000ui64, v6);
}
while( v7 != v6 );
}
}
}Referenced by:
MiBuildMdlForMappedFileFault
MiConvertEntireLargePageToSmall
MiDiscardTransitionPteEx
MiGetEnclavePage
MiGetHardFaultPages
MiGetPageChain
MiPfPrepareSequentialReadList
MiReInitializeFreeSlabPfn
MiRemoveLowestPriorityStandbyPage
MiReplaceTransitionPage
MiReplenishPageSlist
MiResolvePageFileFault
MiReturnEnclavePage
MiSwapNumaStandbyPage
MiSwitchToTransition
MiUnlinkPageFromBadList
MiUnlinkPageFromList