ramensoftware / windhawk-mods

The official collection of Windhawk mods
269 stars 53 forks source link

[Windows 11 taskbar Styler] Crash when "Taskbar Overflow menu" is present #478

Open Nojevah opened 8 months ago

Nojevah commented 8 months ago

Mod: Windows 11 taskbar Styler by @m417z

When "Taskbar Overflow menu" appears, explorer.exe crashes. Details: My system: Windows 11 Home 22H2 22621.3007, WH 1.4.1 and W11 Taskbar Styler 1.2.3 "Taskbar Overflow menu" is a menu in Windows 11 which appears when there are more than 17 Apps opened (or more). Ellipses appear to group windows from the same app.

To reproduce:

===> Explorer crashes

short and longer video example

https://github.com/ramensoftware/windhawk-mods/assets/7541249/54995ea0-9e2a-42fa-aeb8-768bd4670315

https://github.com/ramensoftware/windhawk-mods/assets/7541249/f8b100f9-d2dd-4982-a6aa-510ea9518dec

Nojevah commented 8 months ago

Not sure if it's useful, debug log when it crashes: WH_Crashes.txt

m417z commented 8 months ago

I'll take a look when I have some time. Meanwhile, can you capture a crash dump? You should be able to get it with the following steps:

Nojevah commented 8 months ago

Ouch, 800 MB the dump. I've upload it (compressed) on a drive for some time: https://drive.google.com/file/d/1-i1xIbZXG0d1RxPUuXDFV4qq6xX1ORYf/view?usp=sharing FWIW, it's not that important, it's the first time I've seen this Taskbar Overflow menu.

m417z commented 7 months ago

I looked at the dump file. The exception code is:

E_INVALIDARG - One or more arguments are not valid

And it happens near winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<winrt::Taskbar::implementation::Badge>::ArrangeOverride So something related to arranging a taskbar badge.

I tried to reproduce the crash with your steps with Windows 11 version 22H2 (OS Build 22621.3085), but without success.

Perhaps you checked it, but did you test it with and without the taskbar styler mod? Can you clearly see that the mod causes the problem? I'm asking because it's possible that it's a Windows bug or something else unrelated to the mod.

m417z commented 7 months ago

After several additional attempts, I was able to reproduce the crash. The E_INVALIDARG error is raised in the following function: CDirectManipulationService::ActivateDirectManipulationManager Which is only called when the Windows UI manipulation mechanism is used. It's nothing specific to the mod, I was able to reproduce the crash with a modified version of the mod with most functionality removed, and also with UWPSpy. It seems to be a Windows bug in the UI inspection mechanism. I believe that other tools that use this mechanism, such as TranslucentTB, trigger the bug as well, but I didn't try it.

I could try and fix or at least forcefully ignore this error, but it's tricky since the easiest way to do something about it is to use the symbols of Windows.UI.Xaml.dll, but they're huge, around 350 MB, which will considerably slow down the mod loading. If this issue becomes more common, I'll consider implementing such a workaround, which will probably be optional and off by default.