MiIdentifyPfnWrapper

VOID __stdcall MiIdentifyPfnWrapper(_MMPFN *Pfn1, _MMPFN_IDENTITY *Identity){
  unsigned __int8 CurrentIrql; 
  UINT64 SpinCount; 
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  LODWORD(SpinCount) = 0;
  while( _interlockedbittestandset64((volatile signed __int32 *)Pfn1 + 6, 0x3Fui64) )
  {
    do
      KeYieldProcessorEx(&SpinCount);
    while( *((__int64 *)Pfn1 + 3) < 0 );
  }
  MiIdentifyPfn(Pfn1, (UINT64 *)Identity);
  _InterlockedAnd64((volatile signed __int64 *)Pfn1 + 3, 0x7FFFFFFFFFFFFFFFui64);
  __writecr8(CurrentIrql);
}

Referenced by:

MiLogAllocateWsleEvent
MiQueryLeafPte
MmIdentifyPhysicalMemory
MmRelocatePfnList
PfpPfnPrioRequest