HvlConfigureIdleStates

NTSTATUS __stdcall HvlConfigureIdleStates(UINT64 LpIndex, _HV_X64_PPM_IDLE_STATE_CONFIG_PROPERTY *IdleStateConfig){
  char *v2; 
  __int64 v3; 
  __int128 v4; 
  __int128 v5; 
  __int128 v6; 
  __int128 v7; 
  __int128 v8; 
  __int128 v9; 
  __int128 v10; 
  __int128 v12; 
  char v13; 

  *((_QWORD *)&v12 + 1) = (unsigned int)LpIndex;
  *(_QWORD *)&v12 = 0i64;
  v2 = &v13;
  v3 = 3i64;
  do
  {
    v4 = *(_OWORD *)&IdleStateConfig->States[0].Type;
    *(_OWORD *)v2 = *(_OWORD *)&IdleStateConfig->StateCount;
    v5 = *(_OWORD *)&IdleStateConfig->States[1].Config.AsUINT64;
    *((_OWORD *)v2 + 1) = v4;
    v6 = *(_OWORD *)&IdleStateConfig->States[1].PowerConsumption;
    *((_OWORD *)v2 + 2) = v5;
    v7 = *(_OWORD *)&IdleStateConfig->States[2].Type;
    *((_OWORD *)v2 + 3) = v6;
    v8 = *(_OWORD *)&IdleStateConfig->States[3].Config.AsUINT64;
    *((_OWORD *)v2 + 4) = v7;
    v9 = *(_OWORD *)&IdleStateConfig->States[3].PowerConsumption;
    *((_OWORD *)v2 + 5) = v8;
    v10 = *(_OWORD *)&IdleStateConfig->States[4].Type;
    IdleStateConfig = (_HV_X64_PPM_IDLE_STATE_CONFIG_PROPERTY *)((char *)IdleStateConfig + 128);
    *((_OWORD *)v2 + 6) = v9;
    v2 += 128;
    *((_OWORD *)v2 - 1) = v10;
    --v3;
  }
  while( v3 );
  *(_QWORD *)v2 = *(_QWORD *)&IdleStateConfig->StateCount;
  return HvlpSetPowerProperty(&v12);
}

Referenced by:

No references.