MiSetPfnBlink
VOID __stdcall MiSetPfnBlink(_MMPFN *Pfn1, UINT64 BlinkValue, UINT64 PageLockHeld){
UINT64 v3;
__int64 bf_0;
signed __int64 v6;
signed __int64 v7;
v3 = BlinkValue & 0xFFFFFFFFFi64;
if( (_DWORD)PageLockHeld == 1 )
{
Pfn1->u2._bf_0 = v3 | Pfn1->u2._bf_0 & 0xFFFFFFF000000000ui64;
}
else
{
bf_0 = Pfn1->u2._bf_0;
v6 = _InterlockedCompareExchange64(&Pfn1->u2.Lock, v3 | bf_0 & 0xFFFFFFF000000000ui64, bf_0);
if( bf_0 != v6 )
{
do
{
v7 = v6;
v6 = _InterlockedCompareExchange64(&Pfn1->u2.Lock, v3 | v6 & 0xFFFFFFF000000000ui64, v6);
}
while( v7 != v6 );
}
}
}Referenced by:
MiBuildMdlForMappedFileFault
MiConvertEntireLargePageToSmall
MiGetEnclavePage
MiGetHardFaultPages
MiGetPageChain
MiPfPrepareSequentialReadList
MiReInitializeFreeSlabPfn
MiRemoveLowestPriorityStandbyPage
MiReplaceTransitionPage
MiReplenishPageSlist
MiResolvePageFileFault
MiSwapNumaStandbyPage
MiSwitchToTransition
MiUnlinkPageFromBadList
MiUnlinkPageFromList