VfNotifyVerifierOfEvent
VOID __stdcall VfNotifyVerifierOfEvent(UINT64 EventType){
int v1;
int v2;
int v3;
int v4;
__int32 v5;
if( (_DWORD)EventType )
{
v1 = EventType - 1;
if( v1 )
{
v2 = v1 - 1;
if( !v2 )
{
_InterlockedAdd(&dword_140C1CF08, 1u);
_InterlockedExchange(&ViKeTrackIrqlDisabled, 1);
VfStopBranchTracing();
_InterlockedExchange(&ViFaultsDisabled, v5);
return;
}
v3 = v2 - 1;
if( v3 )
{
v4 = v3 - 1;
if( v4 )
{
if( v4 == 1 )
{
_InterlockedAdd(&dword_140C1CF14, 1u);
if( VfStartBranchTracing() < 0 && (MmVerifierData & 0x8000000) != 0 )
VfUtilDbgPrint((INT8 *)"Failed to start branch tracing. \n");
if( (VfOptionFlags & 0x10) != 0 )
{
VfUtilDbgPrint((INT8 *)"Driver Verifier: VERIFIER_OPTION_ONEBOOT set before boot. Clearing Verifier options"
" from Registry.\n");
VfClearVerifierSettings();
}
VfNotifyVerifierExtensions(XdvInitPhaseEvent, (VOID *)2);
VfNotifyDifPlugins(0, 0i64);
}
}
else
{
_InterlockedAdd(&dword_140C1CF10, 1u);
VfStartBranchTracing();
}
return;
}
_InterlockedAdd(&dword_140C1CF0C, 1u);
}
else
{
_InterlockedAdd(&dword_140C1CF04, 1u);
}
VfStopBranchTracing();
return;
}
_InterlockedAdd(&ViNotifyEvent, 1u);
if( VfInitializeBranchTracing() < 0 && (MmVerifierData & 0x8000000) != 0 )
VfUtilDbgPrint((INT8 *)"Failed to initialize branch tracing. \n");
}Referenced by:
IoInitSystem
IoShutdownSystem
KdEnterDebugger
KdExitDebugger
KeBugCheck2
Phase1InitializationIoReady