Thanks for the ideas.
I'm not sure MSD would work for me - I also want to attach genuine MSD devices. Something identifying my device as an MSD would be unhelpful - it isn't going to respond properly. Even having my CE host sort the difference between 'proper' and 'lying' devices that claim to be MSDs seems inelegant from a design point-of-view.
I am trying not to start down the road of developing a full-blown driver - and by implication ad device class with client side support - if I can avoid it. That's why I was trying to leverage some standard support if I can.
The bigger picture is that I'm trying to do an RPC mechanism over USB - conceptually something like what CORBA, OPEN-ONC/RPC or SOAP does over ethernet. This will mostly be used to configure custom communication channels, and send/receive packet data through them. The sort of channels I'm dealing with are LONworks, MODbus, 6LOPAN and DALI - if these mean anything to you. Clearly some sort of bulk transfer would be best. Fragmenting the calls/responses/events through HID looked attactive, but without the outgoing INTERRUPT transfer it isn't that clear cut. Having response/event data on the incoming INTERRUPT is OK for both desktop and CE. As far as I can tell HID on CE would need to make the calls as control transfers (set report). This looks messy for calls with enough parameter data to be split over several transfers - might not even be reliable.
Any suggestions on how to do RPC over USB gratefully received.
Thanks