EnableEUDC API call slows down over time on Windows Server 2022 / Windows 11

T.S 0 Reputation points
2025-09-03T01:46:42.7466667+00:00

I created an executable that calls the Windows GDI API function EnableEUDC (※).

https://learn.microsoft.com/ja-jp/windows/win32/gdi/enableeudc

When this executable is run repeatedly, the execution speed of the EnableEUDC function gradually becomes slower.

This behavior has been observed on Windows Server 2022 and Windows 11, but not on Windows 10, Windows Server 2016, Windows Server 2019, or Windows Server 2025.

For verification, I tested with a minimal executable that only calls the EnableEUDC function, and the slowdown still occurs. In long-term operation, this causes the performance of our Windows application to significantly degrade, which is impacting our operations.

Rebooting the OS temporarily resolves the issue, but the problem reappears after continued use.

Could you let me know if there is any information about this being a known bug in Windows, related KB articles, or any possible workarounds?

Windows development | Windows API - Win32

Answer recommended by moderator
Anonymous
2025-11-19T09:17:16.0033333+00:00

Hi T.S,

Thank you for the detailed report. I've researched this issue and found some relevant information.

There are currently no KB articles documenting this specific EnableEUDC performance degradation on Windows Server 2022 or Windows 11. This behavior is not listed in the official known issues documentation.

Third-Party Documentation

Hitachi encountered this same issue with their XMAP3 enterprise software and documented it here: https://www.hitachi.co.jp/Prod/comp/soft1/xmap3/info/platform/w2022w11.html

(Disclaimer: I provide this external link for informational purposes only. This does not imply endorsement, and i am not responsible for the content on the external site.)

Their findings match yours exactly, the slowdown occurs on Windows Server 2022 and Windows 11, but not on Windows 10, Server 2016, Server 2019, or Server 2025.

Workarounds

Hitachi documented five different mitigation approaches:

  1. Periodically reboot the OS - Clears the accumulated state causing the slowdown
  2. Periodically log off the account - Log off the account that's running the application using EnableEUDC, which also clears the accumulated state
  3. Periodically call EnableEUDC(FALSE) - Disable EUDC when not actively needed, then re-enable with EnableEUDC(TRUE) when required. This can be done programmatically within your application
  4. Disable EUDC entirely - If your application has alternative ways to handle external characters, you could disable EnableEUDC functionality completely. Note: This makes Windows system EUDC unavailable, so only viable if you have alternative solutions
  5. Service-based approach (XMAP3-specific) - Use a Windows service to manage EUDC in session 0, though this may be specific to their software architecture

The first three approaches might be adaptable to your scenario depending on your operational requirements and how frequently your application calls EnableEUDC.

Hope this helps!

Was this answer helpful?

1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

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.