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.