news 2026/11/4 16:07:36

DriverStore Explorer 驱动清理指南:决定哪些驱动被勾选的3条判断规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DriverStore Explorer 驱动清理指南:决定哪些驱动被勾选的3条判断规则

DriverStore Explorer 驱动清理指南:决定哪些驱动被勾选的3条判断规则

【免费下载链接】DriverStoreExplorerDriver Store Explorer项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer

Windows 的 Driver Store 只进不出,驱动包越堆越多,C 盘空间被一点点吃掉。DriverStore Explorer(RAPR)是一个查看和清理 Windows 驱动仓库的开源工具:它把系统里每个第三方驱动包列出来,显示版本、大小、关联设备,支持批量删除旧驱动、按目录结构导出备份。

程序是一个单文件Rapr.exe,需要 Windows 7 以上、.NET Framework 4.7.2 以上,并以管理员身份运行。主界面左边是驱动列表,右边是操作面板,最常用的两个按钮是Select Old Drivers和Delete Driver。它敢一键勾选,底气来自源码里几条明确的判断规则。

截图里那条 813 MB 的 NVIDIA 驱动,Device Name 列显示为灰色——这正是判断一个驱动能不能删的第一条线索。

先看列表里两种颜色:灰色与橙红色是怎么来的

Device Name列的灰色不是装饰。DSEForm.cs的LstDriverStoreEntries_FormatCell事件里写得很直白:当entry.DevicePresent为false时,单元格前景色设为Color.Gray。

DevicePresent的数据源在DeviceHelper.cs,那里定义了DEVPKEY_Device_IsPresent属性键,SetupAPI.cs负责从 Windows 设备栈读取它。设备当前不在位(拔掉的外置摄像头、退役的打印机、旧手机)对应驱动就是灰色。删掉灰色设备对应的驱动,当前使用不受影响;代价是日后再接上这台设备,要重新装驱动。

第二种颜色在Driver Date列:橙红色(Color.OrangeRed)。DSEForm.cs维护一个driversWithNewerDate集合,版本较低但日期反而比最新版本更新的驱动包会进入其中。版本号排序和文件日期排序打架时,用颜色提醒你再确认一下。

一键「Select Old Drivers」驱动清理背后的3条规则

这个按钮对应DSEForm.cs的CtxMenuSelectOldDrivers_Click方法。勾选逻辑可以拆成三条规则。

规则1:按4个维度分组,只有一组里存在多个版本才有资格被标记

驱动包先按DriverClass、DriverExtensionId、DriverPkgProvider、DriverInfName四个字段GroupBy,再按DriverVersion、DriverDate双重排序,只保留组内版本数大于 1 的组。系统里只有一个版本的驱动,永远不会被自动勾选。

规则2:版本号排第一,日期只是次序比较

组内按版本号降序、日期降序排列后,排第一的版本保留,Skip(1)之后的全部标记为旧。注意:日期比新版更新的旧版本仍会被勾选(同时被橙红色标记),判断基准始终是版本号。

规则3:两道安全闸,默认排除关键驱动

第一道:设置项IncludeBootCriticalInOldDriverSelection默认是False(见Properties/Settings.settings),被标记为启动关键的驱动包直接不参与自动勾选。第二道:HasDeviceAssociation为真的版本组不勾选——也就是说,当前还有设备正挂在它身上的驱动,自动清理不会碰。ntprint.inf也被显式排除在外。

Select Unused Driver(s)走的是另一套更激进的逻辑:凡是HasDeviceAssociation为假的都勾上。它默认会先弹警告框,且默认按钮是 Cancel(MessageBoxDefaultButton.Button2),状态栏还会挂一条黄色提醒,直到这些驱动成功Export备份才清除。删除正在使用中的驱动则依赖Force Deletion复选框,官方说明里提到它对打印驱动可能不生效。

原生 API 不可用时,DriverStoreFactory.cs 如何自动切换引擎

