MiAllowGuardFault
UINT64 __stdcall MiAllowGuardFault(PVOID TrapInformation){
_ETHREAD *CurrentThread;
__int64 v2;
_BYTE *v3;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
if( *((_BYTE *)CurrentThread + 586) == 1 )
return 0i64;
v2 = (unsigned __int8)TrapInformation & 1;
v3 = (_BYTE *)((unsigned __int64)TrapInformation & 0xFFFFFFFFFFFFFFFEui64);
if( ((unsigned __int8)TrapInformation & 1) == 0 )
goto LABEL_3;
if( *v3 == 1 )
goto LABEL_11;
if( ((unsigned __int8)TrapInformation & 1) == 0 )
{
LABEL_3:
if( KeInvalidAccessAllowed(TrapInformation) != 1 )
return(*((_DWORD *)CurrentThread + 29) & 0x20) == 0;
LABEL_11:
if( !v2 || *v3 != 6 )
return 0i64;
return(*((_DWORD *)CurrentThread + 29) & 0x20) == 0;
}
if( *v3 == 3 || *v3 == 6 )
goto LABEL_11;
return(*((_DWORD *)CurrentThread + 29) & 0x20) == 0;
}Referenced by:
MiAccessCheck
MiResolveProtoPteFault
MiUserFault
MiZeroFault