VfInitVerifierComponents

VOID __stdcall VfInitVerifierComponents(UINT64 MmFlags, UINT64 VerifyAllDrivers, UINT64 VerifyKernel){
  unsigned int v3; 
  unsigned int v4; 
  unsigned int v5; 
  __int64 v6; 
  bool v7; 
  volatile __int32 *v8; 
  volatile __int32 *v9; 
  INT64 v10; 
  INT64 v11; 
  INT64 v12; 
  INT64 v13; 
  VOID **PoolWithTag; 
  _QWORD *v15; 
  volatile __int32 *v16; 
  volatile __int32 *v17; 
  _XSTATE_CONFIGURATION *v18; 
  INT64 v19; 
  _RTL_AVL_TABLE *a5; 
  _RTL_AVL_TABLE *a5a; 
  _RTL_AVL_TABLE *a5b; 
  VOID *a6; 
  VOID *a6c; 
  VOID *a6a; 
  VOID *a6b; 
  __int16 v27; 
  int v28; 
  int v29; 

  v3 = VerifyKernel;
  v4 = VerifyAllDrivers;
  v5 = MmFlags;
  if( (MmVerifierData & 0x400000) == 0 || (MmVerifierData & 0x10) != 0 || (VfFlightOptions & 9) != 0 )
    ExSetPoolFlags(0x10ui64);
  if( (MmVerifierData & 0x400000) == 0 || (MmVerifierData & 0x10) != 0 )
    VfIrpDatabaseInit();
  if( (MmVerifierData & 0x400000) == 0 || (MmVerifierData & 0x10) != 0 )
    VfWdInit();
  VfKeCheckForChanges(v5);
  if( (MmVerifierData & 0x400000) == 0 || (MmVerifierData & 0x10) != 0 )
    ViSettingsIoCheckForChanges(v5);
  if( (v5 & 8) != 0 )
    MmTrackLockedPages = 1;
  VfPendingCheckForChanges(v5);
  VfPoolInitPhase0();
  v6 = (unsigned int)ViFaultTracesLength;
  ViRequiredTimeSinceBootInMsecs = 60000i64 * (unsigned int)VfFaultInjectionBootMinutes;
  ViFaultInjectionLock = 0i64;
  if( (unsigned int)ViFaultTracesLength > 0x101000 )
  {
    v6 = 1052672i64;
    ViFaultTracesLength = 1052672;
  }
  ViFaultTraces = (__int64)ExAllocatePoolWithTagPriority(NonPagedPoolNx, 72 * v6, 0x74746C46ui64, HighPoolPriority);
  ViFaultsInitializeTagsList();
  ViFaultsInitializeAppsList();
  ViFaultsInitialized = 1;
  v7 = VfAvlInitializeTree(&ViLookasideAvl, 0x60ui64, 0i64, ViRemLockDelayFreeAvlNode, a5, a6) < 0;
  v8 = &ViLookasideInitialized;
  if( v7 )
    v8 = &ViLookasideAllocationFailures;
  _InterlockedExchange(v8, 1);
  v27 = 16;
  ((void(__fastcall *)(_NPAGED_LOOKASIDE_LIST *, _QWORD, VOID(__stdcall *)(VOID *), __int64, __int64, int, __int16, int, VOID(__stdcall *)(_NPAGED_LOOKASIDE_LIST *, VOID **, POOL_TYPE, UINT64, UINT64, VOID *, VOID *, INT64, UINT64, INT64, INT64, INT64)))pXdvExInitializeNPagedLookasideList)(
    &ViSessionDataLookaside,
    0i64,
    VfUtilFreePoolDispatchLevel,
    512i64,
    2600i64,
    1936749129,
    v27,
    VfInitializedWithoutReboot,
    ExInitializeNPagedLookasideListInternal);
  _InterlockedExchange(&ViSessionDataInitialized, 1);
  LODWORD(a6c) = 1953526345;
  ((void(__fastcall *)(_NPAGED_LOOKASIDE_LIST *, _QWORD, VOID(__stdcall *)(VOID *), __int64))pXdvExInitializeNPagedLookasideList)(
    &ViPacketLookaside,
    0i64,
    VfUtilFreePoolCheckIRQL,
    512i64);
  v7 = VfAvlInitializeTree(&ViResourceAvl, 0x68ui64, 0i64, ViRemLockDelayFreeAvlNode, (_RTL_AVL_TABLE *)0x100, a6c) < 0;
  v9 = &ViResourceInitialized;
  if( v7 )
    v9 = &ViResourceNotTracked;
  _InterlockedExchange(v9, 1);
  LOWORD(v28) = 16;
  ((void(__fastcall *)(_NPAGED_LOOKASIDE_LIST *, _QWORD, VOID(__stdcall *)(VOID *), __int64, __int64, int, int, int, VOID(__stdcall *)(_NPAGED_LOOKASIDE_LIST *, VOID **, POOL_TYPE, UINT64, UINT64, VOID *, VOID *, INT64, UINT64, INT64, INT64, INT64)))pXdvExInitializeNPagedLookasideList)(
    &ViIrpCallDriverDataList,
    0i64,
    VfUtilFreePoolCheckIRQL,
    512i64,
    192i64,
    1131442761,
    v28,
    VfInitializedWithoutReboot,
    ExInitializeNPagedLookasideListInternal);
  memset(&ViMajorVerifierRoutines, 0i64, 0xB40u);
  LOBYTE(v10) = 27;
  VfMajorRegisterHandlers(
    v10,
    (INT64)VfPnpDumpIrpStack,
    (INT64)VfPnpVerifyNewRequest,
    (INT64)VfPnpVerifyIrpStackDownward,
    (INT64)VfPnpVerifyIrpStackUpward,
    (INT64)VfPnpIsSystemRestrictedIrp,
    (INT64)VfPnpAdvanceIrpStatus,
    0i64,
    0i64,
    0i64,
    0i64,
    (INT64)VfPnpTestStartedPdoStack,
    0i64);
  LOBYTE(v11) = 22;
  VfMajorRegisterHandlers(
    v11,
    (INT64)VfPowerDumpIrpStack,
    (INT64)VfPowerVerifyNewRequest,
    (INT64)VfPowerVerifyIrpStackDownward,
    (INT64)VfPowerVerifyIrpStackUpward,
    (INT64)VfPowerIsSystemRestrictedIrp,
    0i64,
    0i64,
    0i64,
    0i64,
    0i64,
    (INT64)VfPowerTestStartedPdoStack,
    0i64);
  LOBYTE(v12) = 23;
  VfMajorRegisterHandlers(
    v12,
    (INT64)VfWmiDumpIrpStack,
    (INT64)VfWmiVerifyNewRequest,
    (INT64)VfWmiVerifyIrpStackDownward,
    (INT64)VfWmiVerifyIrpStackUpward,
    0i64,
    0i64,
    0i64,
    0i64,
    0i64,
    0i64,
    (INT64)VfWmiTestStartedPdoStack,
    0i64);
  LOBYTE(v13) = -1;
  VfMajorRegisterHandlers(
    v13,
    (INT64)ViGenericDumpIrpStack,
    (INT64)ViGenericVerifyNewRequest,
    (INT64)ViGenericVerifyIrpStackDownward,
    (INT64)ViGenericVerifyIrpStackUpward,
    0i64,
    0i64,
    (INT64)ViGenericIsValidIrpStatus,
    (INT64)ViGenericIsNewRequest,
    (INT64)ViGenericVerifyNewIrp,
    (INT64)ViGenericVerifyNewRequest,
    0i64,
    (INT64)ViGenericBuildIrpLogEntry);
  VfHalVerifierInitialize();
  ViIrpLogDatabaseLock = 0i64;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x18ui64, 1682531926i64);
  ViIrpLogDatabase = (__int64)PoolWithTag;
  if( PoolWithTag )
  {
    *(_DWORD *)PoolWithTag = 0;
    v15 = PoolWithTag + 1;
    v15[1] = v15;
    *v15 = v15;
  }
  ViDdiInitialized = 1;
  v7 = VfAvlInitializeTree(&ViRemLockAvl, 0x20ui64, 0x88ui64, ViRemLockDelayFreeAvlNode, a5a, a6a) < 0;
  v16 = &ViRemLockInitialized;
  if( v7 )
    v16 = &ViRemLockAllocationFailures;
  _InterlockedExchange(v16, 1);
  v7 = VfAvlInitializeTree(&ViDevObjAvl, 0x150ui64, 0x18ui64, ViRemLockDelayFreeAvlNode, a5b, a6b) < 0;
  v17 = &ViDevObjInitialized;
  if( v7 )
    v17 = &ViDevObjAllocationFailures;
  _InterlockedExchange(v17, 1);
  LOWORD(v29) = 16;
  ((void(__fastcall *)(_NPAGED_LOOKASIDE_LIST *, _QWORD, VOID(__stdcall *)(VOID *), __int64, __int64, int, int, int, VOID(__stdcall *)(_NPAGED_LOOKASIDE_LIST *, VOID **, POOL_TYPE, UINT64, UINT64, VOID *, VOID *, INT64, UINT64, INT64, INT64, INT64)))pXdvExInitializeNPagedLookasideList)(
    &ViIoCallbackStateLookaside,
    0i64,
    VfUtilFreePoolCheckIRQL,
    512i64,
    8i64,
    1330202198,
    v29,
    VfInitializedWithoutReboot,
    ExInitializeNPagedLookasideListInternal);
  _InterlockedExchange(&ViIoCallbacksInitialized, 1);
  VfCtxInit(v19, v18);
  VfDeadlockInitialize(v4, v3);
  VfSettingsApplyMiscellaneousChecks(v5);
  IovUtilVerifierEnabled = 1;
  if( (MmVerifierData & 0x10) != 0 )
    *(&stru_140CF2E80 + 7336) = 1;
  ViVerifierEnabled = 1;
}

Referenced by:

VfInitSystemNoRebootNeeded