MiReleaseFaultPte
INT64 __fastcall MiReleaseFaultPte(UINT64 a1){
__int64 v2;
INT64 result;
struct _KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
*(_QWORD *)a1 = ZeroPte;
KeFlushSingleTb((__int64)((a1 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16, 0i64, 1i64);
v2 = (__int64)(a1 - qword_140C4EA78) >> 3;
KeAcquireInStackQueuedSpinLock(&qword_140C4EA80, &LockHandle);
_bittestandreset((signed __int32 *)byte_140C4EA88, v2);
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
result = (unsigned int)KiIrqlFlags;
__writecr8(LockHandle.OldIrql);
return result;
}Referenced by:
MiValidateImagePfn