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