IoStartIoRateControl

NTSTATUS __stdcall IoStartIoRateControl(
        _JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 *ControlInfo,
        PVOID VolumeHandle,
        PVOID DiskIoAttribution,
        PVOID *RateControl,
        UINT64 *VolumeKey){
  unsigned int v5; 
  UINT64 v8; 
  unsigned __int64 v9; 
  UINT64 RateAmounts[16]; 

  v5 = ControlInfo[9];
  RateAmounts[0] = *(_QWORD *)ControlInfo;
  RateAmounts[3] = *((_QWORD *)ControlInfo + 2);
  RateAmounts[6] = *((_QWORD *)ControlInfo + 6);
  RateAmounts[9] = *((_QWORD *)ControlInfo + 12);
  RateAmounts[12] = *((_QWORD *)ControlInfo + 15);
  RateAmounts[1] = *((_QWORD *)ControlInfo + 1);
  RateAmounts[4] = *((_QWORD *)ControlInfo + 7);
  RateAmounts[7] = *((_QWORD *)ControlInfo + 8);
  RateAmounts[10] = *((_QWORD *)ControlInfo + 13);
  RateAmounts[13] = *((_QWORD *)ControlInfo + 16);
  RateAmounts[2] = *((_QWORD *)ControlInfo + 9);
  RateAmounts[5] = *((_QWORD *)ControlInfo + 10);
  RateAmounts[8] = *((_QWORD *)ControlInfo + 11);
  RateAmounts[11] = *((_QWORD *)ControlInfo + 14);
  RateAmounts[14] = *((_QWORD *)ControlInfo + 17);
  v8 = (v5 >> 1) & 1 | 2;
  if( (v5 & 4) == 0 )
    v8 = (v5 >> 1) & 1;
  v9 = (unsigned int)v8 | 4;
  if( (v5 & 8) == 0 )
    v9 = (unsigned int)v8;
  return IopIoRateStartRateControl(
           RateAmounts,
           v8,
           (VOID *)v9,
           VolumeHandle,
           (VOID **)DiskIoAttribution,
           (UINT64 *)RateControl);
}

Referenced by:

PspIoRateEntryActivate