ExHyperV | V1.5.0 更新说明
本次发布以底层重构为核心,全新重写控制台、移除全部 PowerShell 逻辑并转为原生 API 调用、将发布体积由 12.4 MB 压缩至 1.78 MB,同时带来安全与高级子页面、VMCX 自动修复、CPU 高级调优、GPU-PV 驱动更新、虚拟机批量管理、轻量化模式与系统主题自动跟随等多项新功能,以及大量细节修复与体验优化。
🚀 重大变更
控制台优化
- 底层实现由
royalapps-community-rdp切换为mstscax。 - 全屏切换热键由
Ctrl + Alt + Space调整为Ctrl + Alt + Enter,以避免与某些用户态程序(如 Claude Desktop 等)冲突,同时对齐 VMware 的快捷键设计。 - 基本会话新增缩放功能,支持比例:25% / 50% / 75% / 100% / 125% / 150% / 200% / 300% / 400% / 500%。
- 受
mstscax设计限制,仅在 100% 缩放下可使用热键进入和退出全屏。 - 【自动】模式会识别当前屏幕尺寸,选择合适的缩放比例呈现。
- 受
- 增强会话不可用时,自动退回基本会话。
- 增强会话移除了不稳定的 SAS 实现。
- 全屏模式下顶部显示连接栏,控制更方便。
- 改进增强会话的连接流程与分辨率适配。
- 控制台会记忆上次使用的缩放比例,并在下次打开时自动沿用。
- 同一虚拟机重复打开控制台时,不再创建重复窗口,而是自动前置已有窗口。
- 修复键盘钩子模式的问题(#217)。
- 修复高缩放下窗口冲出屏幕、关闭按钮被挤出标题栏等问题。
- 修复关闭控制台时可能触发二次关闭并导致崩溃的问题。
底层架构重构
- 移除全部 PowerShell 逻辑,改为通过 WMI、Win32、HCS、COM、DISM、Vmbus 等底层 API 实现各项功能。
- 显著提升执行效率,降低内存占用。
- 升级
WPF-UI至 4.3.0,并统一应用配色与控件实现。
注意:上述改动在边界条件下可能产生不可读的错误代码或各种意外情况。
✨ 新增功能
- 安全子页面:控制安全启动、安全模板、vTPM 以及加密迁移等。
- 高级子页面:定义基本会话自定义分辨率、控制台是否开启等。
- 修改虚拟机 MAC 地址。
- 🧪 CPU 子页面新增多项高级 / 实验功能:APIC 模式、L3 缓存路数、L3 处理器分布策略、大页拆分、忽略宿主频率上限、暴露 PMU/LBR/PEBS/IPT、频率上限 / 下限 / 目标、能效偏好(EPP)、自动调频窗口、扩展虚拟化扩展、最大硬件隔离子机数、每插槽 CCX 数、每 L3 处理器数等。
- 不受当前宿主支持的字段会自动置灰,避免下发无效设置。
- 上述部分前沿功能主要服务于 Azure 基础设施,需特定 CPU 或硬件支持,且暂无官方文档可参考,请自行探索。
- VMCX 自动修复:得益于 VMCX 格式逆向工程,ExHyperV 启动时会自动侦测并询问是否修复 GPU-PV 导致的设备丢失、无法开机问题。
- PCIE 设备重启后路径变化导致虚拟机无法启动的同类问题暂未复现,欢迎在 issue 中提交
vmcx、vmgs文件,后续版本将针对修复。
- PCIE 设备重启后路径变化导致虚拟机无法启动的同类问题暂未复现,欢迎在 issue 中提交
虚拟机批量管理
- 创建虚拟机时支持指定数量,一次批量创建多台虚拟机。
- 虚拟机列表支持多选,可一键批量启动或关闭虚拟机。
- 支持批量删除及批量彻底删除。
- 普通删除会保留虚拟磁盘文件。
- 彻底删除前会列出即将永久删除的配置与磁盘文件并再次确认。
- 虚拟机右键菜单新增启动 / 关机操作。
GPU-PV 驱动更新
- 已部署 GPU-PV 的虚拟机新增【更新驱动】功能,可直接更新虚拟机中的 GPU 驱动文件。
- 改进 Windows 10 下 GPU-PV 设备名称识别:当
HostResource信息为空时,回退显示可分区 GPU 名称。 - 修复 Windows 10 下 GPU-PV 使用率计数器失效的问题。
- 显卡识别新增对砺算 GPU 品牌 Logo 的支持(尽管砺算还未实现 GPU-PV 相关接口)。
轻量化模式
- 设置页面新增【轻量化】模式。
- 开启后会关闭界面动画与页面切换过渡效果,并减少运行时内存占用。这对于刷新敏感的场景来说非常有用,也有助于显著减少 ARM64 设备的内存占用。
- 轻量化设置将在应用重启后完整生效。
系统主题自动跟随
- 主题设置新增【跟随系统】模式。
- Windows 在浅色与深色模式之间切换时,ExHyperV 会自动同步界面主题。
🛠️ 优化与改进
- 体积优化:通过字库优化、重编译依赖库、位图矢量化等方式,将发布体积由 12.4 MB 缩减至 1.78 MB。
- 发布优化:调整依赖文件布局,并精简发布清理流程。
- 用户体验:
- 虚拟机左侧列表的【彻底删除】会提前计算待删除的目录与文件并二次确认,避免误删关联文件。
- PCIE 直通:对于显卡携带声卡和存储控制器的情况,会询问是否关联操作。
- 当为用户剩余唯一可用显卡时,警告可能会丢失唯一的视频输出。
- 常用设备自动排序置顶,新增对 NPU 的识别与图标适配(目前众多 NPU 型号尚无法在虚拟机内部正常工作)。
- 存储控制器直通前自动检测是否包含系统盘、引导盘,避免直通后系统无法启动。
- 虚拟机详情页切换虚拟机时保留当前子页面。
- GPU-PV 部署向导执行期间锁定虚拟机列表,避免误切换目标虚拟机。
- 虚拟机设置页面完善触摸滚动支持。
- 优化虚拟机缩略图的截图区域与取景效果。
- 概览页无内容卡片移除无意义的展开箭头。
- 优化首页 Windows 系统版本号的显示格式。
- 应用强调色固定为蓝色,不再随 Windows 系统强调色变化。
- 环境与设定页面:新增宿主启用 Nvme 驱动的开关;改进 Hyper-V 服务启用 / 禁用逻辑;拆分各类环境要求,避免误以为服务器系统为必须要求;在 ARM64 上,IOMMU 状态体现为 SMMU 状态。
- 嵌套虚拟化检测:新增对虚拟机作为宿主时的 CPU 虚拟化检测,可正确检查是否已开启嵌套虚拟化。
- 统一反馈:统一各页面对于成功 / 失败信息的反馈。
- ARP 算法:优先通过 PktMon 驱动获取。
- 虚拟交换机拓扑图:多虚拟机拓扑不再超出应用边界,自动排列为多行。
- 创建虚拟机逻辑:修复无视用户手选保存位置的问题;为 ARM64 用户禁用 Gen 1 虚拟机创建(Hyper-V 不支持);创建后自动提升光驱引导优先级,不再苦等 PVE 倒计时。
- 切换服务器版本按钮:对不可用的系统版本置灰。
🐛 问题修复
- 修复导入 GPU 驱动文件时 UI 界面冻结的问题。
- 修复网络设置遗漏旧版模拟网卡的问题(#216)。
- 修复 Gen 1 虚拟机添加物理光驱的问题。
虚拟机管理
- 修复创建虚拟机时无法选择动态内存的问题。
- 修复配置文件已经丢失的虚拟机无法从列表删除的问题。
🔄 行为变更
- 平行宇宙功能入口移除:后期将规划为虚拟机克隆实现。
- Hyper-V 服务启用 / 禁用逻辑变化:禁用 Hyper-V 改为关闭
hypervisorlaunchtype,而非通过 DISM 卸载平台。 - 直通磁盘异常处理变化:当物理磁盘已经丢失时,可移除失效直通记录并重新尝试启动虚拟机。
🎨 界面调整
- 更换环境与设定、USB 界面的图标。
- 新增轻量化模式叶子图标。
🤝 贡献者
感谢以下社区贡献者通过 Pull Request 做出的贡献:
- @PIKACHUIM:提供发布文件的证书签名与自动签名流程(#219)。
- @IsAlanLo:修复飞牛 fnOS GPU-PV 部署脚本、部分环境下的语法错误及 Unix 文件格式问题(#214)。
- @A-Words:新增跟随 Windows 系统主题模式及主题自动切换功能(#233)。
版本发布
这个版本提供了 exe 单文件和 zip 两种选项,均为直接运行无需安装。
从1.5.1开始,发布产物将从 zip 变为 exe ,为后续的 CLI 以及分发做好准备。