HalRequestIpiSpecifyVector
VOID __fastcall HalRequestIpiSpecifyVector(_IPI_TYPE IpiType, _KAFFINITY_EX *Affinity, UINT64 Vector){
__int32 v3;
__int128 v4;
__int64 v5;
v5 = 0i64;
v4 = 0i64;
if( IpiType )
{
if( (unsigned int)(IpiType - 1) <= 1 )
{
v3 = IpiType - 1;
if( v3 )
{
if( v3 == 1 )
LODWORD(v4) = 3;
LABEL_6:
HalpInterruptSendIpi(&v4, Vector);
return;
}
LODWORD(v4) = 4;
HalpInterruptSendIpi(&v4, Vector);
}
}
else if( Affinity && Affinity->Count )
{
while( !Affinity->Bitmap[(unsigned __int16)IpiType] )
{
LOWORD(IpiType) = IpiType + 1;
if( (unsigned __int16)IpiType >= Affinity->Count )
return;
}
LODWORD(v4) = 2;
*((_QWORD *)&v4 + 1) = Affinity;
goto LABEL_6;
}
}Referenced by:
HalRequestClockInterrupt
HalRequestIpi
HalpInterruptResetAllProcessors
KiIntRedirectQueueRequestOnProcessor
KiIpiSendRequest