KiIpiSendRequestEx
INT64 __fastcall KiIpiSendRequestEx(CHAR a1){
int v1;
unsigned __int16 *v2;
_OWORD *v3;
_OWORD *v4;
unsigned __int16 *v5;
int v6;
__int64 v7;
INT64 result;
int i;
__int64 v10;
__int64(__fastcall *v11)(__int64);
__int64 v12;
v4 = v3;
v5 = v2;
v6 = v1;
v7 = a1;
if( v1 )
{
if( (unsigned int)KeNumberProcessors_0 <= 1 )
{
LABEL_3:
result = (INT64)v11;
if( v11 )
return v11(v12);
return result;
}
}
else if( !(unsigned int)KiAffinityContainsProcessorsOtherThanSelf(a1, v2) )
{
goto LABEL_3;
}
KiIpiSendRequest(v7, v6, v5, v4, v10);
if( v11 )
v11(v12);
result = *(unsigned int *)(v7 + 11648);
for( i = 0; (_DWORD)result; result = *(unsigned int *)(v7 + 11648) )
{
++i;
_mm_pause();
}
return result;
}Referenced by:
KeInvalidateAllCaches
KeInvalidateRangeAllCaches
KxFlushEntireTb
KxFlushNonGlobalTb