Sorry for kickin-in so late! I've just found this discussion that somehow I missed until now.
Windows lacks two features that both Linux and macOS natively include:
- Routing between MIDI ports. Sema asked about connecting two hardware MIDI devices together through the computer. It is possible in Linux and macOS, but Windows does not provide native tools and features for it, as Clemens correctly answered. For instance, you plug your MIDI Controller to an USB port in your computer, and want to produce sound with the native Windows synthesizer, the "Microsoft GS Wavetable Synth", or the better alternative "Virtual MIDI Synth". Those are soft-synths, but they are built as device drivers (with good reason, because the next limitation), so they appear as hardware MIDI ports to the operating system. The same would happen if the synth was a SoundBlaster Audigy card, or the old and beloved Yamaha XG.
- Virtual MIDI ports for software applications. In addition to the former limitation, this means that you can't connect two MIDI applications together in Windows. For instance: play music in VMPK and record its events in any DAW. This is trivially solved in Linux and macOS, because VMPK leverages the virtual MIDI ports available in Linux and macOS, but in Windows you will need something like the "loopMIDI" virtual cable by Tobias Erichsen to connect both applications.
I've written a blog post some time ago about the second problem:
connecting the FluidSynth synthesizer to other things in Windows, macOS and Linux.