C:盘根目录下的一些DLL

use*_*875 11 windows installer dll

这两个文件出现在 Windows 11 中我的 C: 驱动器的根目录中。有人知道是什么创建了它们吗?他们的目的是什么?为什么他们扎根?

  • appverifUI.dll
  • vfcompat.dll

aqf*_*aqf 2

有人知道是什么创造了它们吗?

运行Windows 11 SDK 10.0.22621.1778 安装程序后,这些文件出现在我面前。

他们的目的是什么

从我对此的研究来看,Microsoft 的应用程序验证程序appverifUI.dll(appver) 似乎需要(UI 定义)和vfcompat.dll(运行兼容性测试所需的) 。

在此输入图像描述

可以通过 UI(如上所示)或通过命令行启用测试:

appverif -enable HighVersionLie -for xcopy.exe
Run Code Online (Sandbox Code Playgroud)

将 xcopy.exe 替换为您需要测试的可执行文件。

当应用程序下次启动时,将运行这些测试。我验证了 UI 中的错误,并在删除错误后运行兼容性测试。不过,删除C:\根文件夹中的DLL并不会影响C:\system32\appverifUI.exe.

发现重复的 DLLC:\windows\system32

存在C:\windows\system32两个同名的 DLL,这导致我在 DLL 查看器工具下比较差异。我选择JetBrains dotPeek (免费),并在这个答案的一点帮助下,我注意到文件(COFF)标头的 Machine 段下的这些值:

在此输入图像描述

很明显,一个是 32 位 (0x014C = i386),另一个是appverif.exe. 令人惊讶的是,我还发现appverif.exeC:\SysWOW64。然后,我在应用程序验证器文档中找到了这一点:

将应用程序验证器与 WOW64 结合使用

您可以使用 32 位或 64 位版本的应用程序验证器来验证在 WOW64 下运行的 32 位应用程序。

讽刺的是,看起来 32 位 appverif.exe 位于 C:\Windows\SysWOW64(此处也受支持)。

根据我的直觉,我尝试运行它C:\SysWOW64\appverif.exe,它仅通过命令行运行。然而,在移动C:\appverifUI.dllC:\vfcompat.dll进入后C:\Windows\SysWOW64,我能够启动 UI 并运行兼容性测试。

为什么他们在根

对此我只能推测 - 我猜想它们是如何在其他地方链接在一起的(即通过 SDK 中的引用)。

但是,有一点很明确,如果您需要使用 32 位 appverif UI 并运行相应的兼容性测试,则不应删除这些文件。但是,我不明白为什么您需要 32 位 appverif,因为 64 位版本也可以。