ViKeRaiseIrqlSanityChecks
CHAR *__fastcall ViKeRaiseIrqlSanityChecks(UINT8 a1, INT64 a2){
UINT64 v2;
unsigned __int8 CurrentIrql;
_VI_TRACK_IRQL *v5;
_BYTE *v6;
char v7;
UINT64 v8;
v2 = a1;
if( (MmVerifierData & 0x400000) != 0 && (MmVerifierData & 2) == 0 )
return 0i64;
CurrentIrql = KeGetCurrentIrql();
if( (MmVerifierData & 2) != 0 )
{
if( CurrentIrql > a1 && !(_DWORD)a2 )
VerifierBugCheckIfAppropriate(0xC4ui64, 0x30ui64, CurrentIrql, a1, 0i64, v8);
if( (unsigned __int8)v2 > 0xFu )
VerifierBugCheckIfAppropriate(0xC4ui64, 0x30ui64, CurrentIrql, v2, 0i64, v8);
}
if( (MmVerifierData & 0x400000) != 0 && (*(_BYTE *)VfFlightOptions & 9) == 0 )
return 0i64;
v5 = VfKeIrqlTransitionReserveLogEntry(CurrentIrql, v2);
ViKeIrqlLogCommon((INT64)v5, 2ui64);
if( (MmVerifierData & 2) != 0 )
{
KeAreInterruptsEnabled(MmVerifierData, v6);
if( v7 )
{
if( CurrentIrql < 2u && (unsigned __int8)v2 >= 2u )
MmVerifierTrimMemory();
}
}
return(CHAR *)v5;
}Referenced by:
VerifierKeAcquireInStackQueuedSpinLockCommon
VerifierKeAcquireInStackQueuedSpinLockRaiseToSynchCommon
VerifierKeAcquireQueuedSpinLock
VerifierKeAcquireQueuedSpinLockRaiseToSynch
VerifierKeRaiseIrqlToDpcLevel
VerifierKeSynchronizeExecution
VerifierKeTryToAcquireQueuedSpinLock
VerifierKeTryToAcquireQueuedSpinLockRaiseToSynch
VerifierKfRaiseIrql
VerifierPortKeAcquireSpinLock
VerifierPortKeAcquireSpinLockNoXdv
ViKeAcquireSpinLockRaiseToDpcCommon