How to fix the problem with MMDevApi.dll in text-to-speech applications on Windows 11 24H2?

Ilya Morozov 10 Reputation points
2024-11-14T17:26:54.61+00:00

I'm the developer of text-to speech application, it has been distributed for many years, and there have been no problems with MMDevApi.dll, from Windows XP to Windows 11 23H2. Now I get dozens of complaints about the same situation: a user upgraded Windows 11 to 24H2, and now my program crashes, and in the Event Viewer the error description has a reference to MMDevApi.dll.

Problems detected:

  1. The text-to-speech program crashes if the list of audio output devices is changed.
  2. The text-to-speech program crashes if a computer voice starts reading text aloud (voices for SAPI 5 are used).
  3. The text-to-speech program does nothing, a user runs any audio/video player, and the text-to-speech program crashes.

The first point is obvious: the program uses IMMDeviceEnumerator interface to keep track of changes in the list of output audio devices. If the list changes, my program crashes in Win11 24H2. The cause of the problem is obvious, it is the MMDevApi.dll system library. Win11 23H2 and previous versions of the operating system did not have this problem.

Interesting discovery was made by one of the users: if you launch the “Windows 11 Media Player” application and keep it open, and then launch the text-to-speech program, the program works stably (the TTS program does not crash).

Re-registering the MMDevApi.dll system library did not help. Changing the compatibility mode for the EXE-file to “Windows 10” did not help.

As far as I know, the developers of several other TTS programs have encountered the same problem. Apparently the problem is related to a library MMDevApi.dll in the 24H2 update, but what to do and how to fix it is unclear. Please, help!

Here is the error information in the Event Viewer.

Log Name:      Application

Source:        Application Error

Date:          10/31/2024 11:07:11 AM

Event ID:      1000

Task Category: Application Crashing Events

Level:         Error

Faulting application name: balabolka.exe, version: 2.15.0.880, time stamp: 0x671d5513

Faulting module name: MMDevApi.dll, version: 10.0.26100.1882, time stamp: 0xbe6f88f4

Exception code: 0xc0000005

Fault offset: 0x0002564d

Faulting process id: 0x264C

Faulting application start time: 0x1DB2B41EE0B94D1

Faulting application path: C:\Program Files (x86)\Balabolka\balabolka.exe

Faulting module path: C:\WINDOWS\System32\MMDevApi.dll

Report Id: 0def1e0f-f143-4998-840b-4573e20dcd0e

Faulting package full name:

Faulting package-relative application ID:

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

  <System>

    <Provider Name="Application Error" Guid="{a0e9b465-b939-57d7-b27d-95d8e925ff57}" />

    <EventID>1000</EventID>

    <Version>0</Version>

    <Level>2</Level>

    <Task>100</Task>

    <Opcode>0</Opcode>

    <Keywords>0x8000000000000000</Keywords>

    <TimeCreated SystemTime="2024-10-31T03:07:11.0418263Z" />

    <EventRecordID>1889</EventRecordID>

    <Correlation />

    <Execution ProcessID="16332" ThreadID="6424" />

    <Channel>Application</Channel>

  </System>

  <EventData>

    <Data Name="AppName">balabolka.exe</Data>

    <Data Name="AppVersion">2.15.0.880</Data>

    <Data Name="AppTimeStamp">671d5513</Data>

    <Data Name="ModuleName">MMDevApi.dll</Data>

    <Data Name="ModuleVersion">10.0.26100.1882</Data>

    <Data Name="ModuleTimeStamp">be6f88f4</Data>

    <Data Name="ExceptionCode">c0000005</Data>

    <Data Name="FaultingOffset">0002564d</Data>

    <Data Name="ProcessId">0x264c</Data>

    <Data Name="ProcessCreationTime">0x1db2b41ee0b94d1</Data>

    <Data Name="AppPath">C:\Program Files (x86)\Balabolka\balabolka.exe</Data>

    <Data Name="ModulePath">C:\WINDOWS\System32\MMDevApi.dll</Data>

    <Data Name="IntegratorReportId">0def1e0f-f143-4998-840b-4573e20dcd0e</Data>

    <Data Name="PackageFullName">

    </Data>

    <Data Name="PackageRelativeAppId">

    </Data>

  </EventData>

