IopSetDiskIoAttributionExtension

NTSTATUS __stdcall IopSetDiskIoAttributionExtension(_IRP *Irp, UINT64 DiskIoAttributionHandle){
  __int64 v2; 
  char v3; 
  char v4; 
  __int64 v5; 
  CHAR *IrpExtension; 
  __int64 v7; 
  UINT64 v9; 
  v9 = DiskIoAttributionHandle;
  v4 = v3;
  v5 = v2;
  IrpExtension = IopAllocateIrpExtension((INT64)Irp, 6i64);
  if( !IrpExtension )
    return -1073741670;
  v7 = *(_QWORD *)(v5 + 544);
  if( (*(_DWORD *)(v7 + 2172) & 0x1000) != 0
    && *(_QWORD *)(v7 + 1296)
    && *(_QWORD *)(*(_QWORD *)(v7 + 1296) + 1352i64)
    && (v4 & 1) == 0 )
  {
    IopReferenceIoAttributionFromProcess(v7, 1, &v9);
  }
  *((_QWORD *)IrpExtension + 2) = v9;
  return 0;
}

Referenced by:

IoAsynchronousPageWrite
IoMakeAssociatedIrpPriv
IoPageReadEx
IoPropagateIrpExtensionEx
IoSetDiskIoAttributionFromThread
IoSynchronousPageWriteEx
IoUpdateIrpIoAttributionHandle
IopSetDiskIoAttributionFromProcess