Skip to content

[BUG]: Virtual endpoints unusable on build 26100.8875 (KB5101650) #1047

Closed

Description

@timrae

Report pre-requisites

  • I have searched this repo for existing issues to confirm this is not a duplicate
  • I agree to follow this project's Code of Conduct

Clarity and Disclosure

  • I confirm that any AI analysis included in this report is clearly called out / tagged as AI-generated with "AI Generated Content". Reports with suspected AI content may be closed if not disclosed.
  • I confirm that I will quickly follow-up to questions or requests for additional detail, otherwise the issue may be closed

Windows Version

Windows 11 Pro 25H2

Type of bug

  • Windows doesn't recognize MIDI device (doesn't show in device manager)
  • Application doesn't recognize MIDI device or ports
  • Cannot update firmware on MIDI device (specify device, app, and firmware info)
  • MIDI device is recognized, but cannot send or receive messages
  • Sent or received MIDI messages are corrupted
  • Application not working as expected
  • MIDI 1.0 ports not named as expected
  • Performance not as expected
  • Localization issue (incorrect or missing language for Windows running something other than en-US)
  • General application crash or hang
  • MIDI Service crash or hang requiring Windows reboot
  • Windows bugcheck / BSOD (please include in the areas below the device id from Windows Settings About page or a link to your crash dump uploaded to a sharing service)
  • Other or Unsure (please indicate in additional notes section below)

Location

  • Application using WinMM MIDI 1.0 (Classic API). Name provided below.
  • Application using WinRT MIDI 1.0 (Windows 10 MIDI). Name provided below.
  • Application using Windows MIDI Services SDK (MIDI 2.0). Name provided below.
  • Other app/DAW/tool. Not sure about which API or SDK it uses. Name provided below.
  • Windows MIDI Services tools like MIDI Settings, Console, etc.
  • Directly in Windows MIDI Services SDK (for Developers only, please provide repro code)
  • General Windows shell (Device Manager, Settings, Services, etc.). Name provided below.
  • Windows MIDI 2.0 Class Driver (usbmidi2-acx)
  • Windows MIDI 1.0 Class Driver (usbaudio)
  • Vendor-provided MIDI driver (please provide details below)
  • Other or Unsure (please indicate in additional notes section below)

Application Name and Version

No response

MIDI Device Name

No response

Output from the MIDI Diagnostics Tool

Note: This output is from the working configuration after rolling back KB5101650. Please let me know if you want me to reinstall the broken update and query again.

========================================================================================================================
header
========================================================================================================================

This tool is part of the Windows MIDI Services SDK and tools
Copyright 2026- Microsoft Corporation.
Information, license, and source available at https://aka.ms/midi

Microsoft Windows MIDI Services - Diagnostics Report

ver_build_source                     : GitHub Preview
ver_build_name                       : SDK Release Candidate 2
ver_build_full                       : 1.0.15-rc.2.18

========================================================================================================================
os
========================================================================================================================

os_version                           : 10.0.26200

========================================================================================================================
processor_env
========================================================================================================================

PROCESSOR_ARCHITECTURE               : AMD64
PROCESSOR_IDENTIFIER                 : Intel64 Family 6 Model 141 Stepping 1, GenuineIntel
PROCESSOR_LEVEL                      : 6
PROCESSOR_REVISION                   : 8d01

========================================================================================================================
native_system_info
========================================================================================================================

processor_architecture               : 64-bit Intel/AMD
processor_level                      : 6
processor_revision                   : 0x8d01
------------------------------------------------------------------------------------------------------------------------
running_emulated                     : Native Intel/AMD x64 on x64 PC (Not Emulated)
------------------------------------------------------------------------------------------------------------------------

timecaps_min_period                  : 1
timecaps_max_period                  : 1000000

timer_resolution_min                 : 0.500 ms
timer_resolution_max                 : 15.625 ms
timer_resolution_current             : 15.625 ms

========================================================================================================================
dev_mode
========================================================================================================================

dev_mode_enabled                     : true

========================================================================================================================
reg_drivers32
========================================================================================================================

reg_drivers32_entry                  : midi = wdmaud.drv
reg_drivers32_entry                  : MidisrvTransferComplete = 1
reg_drivers32_entry                  : midi1 = wdmaud2.drv

========================================================================================================================
enum_winrt_midi1_api_input_ports
========================================================================================================================

endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_A_DEFAULT_0_0#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_B_DEFAULT_0_0#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}
name                                 : Default App Loopback (B)

========================================================================================================================
enum_winrt_midi1_api_output_ports
========================================================================================================================

endpoint_device_id                   : \\?\SWD#MMDEVAPI#MicrosoftGSWavetableSynth#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Microsoft GS Wavetable Synth
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_A_DEFAULT_1_0#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_B_DEFAULT_1_0#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Default App Loopback (B)

========================================================================================================================
enum_winmm_midi1_api_input_ports
========================================================================================================================

endpoint_count                       : 2
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 0
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 1
name                                 : Default App Loopback (B)
------------------------------------------------------------------------------------------------------------------------
dev_caps_error_count                 : 0

========================================================================================================================
enum_winmm_midi1_api_output_ports
========================================================================================================================

endpoint_count                       : 3
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 0
name                                 : Microsoft GS Wavetable Synth
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 1
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 2
name                                 : Default App Loopback (B)
------------------------------------------------------------------------------------------------------------------------
dev_caps_error_count                 : 0

========================================================================================================================
enum_registry
========================================================================================================================

reg_current_config                   : WindowsMidiServices.midiconfig.json
reg_discovery_enabled                : true
reg_discovery_timeout_ms             : Not present
reg_use_mmcss                        : Not present
------------------------------------------------------------------------------------------------------------------------
reg_midisrv_exe                      : %systemroot%\system32\midisrv.exe
------------------------------------------------------------------------------------------------------------------------
reg_sdk_installed                    : C:\Program Files\Windows MIDI Services\Desktop App SDK Runtime\
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : (Midisrv Transport)
reg_transport_clsid                  : {2BA15E4E-5417-4A66-85B8-2B2260EFBC84}
reg_transport_dll                    : C:\Windows\System32\Midi2.MidiSrvTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : (Diagnostics Transport)
reg_transport_clsid                  : {ac9b5417-3fe0-4e62-960f-034ee4235a1a}
reg_transport_dll                    : C:\Windows\System32\Midi2.DiagnosticsTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2KSAggregateTransport
reg_transport_clsid                  : {0f273b18-e372-4d95-87ac-c31c3d22e937}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.KSAggregateTransport.dll
file_version                         : 1.0.16.1
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2KSTransport
reg_transport_clsid                  : {26FA740D-469C-4D33-BEB1-3885DE7D6DF1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.KSTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2LoopbackMidiTransport
reg_transport_clsid                  : {942BF02D-93C0-4EA8-B03E-D51156CA75E1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.LoopbackMidiTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2VirtualMidiTransport
reg_transport_clsid                  : {8feaad91-70e1-4a19-997a-377720a719c1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.VirtualMidiTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------

========================================================================================================================
sdk_runtime_status
========================================================================================================================

sdk_runtime_initialized              : true

========================================================================================================================
service_status
========================================================================================================================

available                            : true

========================================================================================================================
midi_clock
========================================================================================================================

clock_frequency                      : 10000000
clock_now                            : 25961014781

========================================================================================================================
enum_transports
========================================================================================================================

transport_id                         : {8FEAAD91-70E1-4A19-997A-377720A719C1}
name                                 : Virtual Midi
transport_code                       : APP
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides virtual device (app-to-app MIDI) support for MIDI 2.0
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {AC9B5417-3FE0-4E62-960F-034EE4235A1A}
name                                 : Diagnostics Endpoints
transport_code                       : DIAG
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides the built-in diagnostics loopback and diagnostics ping endpoints for MIDI 2.0
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {942BF02D-93C0-4EA8-B03E-D51156CA75E1}
name                                 : Loopback MIDI
transport_code                       : LOOP
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides simple loopback app-to-app MIDI support
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {26FA740D-469C-4D33-BEB1-3885DE7D6DF1}
name                                 : Kernel Streaming MIDI for UMP Drivers
transport_code                       : KS
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides Kernel Streaming (KS) support for USB MIDI 1.0 and USB MIDI 2.0 using the new MIDI 2.0/UMP class driver.
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {0F273B18-E372-4D95-87AC-C31C3D22E937}
name                                 : Kernel Streaming Aggregate (KSA) MIDI
transport_code                       : KSA
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides Kernel Streaming (KSA) support for USB MIDI 1.0 kernel streaming drivers aggregated into a UMP endpoint.
------------------------------------------------------------------------------------------------------------------------

========================================================================================================================
enum_ump_api_endpoints
========================================================================================================================

endpoint_device_id                   : \\?\swd#midisrv#midiu_loop_a_default#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Default App Loopback (A)
transport_code                       : LOOP
name_user_supplied                   : Default App Loopback (A)
name_endpoint_supplied               :
name_transport_supplied              : Default App Loopback (A)
desc_transport_supplied              :
desc_user_supplied                   : Default loopback endpoint for use by applications. This is the A-side of the loopback pair.

gtb_number                           : 1
gtb_name                             : Default App Loopback (A)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Destination

gtb_number                           : 1
gtb_name                             : Default App Loopback (A)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Source

midi_out_port                        : 1: Default App Loopback (A)
midi_in_port                         : 0: Default App Loopback (A)
parent_id                            : SWD\MIDISRV\MIDIU_LOOP_TRANSPORT
parent_name                          : MIDI 2.0 Loop Devices
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_loop_b_default#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Default App Loopback (B)
transport_code                       : LOOP
name_user_supplied                   : Default App Loopback (B)
name_endpoint_supplied               :
name_transport_supplied              : Default App Loopback (B)
desc_transport_supplied              :
desc_user_supplied                   : Default loopback endpoint for use by applications. This is the B-side of the loopback pair.

gtb_number                           : 1
gtb_name                             : Default App Loopback (B)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Destination

gtb_number                           : 1
gtb_name                             : Default App Loopback (B)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Source

midi_out_port                        : 2: Default App Loopback (B)
midi_in_port                         : 1: Default App Loopback (B)
parent_id                            : SWD\MIDISRV\MIDIU_LOOP_TRANSPORT
parent_name                          : MIDI 2.0 Loop Devices
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_loopback_a#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Loopback A
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Loopback A
desc_transport_supplied              : Diagnostics loopback endpoint. For testing and development purposes.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_loopback_b#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Loopback B
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Loopback B
desc_transport_supplied              : Diagnostics loopback endpoint. For testing and development purposes.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_ping#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Ping (Internal)
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Ping (Internal)
desc_transport_supplied              : Internal UMP Ping endpoint. Do not send messages to this endpoint.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests

========================================================================================================================
ping_test
========================================================================================================================

ping_attempt_count                   : 10
ping_return_count                    : 10
round_trip_total_ticks               : 4866
round_trip_average_ticks             : 486

========================================================================================================================
*** Successful Run ***
========================================================================================================================


========================================================================================================================
end_of_file
========================================================================================================================

PS C:\WINDOWS\system32> mididiag

========================================================================================================================
header
========================================================================================================================

This tool is part of the Windows MIDI Services SDK and tools
Copyright 2026- Microsoft Corporation.
Information, license, and source available at https://aka.ms/midi

Microsoft Windows MIDI Services - Diagnostics Report

ver_build_source                     : GitHub Preview
ver_build_name                       : SDK Release Candidate 2
ver_build_full                       : 1.0.15-rc.2.18

========================================================================================================================
os
========================================================================================================================

os_version                           : 10.0.26200

========================================================================================================================
processor_env
========================================================================================================================

PROCESSOR_ARCHITECTURE               : AMD64
PROCESSOR_IDENTIFIER                 : Intel64 Family 6 Model 141 Stepping 1, GenuineIntel
PROCESSOR_LEVEL                      : 6
PROCESSOR_REVISION                   : 8d01

========================================================================================================================
native_system_info
========================================================================================================================

processor_architecture               : 64-bit Intel/AMD
processor_level                      : 6
processor_revision                   : 0x8d01
------------------------------------------------------------------------------------------------------------------------
running_emulated                     : Native Intel/AMD x64 on x64 PC (Not Emulated)
------------------------------------------------------------------------------------------------------------------------

timecaps_min_period                  : 1
timecaps_max_period                  : 1000000

timer_resolution_min                 : 0.500 ms
timer_resolution_max                 : 15.625 ms
timer_resolution_current             : 15.625 ms

========================================================================================================================
dev_mode
========================================================================================================================

dev_mode_enabled                     : true

========================================================================================================================
reg_drivers32
========================================================================================================================

reg_drivers32_entry                  : midi = wdmaud.drv
reg_drivers32_entry                  : MidisrvTransferComplete = 1
reg_drivers32_entry                  : midi1 = wdmaud2.drv

========================================================================================================================
enum_winrt_midi1_api_input_ports
========================================================================================================================

endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_A_DEFAULT_0_0#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_B_DEFAULT_0_0#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}
name                                 : Default App Loopback (B)

========================================================================================================================
enum_winrt_midi1_api_output_ports
========================================================================================================================

endpoint_device_id                   : \\?\SWD#MMDEVAPI#MicrosoftGSWavetableSynth#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Microsoft GS Wavetable Synth
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_A_DEFAULT_1_0#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\SWD#MMDEVAPI#MIDIU_LOOP_B_DEFAULT_1_0#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}
name                                 : Default App Loopback (B)

========================================================================================================================
enum_winmm_midi1_api_input_ports
========================================================================================================================

endpoint_count                       : 2
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 0
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 1
name                                 : Default App Loopback (B)
------------------------------------------------------------------------------------------------------------------------
dev_caps_error_count                 : 0

========================================================================================================================
enum_winmm_midi1_api_output_ports
========================================================================================================================

endpoint_count                       : 3
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 0
name                                 : Microsoft GS Wavetable Synth
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 1
name                                 : Default App Loopback (A)
------------------------------------------------------------------------------------------------------------------------
endpoint_index                       : 2
name                                 : Default App Loopback (B)
------------------------------------------------------------------------------------------------------------------------
dev_caps_error_count                 : 0

========================================================================================================================
enum_registry
========================================================================================================================

reg_current_config                   : WindowsMidiServices.midiconfig.json
reg_discovery_enabled                : true
reg_discovery_timeout_ms             : Not present
reg_use_mmcss                        : Not present
------------------------------------------------------------------------------------------------------------------------
reg_midisrv_exe                      : %systemroot%\system32\midisrv.exe
------------------------------------------------------------------------------------------------------------------------
reg_sdk_installed                    : C:\Program Files\Windows MIDI Services\Desktop App SDK Runtime\
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : (Midisrv Transport)
reg_transport_clsid                  : {2BA15E4E-5417-4A66-85B8-2B2260EFBC84}
reg_transport_dll                    : C:\Windows\System32\Midi2.MidiSrvTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : (Diagnostics Transport)
reg_transport_clsid                  : {ac9b5417-3fe0-4e62-960f-034ee4235a1a}
reg_transport_dll                    : C:\Windows\System32\Midi2.DiagnosticsTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2KSAggregateTransport
reg_transport_clsid                  : {0f273b18-e372-4d95-87ac-c31c3d22e937}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.KSAggregateTransport.dll
file_version                         : 1.0.16.1
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2KSTransport
reg_transport_clsid                  : {26FA740D-469C-4D33-BEB1-3885DE7D6DF1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.KSTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2LoopbackMidiTransport
reg_transport_clsid                  : {942BF02D-93C0-4EA8-B03E-D51156CA75E1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.LoopbackMidiTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------
reg_transport_name                   : Midi2VirtualMidiTransport
reg_transport_clsid                  : {8feaad91-70e1-4a19-997a-377720a719c1}
reg_transport_enabled                : true
reg_transport_dll                    : C:\Windows\System32\Midi2.VirtualMidiTransport.dll
file_version                         : 1.0.15.0
------------------------------------------------------------------------------------------------------------------------

========================================================================================================================
sdk_runtime_status
========================================================================================================================

sdk_runtime_initialized              : true

========================================================================================================================
service_status
========================================================================================================================

available                            : true

========================================================================================================================
midi_clock
========================================================================================================================

clock_frequency                      : 10000000
clock_now                            : 26472723896

========================================================================================================================
enum_transports
========================================================================================================================

transport_id                         : {8FEAAD91-70E1-4A19-997A-377720A719C1}
name                                 : Virtual Midi
transport_code                       : APP
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides virtual device (app-to-app MIDI) support for MIDI 2.0
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {AC9B5417-3FE0-4E62-960F-034EE4235A1A}
name                                 : Diagnostics Endpoints
transport_code                       : DIAG
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides the built-in diagnostics loopback and diagnostics ping endpoints for MIDI 2.0
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {942BF02D-93C0-4EA8-B03E-D51156CA75E1}
name                                 : Loopback MIDI
transport_code                       : LOOP
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides simple loopback app-to-app MIDI support
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {26FA740D-469C-4D33-BEB1-3885DE7D6DF1}
name                                 : Kernel Streaming MIDI for UMP Drivers
transport_code                       : KS
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides Kernel Streaming (KS) support for USB MIDI 1.0 and USB MIDI 2.0 using the new MIDI 2.0/UMP class driver.
------------------------------------------------------------------------------------------------------------------------
transport_id                         : {0F273B18-E372-4D95-87AC-C31C3D22E937}
name                                 : Kernel Streaming Aggregate (KSA) MIDI
transport_code                       : KSA
version                              : 1.0.15.0
author                               : Microsoft Corporation
description                          : Provides Kernel Streaming (KSA) support for USB MIDI 1.0 kernel streaming drivers aggregated into a UMP endpoint.
------------------------------------------------------------------------------------------------------------------------

========================================================================================================================
enum_ump_api_endpoints
========================================================================================================================

endpoint_device_id                   : \\?\swd#midisrv#midiu_loop_a_default#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Default App Loopback (A)
transport_code                       : LOOP
name_user_supplied                   : Default App Loopback (A)
name_endpoint_supplied               :
name_transport_supplied              : Default App Loopback (A)
desc_transport_supplied              :
desc_user_supplied                   : Default loopback endpoint for use by applications. This is the A-side of the loopback pair.

gtb_number                           : 1
gtb_name                             : Default App Loopback (A)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Destination

gtb_number                           : 1
gtb_name                             : Default App Loopback (A)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Source

midi_out_port                        : 1: Default App Loopback (A)
midi_in_port                         : 0: Default App Loopback (A)
parent_id                            : SWD\MIDISRV\MIDIU_LOOP_TRANSPORT
parent_name                          : MIDI 2.0 Loop Devices
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_loop_b_default#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Default App Loopback (B)
transport_code                       : LOOP
name_user_supplied                   : Default App Loopback (B)
name_endpoint_supplied               :
name_transport_supplied              : Default App Loopback (B)
desc_transport_supplied              :
desc_user_supplied                   : Default loopback endpoint for use by applications. This is the B-side of the loopback pair.

gtb_number                           : 1
gtb_name                             : Default App Loopback (B)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Destination

gtb_number                           : 1
gtb_name                             : Default App Loopback (B)
gtb_first_group_number               : 1
gtb_group_count                      : 1
gtb_direction                        : Message Source

midi_out_port                        : 2: Default App Loopback (B)
midi_in_port                         : 1: Default App Loopback (B)
parent_id                            : SWD\MIDISRV\MIDIU_LOOP_TRANSPORT
parent_name                          : MIDI 2.0 Loop Devices
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_loopback_a#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Loopback A
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Loopback A
desc_transport_supplied              : Diagnostics loopback endpoint. For testing and development purposes.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_loopback_b#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Loopback B
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Loopback B
desc_transport_supplied              : Diagnostics loopback endpoint. For testing and development purposes.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests
------------------------------------------------------------------------------------------------------------------------
endpoint_device_id                   : \\?\swd#midisrv#midiu_diag_ping#{e7cce071-3c03-423f-88d3-f1045d02552b}
name                                 : Service Test Ping (Internal)
transport_code                       : DIAG
name_user_supplied                   :
name_endpoint_supplied               :
name_transport_supplied              : Service Test Ping (Internal)
desc_transport_supplied              : Internal UMP Ping endpoint. Do not send messages to this endpoint.
desc_user_supplied                   :
parent_id                            : SWD\MIDISRV\MIDIU_DIAG_TRANSPORT
parent_name                          : MIDI 2.0 Service Tests

========================================================================================================================
ping_test
========================================================================================================================

ping_attempt_count                   : 10
ping_return_count                    : 10
round_trip_total_ticks               : 4290
round_trip_average_ticks             : 429

========================================================================================================================
*** Successful Run ***
========================================================================================================================


========================================================================================================================
end_of_file
========================================================================================================================

Repro

  • I confirm that I was able to reproduce this issue using a simple app like midi.exe, midi1monitor.exe or Pocket MIDI
  • I tried but was unable to reproduce this issue using a simple application

Steps to reproduce

  1. Run the app-to-app sample.
  2. Terminate it by closing the terminal after the "Received UMP" message shows
  3. Run the app-to-app sample again.

--> Stuck on "Creating session…", and every other session-creating client hangs the same way until midisrv.exe is force-killed or the machine is rebooted.

Expected behavior

The terminal shows the "Received UMP" message the second time the app is run

Additional notes

  • Windows 11 25H2, build 26200.8875 (in-box microsoft-windows-devices-midi2 component 26100.8875). Reverting to 26100.8737 (June, pre-KB5101650) resolves it.
  • In-box Windows MIDI Services: MidiSrv.exe + transports serviced by Windows (Midi2.VirtualMidiTransport.dll, etc.).
  • Reproduces on App SDK client 1.0.15 / 1.0.16 / 1.0.17, C++/WinRT (MSVC 14.44 / 14.50).

Activity

  1. Psychlist1972 commented on Jul 17, 2026

    @Psychlist1972
    Collaborator

    Thanks Tim. Internal ADO bug# 63135869

    Pete
    Microsoft

  2. Shakes63 commented on Aug 14, 2026

    @Shakes63

    We're hitting what looks like the same underlying defect on a current 25H2 build with the in-box service, with enough differences in manifestation that the data seems worth adding: on this build the poisoned state is transient (~170s) and makes new SDK clients crash with 0xC0000409 (fastfail) rather than hanging forever.

    AI Generated Content disclosure: this investigation and write-up were produced with an AI assistant (Claude) operated by the account owner. All logs, event-log entries, timings, and version numbers below are verbatim/measured from the machine described, not generated.

    Environment

    Component Version
    Windows 11 Pro 25H2, build 26200.9168
    midisrv.exe (in-box, C:\Windows\System32) 10.0.26100.7705
    SDK Runtime + Tools 1.0.17-rc.4.25 (RC4)
    Client app midimesh node-agent (Rust, C++/WinRT projection of the App SDK)

    Client init sequence (matches the app-to-app virtual device pattern): MidiSession.Create → MidiVirtualDeviceManager.CreateVirtualDevice(config) → session.CreateEndpointConnection(device.DeviceEndpointDeviceId()) → AddMessageProcessingPlugin(device) → Open(), for its virtual UMP endpoints (one bidirectional function block each, group 0).

    Trigger

    Same as the OP: abnormally terminate a client that owns virtual UMP endpoints.

    loop:
      start client, wait for init to complete (healthy: ~330-540 ms)
      taskkill /F it            # TerminateProcess, client holds live virtual devices
      start a fresh client, observe whether its init succeeds
    

    The trigger is probabilistic per kill: in two of three independent runs the first kill was survived (the next client initialized normally in ~320 ms); the poisoned state began within 1–2 kills every time.

    While poisoned (~170 s window)

    • Every new client running the init above crashes during SDK init: exception 0xC0000409 (fastfail) in ucrtbase.dll, one WER Application Error 1000 per attempt:
      Faulting application name: node-agent.exe ...
      Faulting module name: ucrtbase.dll, version: 10.0.26100.8875
      Exception code: 0xc0000409
      
    • The stock console is also affected: midi endpoint monitor against the diagnostics loopback crashes (unhandled ObjectDisposedException on SafeWaitHandle in EndpointMonitorCommand threads; WER event, exception 0xe0434352 in KERNELBASE.dll).
    • Notably still healthy during the window: midi service ping completes normally, midi endpoint send-message to the diag loopback sends fine, WinMM midiInGetNumDevs/midiOutGetNumDevs answers in ~27 ms, and endpoint enumeration works.
    • midisrv PID never changes — the service does not crash or restart.

    Recovery

    Spontaneous and strikingly consistent: still poisoned when probed at ~115 s after the trigger kill, fully recovered when probed at ~170 s — in both runs where we bracketed it (170.3 s and 170.7 s from kill to first successful init). That smells like an internal timeout finally releasing whatever the dead client's cleanup left held. After it expires, everything is normal with no service restart.

    Sample timeline (times are local, WER events interleaved from the Application log):

    07:30:00.945  round 1: force-killed healthy client (336ms to init)
    07:30:01.282  round 1: next client -> init OK after 319ms      <- first kill survived
    07:30:05.057  round 2: force-killed healthy client (329ms to init)
    07:30:05      WER 1000: next client crashed 0xc0000409         <- poisoned
    07:31:05      WER 1000: fresh client crashed 0xc0000409
    07:32:00      WER 1000: fresh client crashed 0xc0000409
    07:32:55.769  fresh client init OK (311ms)                     <- ~170s after the kill
    

    What did NOT trigger it (negative results)

    • Force-killing midi endpoint monitor clients: 12 kills at offsets from 200 ms to 3 s after launch — service stayed healthy.
    • Four concurrent midi loopback create clients killed mid-transaction plus three monitors, five rounds — healthy.

    So it appears specific to cleanup of app-owned virtual devices after abnormal client termination, consistent with this issue and possibly #819.

    Prior behavior on older service builds

    For history: on the RC-era service (1.0.15/RC3 installer era, before this box moved to the in-box service), the identical trigger produced exactly what the OP describes — every subsequent session-creating client hung forever ("Creating session…"), and only killing the midisrv PID recovered it. The in-box 26100.7705 service turned that permanent hang into the ~170 s crash-loop above. Better, but three minutes of crashing clients after any client crash/force-kill is rough in live-performance use.

    Happy to re-run this with ETW tracing, an instrumented build, or collect WER dumps — the repro is scripted and takes ~3 minutes per run on this machine.

  3. Psychlist1972 commented on Aug 15, 2026

    @Psychlist1972
    Collaborator

    Shakes63 Yes, if you can run the midi log tracing from the MIDI Settings app Troubleshooting page while reproducing and then email me a link to OneDrive or some other location where you upload it, that would be helpful. I'm assuming all your service components are currently running the in-box versions from System32 and you are not using the latest developer in-box preview SDK with your app, but are using the rc4 SDK as you mentioned.

    Email: pmbrown at microsoft dot com

    There were a number of fastfails coming from using wil exception handling macros without including wil/cppwinrt first. This may be one of them, but the full ETL + TTD will help sort that out.

    Thanks.

    Pete
    Microsoft

  4. vro3 commented on Aug 16, 2026

    @vro3

    Adding a corroborating report from a different client stack, same build, in case the
    extra data points are useful.

    AI Generated Content disclosure: this investigation and write-up were produced
    with an AI assistant (Claude) operated by the account owner. All version numbers,
    timings, log lines, and device IDs below are verbatim from the machine described.

    Environment

    • Windows 11 Home 25H2, build 26200.8875 (same as the original report; registry
      ProductName reads "Windows 10 Home", cosmetic).
    • MidiSrv.exe 10.0.26100.7705; in-box Midi2.MidiSrvTransport.dll,
      Midi2.DiagnosticsTransport.dll, Midi2.VirtualMidiTransport.dll all 1.0.15.0.
    • App SDK runtime: reproduced on 1.0.16-rc.3.7 (winget Microsoft.MIDI.SDK) and
      then on 1.0.17-rc.4.25 (GitHub rc-4), installed over it — matching your
      "reproduces on 1.0.15 / 1.0.16 / 1.0.17" note.
    • Client: a Node.js 24.17 / Electron 33.4 N-API addon written in C++/WinRT
      (MSVC 14.44.35207, Windows SDK 10.0.26100, C++/WinRT 2.0.250303.1), modelled on
      samples/cpp-winrt/simple-app-to-app-midi. So this is not only the sample and not
      only a plain console app — it reproduces from a very different host process too.
    • Also installed on this box: Tobias Erichsen rtpMIDI / teVirtualMIDI
      (visible as a KSA endpoint). Disclosing it as an environment factor; the failure
      does not appear to need it, given your sample-only repro.

    Sequence observed

    1. Immediately after installing the SDK runtime (before any reboot), the full path
      worked once: MidiVirtualDeviceManager::CreateVirtualDevice returned in
      ~370 ms, the endpoint appeared to WinMM as both an input and an output under
      the declared name, and MIDI flowed both ways (sent 90 3C 64 to apps, received
      B0 07 7F from a WinMM app). Clean close() / session close / process exit.
    2. Every subsequent process: CreateVirtualDevice blocks. Measured > 4 s (our
      guard) and > 5 minutes when left unguarded.
    3. On a later boot, the first attempt after startup also blocked — so "first
      client after service start succeeds" is not reliably true here; sometimes the
      service is already poisoned at boot.

    Service state while wedged

    With our app not running at all:

    • midi.exe service ping prints Pinging MIDI service N times... and then produces
      no further output, exiting 0.
    • Dev-preview-4 mididiag.exe reaches ping_test / ping_attempt_count : 10 and
      stops there.
    • midi.exe enum endpoints, midi.exe loopback create, midi.exe service status
      ("Service MidiSrv is running"), and PnP/WinMM enumeration all still work — i.e.
      config plane alive, message/session plane dead.
    • net stop MidiSrv (elevated) → STOP_PENDING indefinitely.
    • A 6-hour sweep of the Application and System event logs shows no MidiSrv
      crash, WER, error, or warning events at all
      — only MSI records from the SDK
      installers and one SCM entry ("start type … changed from demand start to auto
      start"). No fastfail on this build, unlike the 0xC0000409 variant reported above.

    Two possibly-separate artefacts

    1. An orphaned app endpoint survives reboots. After a CreateVirtualDevice call
      that our client abandoned on timeout, this endpoint persisted across restarts:

      \\?\swd#midisrv#midiu_appdev_smartpath-16244-430546-1#{e7cce071-3c03-423f-88d3-f1045d02552b}
      parent: SWD\MIDISRV\MIDIU_APP_TRANSPORT
      

      It looks like the service completed the creation after the client gave up, leaving
      a device with no owning session. Is there a supported way to remove one of these?

    2. A WinMM port with a corrupted name appeared after midi.exe loopback remove
      removed one half of a loopback pair: enumerating WinMM outputs returned a name of
      apparent garbage bytes (Èš\x8Fáú\x7F) alongside the surviving MS Test B. Happy
      to file that separately if it is not part of this defect.

    Offer

    If it helps, I can run the MIDI log tracing from the MIDI Settings app →
    Troubleshooting page while reproducing on this build, and send the trace. Just say
    where to send it.

    Also noting for anyone else who lands here: taskkill /F /IM midisrv.exe from an
    elevated prompt is a much cheaper recovery than rebooting, since net stop hangs.

  5. vro3 commented on Aug 16, 2026

    @vro3

    Two follow-ups from the same machine as my report above.

    AI Generated Content disclosure: as before, this investigation and write-up were produced with an AI assistant (Claude) operated by the account owner. All build numbers, timings and command output below are verbatim/measured.

    1. Still reproduces on 26200.9168

    This box has since taken a Windows update and is now on 10.0.26200.9168 (the report above, and the original issue, were on 26200.8875). The behaviour is unchanged: after the service is restarted, the first client session can create a virtual device and use it, and every session-creating client after that blocks.

    Measured on 9168, immediately after a fresh service start:

    init:                    OK  (2180 ms, cold service start)
    cycle 1 CreateVirtualDevice:  142 ms   -> send OK, close OK
    cycle 2 CreateVirtualDevice:  blocked  -> abandoned at our 4000 ms deadline
    

    Flagging it in case the fix is expected to have ridden along in a servicing update before the November release — on this build it has not.

    2. taskkill /F /IM midisrv.exe is a working recovery, no reboot needed

    Confirming the hint in the original report, with the exact behaviour, since it saves a lot of time when testing:

    > net stop MidiSrv          (elevated)
    The Windows MIDI Service service is stopping...
    The Windows MIDI Service service could not be stopped.   <- hangs in STOP_PENDING
    
    > taskkill /F /IM midisrv.exe   (elevated)
    SUCCESS: The process "MidiSrv.exe" with PID 4900 has been terminated.
    

    After the force-kill the service starts again on demand and the next client gets a working virtual device (the 142 ms create above was immediately after doing this). So the cycle for anyone testing against this defect is: force-kill, get exactly one good client session, force-kill again — rather than one reboot per attempt.

    I have not seen the service recover on its own once wedged, and it stays wedged across a normal reboot only in the sense that a fresh boot sometimes starts out already poisoned — on this machine a first-attempt-after-boot failure has happened, so "first client after boot always works" is not a reliable assumption.

  6. Psychlist1972 commented on Aug 16, 2026

    @Psychlist1972
    Collaborator

    vro3 Thanks. This will continue to repro until the fix goes out in Windows in November. No need to validate each update.

    I fixed this just last night. (Correction: Claude fixed it :) )

    Pete
    Microsoft

  7. vro3 commented on Aug 16, 2026

    @vro3
  8. Psychlist1972 commented on Sep 14, 2026

    @Psychlist1972
    Collaborator

    Fully committed and merged to main in this repo. Will roll out in Windows 25h2+ during the end-of-November CFR (11D), and takes up to 45 days to be enabled on any PC which is fully up to date with Windows updates.

    As a reminder, CFRs take up to 30 days to enable for anyone who installed the 11D updates. If you do not install the 11D updates, then the updates go out to everyone halfway through the following month, approximately 45 days later.

    Pete
    Microsoft

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions