HalpInterruptGetIrtInfo
NTSTATUS __stdcall HalpInterruptGetIrtInfo(INT64 *a1){
int v1;
NTSTATUS MaximumProcessorCount;
INT32 v5[4];
v1 = *(&CmpDummyThreadEvent + 1481);
if( !*(&CmpDummyThreadEvent + 1481) )
v1 = 1;
*(_DWORD *)a1 = v1;
*(_OWORD *)v5 = 0i64;
MaximumProcessorCount = HalQueryMaximumProcessorCount();
*((_DWORD *)a1 + 2) = 0;
*((_DWORD *)a1 + 1) = 150 * MaximumProcessorCount;
if( HalpIsMicrosoftCompatibleHvLoaded() )
{
HalpHvCpuid(0x40000000i64, v5);
if( v5[0] >= 0x40000006u )
{
HalpHvCpuid(1073741830i64, v5);
if( (v5[0] & 0x20) != 0 )
{
HalpHvCpuid(1073741829i64, v5);
if( v5[2] < *((_DWORD *)a1 + 1)
/ (unsigned int)HalQueryMaximumProcessorCount()
* (unsigned int)HalpInterruptProcessorsStarted )
*((_DWORD *)a1 + 1) = v5[2] / (unsigned int)HalpInterruptProcessorsStarted * HalQueryMaximumProcessorCount();
*((_DWORD *)a1 + 2) = v5[2]
- *((_DWORD *)a1 + 1)
/ (unsigned int)HalQueryMaximumProcessorCount()
* (_DWORD)HalpInterruptProcessorsStarted;
}
}
}
return 0;
}Referenced by:
HaliQuerySystemInformation
HalpQueryAcpiResourceRequirements