MiWriteTopLevelPxe
INT64 __fastcall MiWriteTopLevelPxe(_QWORD *a1, INT64 a2){
BOOL v4;
int v5;
INT64 result;
struct _KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
v4 = MiPteInShadowRange((UINT64)a1);
v5 = 0;
if( (a2 & 1) != 0 )
{
if( v4 && (*(_DWORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 2172i64) & 0x1000) != 0 )
a2 |= 0x8000000000000000ui64;
}
else if( v4 )
{
if( (unsigned int)MiPteHasShadow() )
v5 = 1;
}
*a1 = a2;
if( v5 )
MiWritePteShadow();
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
result = (unsigned int)KiIrqlFlags;
__writecr8(LockHandle.OldIrql);
return result;
}Referenced by:
MiDeletePteRun
MiDeleteTopLevelSessionMapping
MiDeleteVa
MiLinkPoolCommitChain
MiMapNewSession