IoDiskIoAttributionQuery

__int64 __fastcall IoDiskIoAttributionQuery(__int64 a1, _OWORD *a2, _OWORD *a3){
  __int128 v6; 
  __int128 v7; 
  __int128 v8; 
  __int64 result; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  _BYTE v11[24]; 
  UINT64 QpcTimeStamp[2]; 
  *(_DWORD *)v11 = 1;
  memset(&v11[4], 0, 20);
  *(_DWORD *)&v11[4] = _mm_cvtsi128_si32((__m128i)0i64) | 0x200;
  memset(&LockHandle, 0, sizeof(LockHandle));
  QpcTimeStamp[0] = KeQueryUnbiasedInterruptTimePrecise(QpcTimeStamp);
  KeAcquireInStackQueuedSpinLock((UINT64 *)(a1 + 40), &LockHandle);
  IopRecordIoAttribution((UINT64 *)a1, (INT64)v11, 3);
  v6 = *(_OWORD *)(a1 + 104);
  *a2 = *(_OWORD *)(a1 + 88);
  v7 = *(_OWORD *)(a1 + 128);
  a2[1] = v6;
  v8 = *(_OWORD *)(a1 + 144);
  *a3 = v7;
  a3[1] = v8;
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(LockHandle.OldIrql);
  return result;
}

Referenced by:

IoGetIoRateControl
IopIoRateStartRateControl
PspQueryJobIoAttribution