VfFaultsInjectResourceFailure

UINT64 __stdcall VfFaultsInjectResourceFailure(UINT64 PoolAllocation){
  int v1; 
  unsigned int v3; 
  unsigned int v4; 
  v1 = PoolAllocation;
  if( !ViFaultsInitialized )
  {
    ++ViFaultsDecisions;
    return 0i64;
  }
  if( ViFaultsDisabled )
  {
    ++dword_140D4940C;
    return 0i64;
  }
  if( (MmVerifierData & 4) != 0 )
  {
    v3 = VfFaultInjectionProbability;
    v4 = VfFaultInjectionMaxProbability;
    if( !VfFaultInjectionProbability
      || VfFaultInjectionProbability > (unsigned int)VfFaultInjectionMaxProbability
      || !(unsigned int)VfFaultsIsSystemSufficientlyBooted()
      || !v1 && ViHaveFaultTags && !ViFaultsForceAllAPIs
      || !(unsigned int)ViFaultsIsCurrentAppTarget() )
    {
      return 0i64;
    }
    if( (unsigned int)VfRandomGetNumber(0i64, v4) >= v3 )
    {
      ++dword_140D493FC;
      if( v3 != 600 || v4 != 10000 || (KUSER_SHARED_DATA.TickCount.LowPart & 0x7FFF) >= 0x400 )
        return 0i64;
      ++dword_140D49400;
    }
    else
    {
      ++dword_140D493F8;
    }
    ViFaultsInjectionNotification(v1 != 0 ? 3 : 1);
  }
  else
  {
    if( ViInjectInPagePathOnly != 1 || !*((_BYTE *)KeGetCurrentThread() + 1310) )
      return 0i64;
    ViFaultsInjectionNotification((_DWORD)PoolAllocation != 0 ? 3 : 1);
    ++dword_140D493E8;
  }
  return 1i64;
}

Referenced by:

VerifierIoAllocateDriverObjectExtension
VerifierIoAllocateErrorLogEntry
VerifierIoAllocateIrp
VerifierIoSetCompletionRoutineEx
VerifierMmAllocateContiguousMemory
VerifierMmAllocateContiguousMemorySpecifyCache
VerifierMmAllocateContiguousMemorySpecifyCacheNode
VerifierMmAllocateContiguousNodeMemory
VerifierMmAllocateMappingAddress
VerifierMmAllocateNodePagesForMdlEx
VerifierMmAllocateNonCachedMemory
VerifierMmAllocatePagesForMdl
VerifierMmAllocatePagesForMdlEx
VerifierMmCreateMdl
VerifierMmMapIoSpace
VerifierMmMapLockedPagesSpecifyCache
VerifierMmProbeAndLockPages
VerifierMmProbeAndLockProcessPages
VerifierPortIoAllocateIrp
VfFaultsInjectPoolAllocationFailure
ViKeInjectStatusAlerted