HalpInterruptInitDiscard

NTSTATUS __stdcall HalpInterruptInitDiscard(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  NTSTATUS result; 
  INT64 v3[2]; 
  HalpInterruptLock = 0i64;
  HalpDefaultPcIoSpace = HalpAddressUsageList;
  HalpAddressUsageList = (ULONG_PTR)&HalpDefaultPcIoSpace;
  *(_OWORD *)v3 = 0i64;
  if( *(_BYTE *)HalpHvCpuManager )
  {
    HviGetHardwareFeatures((INT64)v3);
    if( (v3[0] & 0x4000) != 0 )
      HalpInterruptPhysicalModeOnly = 1;
  }
  result = HalpInitializeInterrupts(LoaderBlock);
  if( result >= 0 )
  {
    off_140C00770[0] = (__int64(__fastcall *)())HalpMaskInterrupt;
    off_140C00778[0] = (__int64(__fastcall *)())HalpUnmaskInterrupt;
    off_140C00810[0] = (__int64(__fastcall *)())HalpInterruptRequestInterrupt;
    off_140C00818[0] = (__int64(__fastcall *)())HalpInterruptEnumerateUnmaskedInterrupts;
    off_140C00AD8[0] = (__int64(__fastcall *)())HaliGetInterruptTranslator;
    off_140C00768[0] = (__int64(__fastcall *)())HalpSecondaryInterruptQueryPrimaryInformation;
    off_140C00780[0] = (__int64(__fastcall *)())HalpIsInterruptTypeSecondary;
    off_140C00788[0] = (__int64(__fastcall *)())HalpAllocateGsivForSecondaryInterrupt;
    off_140C008E0[0] = (__int64(__fastcall *)())HalpInterruptVectorDataToGsiv;
    off_140C008E8[0] = (__int64(__fastcall *)())HalpInterruptGetHighestPriorityInterrupt;
    return 0;
  }
  return result;
}

Referenced by:

No references.