HalpWheaInitDiscard

NTSTATUS __stdcall HalpWheaInitDiscard(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  void *v1; 
  void *v2; 
  void *v3; 
  __int64 v4; 
  __int64 v6[3]; 
  UINT64 PolicyLength; 
  PVOID Policy; 
  Policy = 0i64;
  PolicyLength = 0i64;
  if( HalpHvWheaEnlightenedCpuManager )
  {
    v1 = HalpHvEpCpuid;
    v2 = HalpHvEpWriteMsr;
    v3 = HalpHvEpReadMsr;
  }
  else
  {
    v1 = HalpWheaNativeCpuid;
    v2 = HalpWheaNativeWriteMsr;
    v3 = HalpWheaNativeReadMsr;
  }
  HalpWheaCpuid = (__int64)v1;
  HalpWheaReadMsr = (__int64)v3;
  HalpWheaWriteMsr = (__int64(__fastcall *)(_QWORD, _QWORD, _QWORD))v2;
  if( KeHwPolicyLocateResource(LoaderBlock, 0x66ui64, 1ui64, &Policy, &PolicyLength) >= 0 && PolicyLength >= 0x18 )
  {
    v4 = *((_QWORD *)Policy + 2);
    if( (v4 & 1) != 0 )
      HalpMcaRecoveryPolicy |= 1ui64;
    if( (v4 & 2) != 0 )
      HalpMcaRecoveryPolicy |= 2ui64;
  }
  v6[0] = HalpWheaReadMsr;
  v6[1] = (__int64)HalpWheaWriteMsr;
  PshedSetHalEnlightenments(v6);
  HalpWheaMappingMceReservation = (UINT64)HalpReserveHalPtes();
  if( !HalpWheaMappingMceReservation )
    KeBugCheckEx(0x5Cu, 0x8100ui64, 1ui64, (ULONG_PTR)"minkernel\\hals\\lib\\whea\\whea.c", 0xB3ui64);
  HalpWheaMappingNmiReservation = (__int64)HalpReserveHalPtes();
  if( !HalpWheaMappingNmiReservation )
    KeBugCheckEx(0x5Cu, 0x8100ui64, 1ui64, (ULONG_PTR)"minkernel\\hals\\lib\\whea\\whea.c", 0xBEui64);
  HalpWheaMappingReservation = (__int64)HalpReserveHalPtes();
  if( !HalpWheaMappingReservation )
    KeBugCheckEx(0x5Cu, 0x8100ui64, 1ui64, (ULONG_PTR)"minkernel\\hals\\lib\\whea\\whea.c", 0xC7ui64);
  HalpWheaMappingMceLock = 0i64;
  HalpWheaMappingNmiLock = 0i64;
  HalpWheaMappingLock = 0i64;
  off_140C006B8[0] = (__int64(__fastcall *)())HalpWheaInitProcessorGenericSection;
  WheaConfigureErrorSource(0, (__int64)&HalpMachineCheckConfiguration);
  WheaConfigureErrorSource(1, (__int64)&HalpMachineCheckConfiguration);
  WheaConfigureErrorSource(3, (__int64)&HalpNmiConfiguration);
  WheaConfigureErrorSource(5, (__int64)&HalpGenericConfiguration);
  WheaConfigureErrorSource(12, (__int64)&HalpGenericConfiguration);
  return 0;
}

Referenced by:

HalpWheaInitSystem