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