Chuyu-Team / Dism-Multi-language

Dism++ Multi-language Support & BUG Report
MIT License
15.05k stars 1.02k forks source link

"Cleanup > Obsolete files > Obsolete drivers": incorrect deletion for "driver extensions". #1017

Open verdy-p opened 2 years ago

verdy-p commented 2 years ago

DISM++ incorrectly tries to remove "obsolete drivers" that are NOT obsolete. They are not standalone drivers, but installed as "driver extensions", meaning thatthey install some software services.

One good example comes from "Realtek Audio" drivers, that implement additional services to support additional audio filters (which may be enabled or disabled in the Realtek audio panel, but not necessarily used by default or that can be tuned. It also supports extensions allowing its audio ports to be changed dynamically (such as they can work either as input or output, and capable of detecting and tuning amplifiers, noise filters, evaluating the conductance, and current/volatage phase shifts that are typical from actual analog speakers or microphones, and if they need preamplification, or if micros are offseting their voltage/current, to adjust the input filters dynamically. They can also perform short measurment for different frequencies. Such measurements are made when we plug the device, and can cdetect when we unplug them.

To make the UI consistant ni Windows, it will dynamically remap ports and assign them to the correct types. This requires a sevice to propagate these dynamic architecture changes. As well some software audio effects can be plugged in or removed, or tuned, by remapping ports internally to audio transformation filters (something that basic audio fucntions of Wnidows do not do by itself).

When We use DISM++ and check the option in "Cleanup > Obsolete files > Obsolete drivers", this fails (these drivers are also displayded as using "0 bytes" of storage; these are drivers that are acually installed at the same time as other drivers that need them for working properly (even if they are not permanently activated but jsut sleeping, e.g. when there's no sound to play).

An example of this is "C:\WINDOWS\System32\DriverStore\FileRepository\hdx_gigabyteext_rtk.inf_amd64_68eaca724c3f2d6c\": which installs 3 drivers of type "Software component" in the device manager ("Realtek Audio Effects Components" = "realtekapo.inf", "Realtek Audio Universal Service" = "realtekservice.inf"", and "Realtek Hardware Support Application" = "realtekhsa.inf"): they are required by the core driver that loads them ("Realtek(R) Audio" = "hdxgigabyte.inf") via its extension("Realtek(R) Audio" = "hdxgigabyteext_rtk.inf"). The "hdxgigabyteext_rtk.inf" contains no driver by itself, it's a software extension that allow registering and loading the 3 other drivers in the Device manager.


Automatic translation to Simplified Chinese:

DISM++ 错误地尝试删除尚未过时的“过时驱动程序”。 它们不是独立的驱动程序,而是作为“驱动程序扩展”安装的,这意味着它们安装了一些软件服务。

一个很好的例子来自“Realtek Audio”驱动程序,它实现了额外的服务来支持额外的音频过滤器(可以在 Realtek 音频面板中启用或禁用,但不一定默认使用或可以调整。它还支持允许的扩展它的音频端口可以动态更改(例如它们可以作为输入或输出工作,并且能够检测和调整放大器、噪声滤波器、评估电导以及典型的实际模拟扬声器或麦克风的电流/电压相移,如果它们需要前置放大,或者如果微控制器正在偏移它们的电压/电流,则可以动态调整输入滤波器。它们还可以对不同的频率进行短时间测量。这样的测量是在我们插入设备时进行的,并且可以在我们拔下设备时进行检测.

为了使 UI 与 Windows 一致,它将动态重新映射端口并将它们分配给正确的类型。这需要一个服务来传播这些动态架构更改。此外,通过将端口内部重新映射到音频转换过滤器(这是 Wnidows 的基本音频功能本身不做的事情),可以插入、移除或调整一些软件音频效果。

当我们使用 DISM++ 并勾选“清理 > 过时的文件 > 过时的驱动程序”中的选项时,这会失败(这些驱动程序也显示为使用“0字节”的存储空间;这些驱动程序与其他驱动程序同时安装)需要它们才能正常工作(即使它们没有被永久激活但只是在睡觉,例如当没有声音播放时)。

例如“C:\WINDOWS\System32\DriverStore\FileRepository\hdx_gigabyteext_rtk.inf_amd64_68eaca724c3f2d6c\”:它在设备管理器中安装了 3 个“软件组件”类型的驱动程序(“Realtek Audio Effects Components”=“realtekapo.inf” , "Realtek Audio Universal Service" = "realtekservice.inf"" 和 "Realtek Hardware Support Application" = "realtekhsa.inf"):加载它们的核心驱动程序需要它们 ("Realtek(R) Audio" = " hdxgigabyte.inf") 通过其扩展名("Realtek(R) Audio" = "hdxgigabyteext_rtk.inf")。“hdxgigabyteext_rtk.inf”本身不包含驱动程序,它是一个软件扩展程序,允许注册和加载其他 3 个驱动程序设备管理器。

verdy-p commented 2 years ago

Note: where is now your "www.chuyu.me" site: it seems that it was not renewed and it now occupied by ads and displayed for sale.

So we no longer have an official distribution for the complete tool since some months, only backups on third party sites. As well Dism++ is no longer able to update itself (notably to download updated translations, or plugins).

verdy-p commented 2 years ago

If you have abandoned the project, please publish the full sources (not just the multilingual component or some third party libraries that you've patched) so that others can continue it (or possibly rebuild the UI and the core engine calling these libraries if they need maintenance, notably for newer versions of Windows 11 or for new security issues or restrictions).