MiWriteTopLevelPxe
VOID __fastcall MiWriteTopLevelPxe(UINT64 a1, INT64 rdx0){
int v4;
int v5;
_KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
LOBYTE(v4) = MiPteInShadowRange(a1);
v5 = 0;
if( (rdx0 & 1) != 0 )
{
if( v4 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 )
rdx0 |= 0x8000000000000000ui64;
}
else if( v4 )
{
if( MiPteHasShadow() )
v5 = 1;
}
*(_QWORD *)a1 = rdx0;
if( v5 )
MiWritePteShadow();
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
}Referenced by:
MiDeletePteRun
MiDeleteTopLevelSessionMapping
MiDeleteVa
MiLinkPoolCommitChain
MiMapNewSession