ygo*_*goe 5 .net c# windows hyper-v
Visual Studio使用Hyper-V来运行Windows Phone模拟器.Hyper-V也与VMware不兼容,因为Hyper-V以永久虚拟化模式启动Windows,而VMware在运行时仅需要VT-x.
Hyper-V可以作为Windows角色安装和卸载.这还将激活和停用永久Windows虚拟化并允许VMware运行.但当然,Visual Studio模拟器停止工作.
可以将Hyper-V配置为活动或非活动状态,而无需卸载Windows角色.这涉及使用bcdedit.exe编辑引导配置.执行此更改后,需要重新启动才能实际应用配置并使用或不使用Hyper-V.设置后可以读取此BCD设置,但不知道系统是否已重新启动以实际应用它.因此,此设置仅指示重新启动后将发生的情况,而不是虚拟化当前是否正在运行.
有人说你可以看一下Windows服务"vmms".不幸的是,这没有帮助,因为该服务与Hyper-V角色一起安装,并且无论虚拟化是否真正活跃,它始终在运行.WMI信息也没有用,因为它总是说Hyper-V会运行,即使它不是.
显然必须有一种方法来确定虚拟化的真实当前状态,因为VMware会在您尝试启动64位计算机时告诉您.
那怎么能在代码中完成呢?特别是从.NET应用程序?管理员权限已经可用,因为bcdedit.exe也需要它.
如果这需要本机汇编程序代码,是否可以以某种方式从C#/ .NET运行它?
更新:
我做了一个简单的工具,在bcdedit程序上放置一键式GUI:Hyper-V Switch.您可以尝试一下,亲眼看看您是否发现任何可靠的Hyper-V指示器实际上正在执行,而不仅仅是配置为在下次启动时运行.启用或禁用Hyper-V但保持应用程序处于打开状态以防止重新启动.然后Hyper-V Switch将告诉您配置的状态,而不是实际状态.
最后,我想将此状态测试合并到应用程序中,以便每个人都可以使用它.
| 归档时间: |
|
| 查看次数: |
534 次 |
| 最近记录: |