HalpInitializeSecondaryInterruptServices
INT64 __fastcall HalpInitializeSecondaryInterruptServices(){
INT64 v0;
int v1;
INT64 v2;
INT64 v3;
UINT64 GsivValue;
LODWORD(GsivValue) = 0;
qword_140C49948 = (__int64)&SecondaryIcList;
SecondaryIcList = (__int64)&SecondaryIcList;
SecondaryIcListSpinLock = 0i64;
if( HalpCheckSecondaryInterruptSupported() )
{
LODWORD(SecondarySignalDpc) = 275;
qword_140C49968 = (__int64)&SecondarySignalList;
SecondarySignalList = (__int64)&SecondarySignalList;
qword_140C49918 = (__int64)HalpProcessSecondarySignalList;
qword_140C49920 = 0i64;
qword_140C49938 = 0i64;
qword_140C49910 = 0i64;
SecondarySignalListLock = 0i64;
SecondarySignalDpcRunning = 0;
v1 = HalpQueryMaximumGsiv(&GsivValue);
if( v1 >= 0 )
{
if( (int)GsivValue + 513 < (unsigned int)GsivValue )
{
return(unsigned int)-1073741823;
}
else
{
SecondaryGsivRangeSize = 512;
v3 = 1024i64;
SecondaryGsivAssignedCount = 0;
if( (unsigned int)(GsivValue + 1) > 0x400 )
v3 = (unsigned int)(GsivValue + 1);
SecondaryGsivRangeStart = v3;
HalpRecordSecondaryGsivRange(v3, v0, v2);
SecondaryIcServicesEnabled = 1;
}
}
}
else
{
return(unsigned int)-1073741637;
}
return(unsigned int)v1;
}Referenced by:
HalpPostPnpInitialize