KiUpdateNumberProcessorsIpi

UINT64 __stdcall KiUpdateNumberProcessorsIpi(UINT64 Context){
  UINT64 v2; 

  v2 = *(unsigned int *)Context;
  if( *(_DWORD *)(Context + 4) == KeGetPcr()->Prcb.Number )
  {
    while( *(_DWORD *)(Context + 8) )
      _mm_pause();
    KiUpdateProcessorCount(v2, (unsigned int)KiProcessorIndexToNumberMappingTable[v2] >> 6);
    *(_DWORD *)(Context + 16) = 1;
    while( *(_DWORD *)(Context + 12) )
      _mm_pause();
  }
  else
  {
    _InterlockedDecrement((volatile signed __int32 *)(Context + 8));
    while( !*(_DWORD *)(Context + 16) )
      _mm_pause();
    _InterlockedDecrement((volatile signed __int32 *)(Context + 12));
  }
  return 0i64;
}

Referenced by:

No references.