Share via

USB MIDI SysEx Messages Split After Windows Updates KB5077181/KB5074105

Thuvia 0 Reputation points
2026-03-19T06:50:04.9+00:00

Problem Description

Our USB MIDI device communicates with our software via MIDI System Exclusive (SysEx) messages. After installing Windows updates KB5077181 and KB5074105, we encountered a critical issue.

Device Configuration

  • Our device's endpoint maximum packet size (wMaxPacketSize) is set to 512 bytes during enumeration
  • Our host application ensures each packet does not exceed 512 bytes
  • Each packet contains a complete SysEx frame with header (0xF0) and footer (0xF7)
  • On the device side, we assume each USB packet received is complete
  • This logic has worked reliably for several years on both Windows and macOS

Issue After Windows Updates

After installing KB5077181 and KB5074105, single packets sent from our host application may be split into multiple smaller packets, causing our device to fail detecting complete frame headers and footers, triggering error handling.

Example: A 192-byte packet sent via midiOutLongMsg may be split into two packets (e.g., 144 bytes + 48bytes). While these packets form a complete message when combined, our device firmware does not reassemble them and treats them as invalid packets. (This can be verified using BusHound)

Workarounds Attempted

Attempt Result
Reduce packet size to 32 bytes (minimum our protocol accepts) Still split (e.g., 20 + 12 bytes)
Add 50ms delay between packets Issue persists
Run application in compatibility mode Issue persists
Uninstall KB5077181/KB5074105 Works normally (no splitting)

Constraints

  • We cannot require end users to uninstall Windows updates
  • Existing deployed devices cannot receive firmware updates

Questions

  1. Is there a new API that ensures MIDI SysEx messages (within USB endpoint max packet size) are not split?
  2. Are there any configurations that prevent packet splitting while still using midiOutLongMsg?
  3. Are there any alternative solutions you would recommend?

Environment

  • OS: Windows (after KB5077181/KB5074105)
  • API: midiOutLongMsg (Windows multimedia API)
  • Device: USB MIDI Class Compliant Device
  • Endpoint Max Packet Size: 512 bytes
Windows Insider program | Windows Insider preview | Devices and drivers
0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.