HalpInterruptRegisterDynamicProcessor
NTSTATUS __stdcall HalpInterruptRegisterDynamicProcessor(){
unsigned int v0;
int v1;
int v3;
unsigned int v4;
char *i;
if( HalpInterruptModel() != 1 )
return -1073741823;
if( !*(&stru_140CF2E80 + 6616)
&& !*(&CmpDummyThreadEvent + 7160)
&& (unsigned int)qword_140C50640 > HalpInterruptLogicalFlatLimit )
{
return -1073741800;
}
if( HalpInterruptPackagesStarted > v0 )
return -1073741823;
if( HalpInterruptPackagesStarted >= v0 )
{
v3 = 0;
v4 = ~(KeGetCurrentPrcb()->LogicalProcessorsPerCore * KeGetCurrentPrcb()->CoresPerPhysicalProcessor - 1);
if( (_DWORD)qword_140C50640 )
{
for( i = (char *)HalpInterruptProcessorState + 8; !i[5] || (*(_DWORD *)i & v4) != (v1 & v4); i += 64 )
{
if( ++v3 >= (unsigned int)qword_140C50640 )
return -1073741823;
}
return 0;
}
return -1073741823;
}
return 0;
}Referenced by:
HalRegisterDynamicProcessor