KeQueryActiveProcessorCount

UINT64 __stdcall KeQueryActiveProcessorCount(UINT64 *ActiveProcessors){
  unsigned __int64 v1; 
  __int64 v2; 
  if( ActiveProcessors )
  {
    v1 = KeActiveProcessors.Bitmap[0];
    *ActiveProcessors = KeActiveProcessors.Bitmap[0];
    return(0x101010101010101i64
          * ((((v1 - ((v1 >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
            + (((v1 - ((v1 >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)
            + ((((v1 - ((v1 >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
              + (((v1 - ((v1 >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)) >> 4)) & 0xF0F0F0F0F0F0F0Fi64)) >> 56;
  }
  else
  {
    LODWORD(v2) = KeQueryActiveProcessorCountEx(0);
  }
  return(unsigned int)v2;
}

Referenced by:

No references.