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; 
  PVOID *v10; 
  PVOID *v11; 
  PVOID *v12; 
  PVOID *v13; 
  _DWORD *PoolWithTag; 
  _QWORD *v15; 
  volatile __int32 *v16; 
  volatile __int32 *v17; 
  UINT64 v18; 
  INT64 v19; 
  int v20; 
  int v21; 
  __int64 v22; 
  UINT64(__stdcall *v23)(_IO_STACK_LOCATION *, INT64); 
  v3 = VerifyKernel;
  v4 = VerifyAllDrivers;
  v5 = MmFlags;
  if( (MmVerifierData & 0x400000) == 0 || (MmVerifierData & 0x10) != 0 || (*(_BYTE *)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, 96i64, 0, ViRemLockDelayFreeAvlNode) < 0;
  v8 = &ViLookasideInitialized;
  if( v7 )
    v8 = &ViLookasideAllocationFailures;
  _InterlockedExchange(v8, 1);
  pXdvExInitializeNPagedLookasideList(
    (int)ViSessionDataLookaside,
    0,
    (int)VfUtilFreePoolDispatchLevel,
    512,
    2600i64,
    1936749129,
    16,
    VfInitializedWithoutReboot,
    (__int64)ExInitializeNPagedLookasideListInternal);
  _InterlockedExchange(&ViSessionDataInitialized, 1);
  LOWORD(v20) = 16;
  pXdvExInitializeNPagedLookasideList(
    (int)ViPacketLookaside,
    0,
    (int)VfUtilFreePoolCheckIRQL,
    512,
    256i64,
    1953526345,
    v20,
    VfInitializedWithoutReboot,
    (__int64)ExInitializeNPagedLookasideListInternal);
  v7 = VfAvlInitializeTree(&ViResourceAvl, 104i64, 0, ViRemLockDelayFreeAvlNode) < 0;
  v9 = &ViResourceInitialized;
  if( v7 )
    v9 = &ViResourceNotTracked;
  _InterlockedExchange(v9, 1);
  LOWORD(v21) = 16;
  pXdvExInitializeNPagedLookasideList(
    (int)ViIrpCallDriverDataList,
    0,
    (int)VfUtilFreePoolCheckIRQL,
    512,
    192i64,
    1131442761,
    v21,
    VfInitializedWithoutReboot,
    (__int64)ExInitializeNPagedLookasideListInternal);
  memset((INT64)ViMajorVerifierRoutines, 0i64);
  LOBYTE(v10) = 27;
  VfMajorRegisterHandlers(v10, (UINT64)VfPnpDumpIrpStack);
  LOBYTE(v11) = 22;
  VfMajorRegisterHandlers(v11, (UINT64)VfPowerDumpIrpStack);
  LOBYTE(v12) = 23;
  VfMajorRegisterHandlers(v12, (UINT64)VfWmiDumpIrpStack);
  LOBYTE(v13) = -1;
  v23 = ViGenericIsValidIrpStatus;
  v22 = 0i64;
  VfMajorRegisterHandlers(v13, (UINT64)ViGenericDumpIrpStack);
  VfHalVerifierInitialize();
  ViIrpLogDatabaseLock = 0i64;
  PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, 0x18ui64, 0x64496656ui64);
  ViIrpLogDatabase = (__int64)PoolWithTag;
  if( PoolWithTag )
  {
    *PoolWithTag = 0;
    v15 = PoolWithTag + 2;
    v15[1] = v15;
    *v15 = v15;
  }
  ViDdiInitialized = 1;
  v7 = VfAvlInitializeTree(&ViRemLockAvl, 32i64, 136, ViRemLockDelayFreeAvlNode) < 0;
  v16 = &ViRemLockInitialized;
  if( v7 )
    v16 = &ViRemLockAllocationFailures;
  _InterlockedExchange(v16, 1);
  v7 = VfAvlInitializeTree(&ViDevObjAvl, 336i64, 24, ViRemLockDelayFreeAvlNode) < 0;
  v17 = &ViDevObjInitialized;
  if( v7 )
    v17 = &ViDevObjAllocationFailures;
  _InterlockedExchange(v17, 1);
  LODWORD(v23) = VfInitializedWithoutReboot;
  LOWORD(v22) = 16;
  ((void(__fastcall *)(__int64 *, _QWORD, VOID(__stdcall *)(PVOID), __int64, __int64, __int64, __int64, UINT64(__stdcall *)(_IO_STACK_LOCATION *, INT64), __int64(__fastcall *)(__int64, PVOID(__stdcall *)(POOL_TYPE, SIZE_T, ULONG), void(__stdcall *)(PVOID, ULONG), int, int, int, __int16, int), VOID(__fastcall *)(INT64, UINT64, INT64, INT64, const VOID *), __int64(__fastcall *)(), _QWORD, __int64(__fastcall *)(__int64, __int64, __int64, __int64)))pXdvExInitializeNPagedLookasideList)(
    ViIoCallbackStateLookaside,
    0i64,
    VfUtilFreePoolCheckIRQL,
    512i64,
    8i64,
    1330202198i64,
    v22,
    v23,
    ExInitializeNPagedLookasideListInternal,
    ViGenericVerifyNewIrp,
    ViGenericVerifyNewRequest,
    0i64,
    ViGenericBuildIrpLogEntry);
  _InterlockedExchange(&ViIoCallbacksInitialized, 1);
  VfCtxInit(v19, v18);
  VfDeadlockInitialize(v4, v3);
  VfSettingsApplyMiscellaneousChecks(v5);
  IovUtilVerifierEnabled = 1;
  if( (MmVerifierData & 0x10) != 0 )
    PpvUtilVerifierEnabled = 1;
  ViVerifierEnabled = 1;
}

Referenced by:

VfInitBootDriversLoaded
VfInitSystemNoRebootNeeded