驱动仓库有三套读取通道,都实现同一个IDriverStore接口:NativeDriverStore走 Windows Setup API 的 P/Invoke 调用(SetupAPI.cs、SafeNativeMethods.cs),DismUtil走 DISM 接口,PnpUtil则是解析pnputil.exe的命令行输出。DriverStoreFactory.cs的CreateOnlineDriverStore按设置项DriverStoreOption创建对应实现;ValidateDriverStoreOption负责降级——Native 不可用时,Windows 8 以上且有 DISM 就切到 DISM,否则落到 PnpUtil。

离线仓库走CreateOfflineDriverStore,此时 PnpUtil 分支也返回DismUtil,因为解析命令行输出无法处理挂载镜像。切到离线模式(ChooseDriverStore.cs里的 Offline 选项)后,两个自动勾选按钮会被禁用——设备是否在位无法确定,只能手动选择删除。

备份这条线同样有代码可查:DriverStoreEntry.cs的GetDriversBackupFolderName方法按「设备类别\设备名_版本」生成目录,没有关联设备的驱动归入Drivers without existing device;CSVExporter.cs实现IExport接口,把 15 个字段导出成 CSV,唯独不导出文件列表——源码注释里说明,单个显卡驱动包能列出一万多条文件,远超一个 Excel 单元格的上限。

最小动作,三步就能跑完一次 DriverStore Explorer 驱动清理:

  1. 下载最新版Rapr.exe,或在 PowerShell 执行winget install lostindark.DriverStoreExplorer;想自己编译,git clone https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer后用 Visual Studio 2022 打开Rapr.sln构建。
  2. 右键以管理员身份运行,等列表加载完成。
  3. 点Select Old Drivers,逐行扫一遍勾选项,再点Delete Driver。

被勾中的,是代码判定「有更新版本、且没有设备在用」的驱动;判断依据都摆在DSEForm.cs里,不放心就先Export Drivers存一份再动手。

【免费下载链接】DriverStoreExplorerDriver Store Explorer项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 16:06:53

如何快速在本地跑通 GitHub Actions?actrun 新手完整教程

【免费下载链接】actrun GitHub Actions compatible local runner 项目地址: https://gitcode.com/gh_mirrors/ac/actrun 点击查看 免费下载 还在为 GitHub Actions 的排队和慢启动烦恼吗?本文带你用 actrun(一个用 MoonBit 编写的 GitHub A…

作者头像 李华
网站建设 2026/11/4 15:50:16

Hermes Agent容器编排监控工具:Prometheus与Grafana配置

Hermes Agent容器编排监控工具:Prometheus与Grafana配置 Hermes Agent是一款功能强大的容器编排监控工具,能够帮助开发者和运维人员轻松实现对容器环境的全面监控。本文将详细介绍如何配置Prometheus与Grafana,以实现对Hermes Agent容器编排…

作者头像 李华
网站建设 2026/11/4 15:47:21

RevokeMsgPatcher:三步让微信PC端撤回失效

RevokeMsgPatcher:三步让微信PC端撤回失效 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitHub_Tr…

作者头像 李华
网站建设 2026/11/4 15:47:09

Qwen3-Omni-Captioner:音频理解新范式,开启细粒度内容解析时代

Qwen3-Omni-Captioner:音频理解新范式,开启细粒度内容解析时代 【免费下载链接】Qwen3-Omni-30B-A3B-Captioner 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Omni-30B-A3B-Captioner 导语 阿里云推出Qwen3-Omni-30B-A3B-Captioner…

作者头像 李华
网站建设 2026/11/4 15:43:55

Hermes Agent性能监控仪表板设计:关键指标与可视化全指南

Hermes Agent性能监控仪表板设计:关键指标与可视化全指南 Hermes Agent作为一款强大的AI代理框架,其性能监控仪表板是保障系统稳定运行和优化用户体验的核心组件。本文将详细介绍如何设计一个全面的Hermes Agent性能监控仪表板,涵盖关键指标…

作者头像 李华
网站建设 2026/11/4 15:39:32

3步跑通微信公众号文章批量下载:6种导出格式完整指南

3步跑通微信公众号文章批量下载:6种导出格式完整指南 【免费下载链接】wechat-article-exporter 一款在线的 微信公众号文章批量下载 工具,支持导出阅读量与评论数据,无需搭建任何环境,可通过 在线网站 使用,支持 dock…

作者头像 李华