MiReleaseFaultPte

NTSTATUS __stdcall MiReleaseFaultPte(_XSTATE_CONFIGURATION *a1){
  unsigned __int64 Long; 
  int v3; 
  __int64 v4; 
  NTSTATUS result; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  Long = ZeroPte.u.Long;
  memset(&LockHandle, 0, sizeof(LockHandle));
  LOBYTE(v3) = MiPteInShadowRange((UINT64)a1);
  if( v3 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
    Long = ZeroPte.u.Long | 0x8000000000000000ui64;
  a1->EnabledFeatures = Long;
  KeFlushSingleTb((__int64)(((_QWORD)a1 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16, FlushKernel, 1i64);
  v4 = ((__int64)a1 - *(&stru_140C4DB30 + 489)) >> 3;
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 490, &LockHandle);
  _bittestandreset((signed __int32 *)&stru_140C4DB30 + 982, v4);
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  result = KiIrqlFlags;
  __writecr8(LockHandle.OldIrql);
  return result;
}

Referenced by:

MiValidateImagePfn