IoRecordIoAttribution

__int64 __fastcall IoRecordIoAttribution(unsigned __int64 a1, _DWORD *a2){
  void *v3; 
  void *v4; 
  UINT64 *v5; 
  int v6; 
  int v7; 
  if( *a2 == 1 )
  {
    LODWORD(v3) = IopFindDiskIoAttribution((PVOID)a1);
    v4 = v3;
    if( v3 )
    {
      v5 = (UINT64 *)v3;
      while( 1 )
      {
        v6 = a2[1];
        if( (v6 & 0x800) == 0 || (v6 & 0x200) != 0 || v5[22] )
        {
          v7 = IopRecordIoAttribution(v5, (INT64)a2, 0);
          if( v7 < 0 )
            break;
        }
        v5 = (UINT64 *)v5[22];
        if( !v5 )
        {
          v7 = 0;
          break;
        }
      }
      IoDiskIoAttributionDereference(v4);
    }
    else
    {
      return(unsigned int)-1073741816;
    }
  }
  else
  {
    return(unsigned int)-1073741735;
  }
  return(unsigned int)v7;
}

Referenced by:

No references.