</Event>

Windows for business | Windows Client for IT Pros | User experience | Other
0 comments No comments
{count} vote

4 answers

Sort by: Most helpful
  1. Ilya Morozov 10 Reputation points
    2024-11-29T18:31:12.7166667+00:00

    Thanks to the help of users, it was possible to gather more information about the problem in the 24H2 update. If the user's monitor contains speakers, if the graphics card and the monitor are connected with an HDMI cable that transmits sound – this leads to unstable work of the text-to-speech program, it periodically crashes, and in the event log the MMDevApi.dll system library is specified as the cause of the crash. But if the user connects speakers or headphones to the audio jack on the motherboard of the same computer, the text-to-speech program works stably. So, the problem is neither in the MMDevApi.dll library nor in the text-to-speech program, but in some driver inside the 24H2 update. Until Microsoft developers fix the problem, here's the situation: if you installed the 24H2 update for Windows 11 and the text-to-speech application starts crashing, connect your audio output device to a different port on your computer.

    Here is the information about the user's computer configuration.

    1)Video Adapter-------------------------

    Video Chipset: NVIDIA GeForce GTX 1650 Super

    Video Memory: 4096 MBytes of GDDR6 SDRAM [Micron]

    Video Card: ASUS GTX 1650 Super

    Video Bus: PCIe v3.0 x16 (8.0 GT/s) @ x16 (8.0 GT/s)

    GPU Type: Discrete

    Video BIOS Version: 90.16.46.00.47 [UEFI]

    Driver Manufacturer: NVIDIA

    Driver Version: 32.0.15.6614 (GeForce 566.14)

    Driver Date: 06-Nov-2024

    2)Monitor----------------------------

    Monitor Name: LG [Unknown Model: GSM5B08]

    Monitor Name (Manuf): LG Ultra HD

    Input Signal: Digital

    Driver Manufacturer: Microsoft

    Driver Description: Generic PnP Monitor

    Driver Version: 10.0.26100.1882

    Driver Date: 21-Jun-2006

    1. Audio--------------------------------

    a) Audio Adapter: Intel Kaby Lake - High Definition Audio / cAVS (Audio, Voice, Speech)

    High Definition Audio Codec: Intel

    Driver Manufacturer: Intel(R) Corporation

    Driver Description: Intel(R) Display Audio

    Driver Version: 10.27.0.10

    Driver Date: 16-Apr-2021

    High Definition Audio Codec: RealTek ALC899

    Driver Manufacturer: Realtek Semiconductor Corp.

    Driver Version: 6.0.1.8248

    Driver Date: 05-Sep-2017

    b) Audio Adapter: NVIDIA TU116 - High Definition Audio Controller

    High Definition Audio Codec: nVidia

    Driver Manufacturer: NVIDIA Corporation

    Driver Description: NVIDIA High Definition Audio

    Driver Version: 1.4.2.6

    Driver Date: 26-Sep-2024

    A sincere request to Microsoft developers: please solve the problem! All this started after installing update 24H2, before that everything worked stable for any audio output devices.

    1 person found this answer helpful.
    0 comments No comments

  2. M U 0 Reputation points
    2024-12-06T07:48:25.14+00:00

    "If the user's monitor contains speakers, if the graphics card and the monitor are connected with an HDMI cable that transmits sound – this leads to unstable work of the text-to-speech program, it periodically crashes, and in the event log the MMDevApi.dll system library is specified as the cause of the crash."

    The above sentence describes perfectly behaviour of Auto Mute software (https://auto-mute.com/) on my desktop. I hope you have filed a 24H2 bug in a correct formal way. I'm afraid sincere request is not enough.

    0 comments No comments

  3. Ilya Morozov 10 Reputation points
    2024-12-18T16:33:52.88+00:00

    The Microsoft developers still don't fix the problem. It occurs in 32-bit applications that use the IMMNotificationClient interface. As users reported, this code example compiled as a 32-bit program can crash:

    https://learn.microsoft.com/en-us/windows/win32/coreaudio/device-events

    Other developers also reported about the same problem with their 32-bit applications (64-bit applications is OK).


  4. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more

Your answer

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