ASIO Usage Issues on Windows

While playing my ASIO wrapper driver with Roon on Windows 11, I found a couple of issues:

  1. Roon never releases the ASIO driver (ASIOExit) upon exit, which leaks the driver’s COM object. That is, IUnknown::Release is not called (and, if implemented in C++, no destructors are called either).

  2. Roon stops the device (ASIOStop) and disposes of playback buffers (ASIODisposeBuffers) about 5 seconds after playback is paused. If the app is closed less than 5 seconds after pause, the device is not stopped or released. This also happens if Roon is closed during playback.

These problems combined can leave the hardware in an undefined state after using Roon.

2 Likes

Yep, I’ve noted similar over the years. Not a new issue, imho.