PpmGetIdleConstrainedMask

INT64 __fastcall PpmGetIdleConstrainedMask(_KAFFINITY_EX *IdleConstrainedMask){
  unsigned __int8 v2; 
  UINT8 *v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  *(_QWORD *)&IdleConstrainedMask->Count = 1310721i64;
  v2 = 0;
  memset((INT64)IdleConstrainedMask->Bitmap, 0i64);
  if( KeNumberNodes )
  {
    v3 = &KeNodeBlock;
    v4 = (unsigned __int16)KeNumberNodes;
    do
    {
      v5 = *(_QWORD *)v3;
      v6 = *(unsigned __int16 *)(*(_QWORD *)v3 + 144i64);
      v7 = *(_QWORD *)(*(_QWORD *)v3 + 72i64);
      if( IdleConstrainedMask->Count <= (unsigned __int16)v6 )
        IdleConstrainedMask->Count = v6 + 1;
      IdleConstrainedMask->Bitmap[v6] |= v7;
      if( *(_QWORD *)(v5 + 72) )
        v2 = 1;
      v3 += 8;
      --v4;
    }
    while( v4 );
  }
  return v2;
}

Referenced by:

PoExecuteIdleCheck
PpmEstimateIdleDuration
PpmIdlePrepare