I've had a mio10 for a couple of months... it is great for simple sequencing and midi controller use, etc. It falls short when handling large volumes of sysex data or when trying to use a hardware synthesizer with a software editor and DAW at the same time.
Large volume sysex dumps:
The Microsoft midi drivers choke on large volumes of sysex data. I spent many hours trying to get a Wavestation SR performance bank (which consists of a bank of performances, bank of patches, bank of wave sequences) to load, but without success. Several different programs were used, including Midi-Ox with many different buffer settings, but it was not successful. Since then I purchased a used Edirol UM-880 midi interface and the patch banks loaded into the Wavestation first try, and have loaded successfully every try since. The UM-880 uses custom midi drivers that are written to handle large sysex dumps, and anything else you might need to do.
Another significant shortcoming of the Microsoft midi drivers is the inability for two applications to access a midi port at the same time. This is especially frustrating when you want to use your DAW and a software patch editor at the same time. You can overcome this by using the free loopMIDI virtual cable utility as follows:
Synth midi out ---> Synth editor software ---> loopMIDI virtual cable ---> DAW ---> Synth midi in
I name the loopMidi virtual cable the same as the synth with the word "Virtual" after, so for the Roland JD-990 it would be "JD-990 Virtual" and is setup like this:
JD-990 synth editor: midi in - mio10 port, midi out - JD-990 Virtual
Cubase DAW: midi in - JD-990 Virtual (or all midi), midi out - mio10 midi out port
In Cubase you need a midi track that takes the JD-990 Virtual input from the editor and routes it to the mio10 midi out port that the synth is connected to. This track must be active (selected) for it to send data from the software editor to the synth. In Cubase, Device Manager must have the mio10 midi in port set as inactive so that it does not lock the port. In the synth editor it must use the virtual cable for midi out so that it does not lock the mio10 midi out port.
One nice thing about this setup is that it allows you to send midi clock to the synth since Cubase has access to the mio10 midi out port.
Hopefully, this will help anyone trying to get around the multi-client issue. Unfortunately, there is no getting around the large bulk sysex issue. You need to buy an interface that has better drivers than what the Microsoft midi drivers provide.