MiLockSetPfnPriority
VOID __stdcall MiLockSetPfnPriority(_MMPFN *Pfn1, VOID *NewPriority){
char v2;
UINT64 SpinCount;
LODWORD(SpinCount) = 0;
v2 = (char)NewPriority;
while( _interlockedbittestandset64((volatile signed __int32 *)&Pfn1->u2, 0x3Fui64) )
{
do
KeYieldProcessorEx(&SpinCount);
while( Pfn1->u2._bf_0 < 0 );
}
*((_BYTE *)&Pfn1->u3 + 3) ^= (v2 ^ *((_BYTE *)&Pfn1->u3 + 3)) & 7;
_InterlockedAnd64(&Pfn1->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
}Referenced by:
MiAgePteWorker
MiDeleteVa
MiResolvePageFileFault
MiUpdateOldPteWorker
MmUnmapViewInSystemCache