Hallo Thorsten,
das ist so nicht vorgesehen, da dann zwei Interfaces angegeben werden müssen.
Der USB_Smart kann da nicht geändert werden aber der große USB schon, der aber nicht im Boot funktioniert.
Evtl langt es ja wenn du in der Win App dem User die Möglichkeit gibst auf Update zu klicken und dein Xmega meldet sich dann als MSD. Der kann dann gemütlich das Update draufschieben oder doe Logfiles sicher ...
Dann ins Boot springen und das Update durchführen.
Mann könnte den großen USB auch anpassen, so das man x Interfaces definieren kann, da habe ich aber keine Zeit zu und das ist alles nicht so einfach im AVRco, da er Const Record+ Array nur sehr rudimentär unterstützt.
Und z.Z werden ja nur Vendorrequest an den User weitergeleitet aber du brachst für die SCSI Commands die Classrequest durchgereicht, was nicht im implementiert  ist.
Um deinen eigenen USB  Setup Descriptor anzulegen musst du VOR dem laden des USB Treibers  {$define  USBDescFile} anlegen  im "USBDescFile" File deine Sachen ausfüllen:
Code
{$IFDEF USBDescFile}
  {$I USBDescFile }   // load User Interface Descriptor
{$ELSE}
Const
  FS_DEVICE_DESCRIPTOR    : TDevice_desc    = (
  18,                                // Descriptor length (18 bytes)
  $01,                               // Descriptor type (Device)
  $01, $01,                          // Complies to USB Spec. Release (1.01)
  $0,                                // Class code (0)
  $0,                                // Subclass code (0)
  $00,                               // Protocol (No specific protocol)
  64,                                // Max. packet size for EP0 (64 bytes) Valid Sizes are 8, 16, 32, 64
  Lo(USBvid), Hi(USBvid),            // Vendor
  Lo(USBpid), Hi(USBpid),            // Product
  Lo(USBprodRel), Hi(USBprodRel),    // Device release number (1.00)
  $01,                               // Mfr string descriptor index (None)
  $02,                               // Product string descriptor index (None)
  $03,                               // Serial Number string descriptor index (None)
  $01                                // Number of possible configurations (1)
  );
  FS_CONFIG_DESCRIPTOR    : TConfigAll =
  (SizeOf(TConfiguration_desc),       // Length of the configuration Descriptor
  2,                                  // Configuration Descriptor
  SizeOf(TConfigAll),                 // Total length of the configurations,interface and class/endpoint
  0,
  1,                                  // Num of interface supported
  1,                                  // Configuration Value
  0,                                  // Index of string descriptor
  $80,                                // Configurations Attributes
  $FA,                                // Maximun Power (500mA)
  SizeOf(TInterface_Desc),            // Length of standard interface descriptor
  4,                                  // Standard Interface Type
  0,                                  // Num of Interface
  0,                                  // Alternate Setting Selector
  USBendPoints,                       // Num of Endpoints    !!!!!!!!!!!!!!!!!!!!!!
  $0,                                 // Interface Class
  $0,                                 // Interface Sub Class
  0,                                  // Interface Protocol
  0,                                  // Index of interface string desriptor
  //##################  USB Endpoints #########################################
  SizeOf(TEndpoint_Desc),             // Length of Standard Endpoint Descriptor
  5,                                  // Standard Endpoint Type
  $81,                                // Endpoint Address
  2,                                  // Endpoint Attributes
  64, 0,                              // Endpoint Max Packet Size
  0,                                  // Interval for Polling Endpoint for data transfer
  SizeOf(TEndpoint_Desc),             // Length of Standard Endpoint Descriptor
  5,                                  // Standard Endpoint Type
  1,                                  // Endpoint Address
  2,                                  // Endpoint Attributes
  64, 0,                              // Endpoint Max Packet Size
  0                                   // Interval for Polling Endpoint for data transfer
  );
{$ENDIF}
{$Validate_off}
miparo