VS2017 + Vmvare 调试驱动

基础:

  1. VS2017安装成功
  2. wdk10

注意事项:
关闭 、主机 客户机 防火墙 、 互相ping都能ping通。

一、具体操作步骤

工具安装就不说了,不会的百度一下。只说一下一些关键的地方。
1、安装好虚拟机后,给虚拟机增加一个串口设备。具体操作见图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成配置后虚拟机设备配置就多了一个串行端口的设备。因为打印机用了端口1。所以设备里面显示的是串行端口2(如果想设置成端口1,把打印机设备删了在添加串口设备)。

2、配置虚拟机系统为调试模式

 以管理员身份,在虚拟机命令行模式下运行如下2个命令开启。

 bcdedit /debug on
  bcdedit /dbgsettings serial debugport:n baudrate:115200

  where n is the number of a COM port on the virtual machine.(n时虚拟机的一个COM端口号。就是设备显示的串行端口2,n就是端口2)。

3、把WDK10的虚拟机调试驱动拷贝到虚拟机中安装。
在这里插入图片描述
在这里插入图片描述
因为VS2017可以调试x86 x64两种驱动所以两个都拷贝到虚拟机安装。也可以根据需要情况安装(32位里安装x86版)
4、VS2017开发工具配置
在VS2017的菜单栏点击DRIVER–TEST–CONFIGURE 如图
在这里插入图片描述
配置界面,下面两个选项第一项由VS2017帮我们创建一个WDKuser测试账户,自动打开测试模式等。第二个是使用我们自己配置的参数。由于上面我们已经配置了串口参数 、设置了调试模式所以我们选择第二个就行了。
在这里插入图片描述
DESKTOP-1R835HV是虚拟机里安装的操作系统的计算机名

如下配置在内核模式中,选择串口、配置好波特率、勾上2个选项、管道名称、端口号。
在这里插入图片描述
在这里插入图片描述
出现上述红色框字样则说明配置已经成功了。(不要开启全局代理软件,否则会出现连接不上的问题)。

5、使用工具安装调试64位驱动
在这里插入图片描述

使用DebugView打印内核调试信息是开发驱动的非常重要的手段,但DebugView默认在WINDOWS 7和WINDOWS 10下却无法获取内核的调试日志,驱动调用KdPint/DbgPrint等的打印结果是无法被DebugView给捕捉到的。设置方法如下(复制下面的代码到txt文件。改后缀为.reg后执行,然后重启电脑):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
“DEFAULT”=dword:0000000f
还有自己编译出来的驱动要使用编译的Debug版本来测试,Release版本是不会执行KdPrint/DbgPint函数的。
在这里插入图片描述

6、在VS2017中下断点进行调试
如果你第五部已经完成了,并且在DebugView中已经能够输出调试的打印信息了,辣么骚年你已经离成功只有一部之遥了

创建一个驱动工程,WDK10提供的模板中根本没有提供NT驱动模板,我们如何创建NT驱动呢?
解决:其实虽然没有提供NT模板,但是我们可以建立WDM空模板工程,然后再自己添加文件,编译,得到的也就是NT驱动了。

在这里插入图片描述
驱动工程中会帮你建立一个inf文件,NT是使用不到的,可以直接删除。我们直接添加一个first.c

在文件中添加测试代码。

#include <ntddk.h> 

VOID DriverUnload(PDRIVER_OBJECT objDriver)
{
	// 什么也不做,只打印一行字符串
    DbgPrint("My Dirver is Ending...\r\n");
}

NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath)
{
	// 打印一行字符串,并注册驱动卸载函数,以便于驱动卸载
	DbgPrint("My Dirver Is Starting!\r\n");

	objDriver->DriverUnload = DriverUnload;

	return STATUS_SUCCESS;

}

编译,报错,没有关系,这些都是因为安全警告等级太高了,我们可以降低编译器警告等级的方式解决:
在这里插入图片描述
如果编译的时候还是出现错误 可以参照 我的另外一篇博文
https://blog.youkuaiyun.com/qq_21763381/article/details/83210572
在这里插入图片描述
辣么现在我们开始附加虚拟机的内核进行调试了。
首先把虚拟机的系统内核附加到VS2017,具体步骤见下图
在这里插入图片描述
选中内核调试模式、选自己配置的那个电脑、选中下面列表中内核。见下图
在这里插入图片描述
点击附加,然后出现下图界面,点击一下全部中断
在这里插入图片描述
在这里插入图片描述
然后我们在下面的Debugger Immediate Winddow窗口的 Kd> 一行输入命令 g 让系统运行起来。这样虚拟机中的系统又可以点击了。

最后一步了。使用我们刚刚建立的驱动工程编译出来的.sys驱动文件拷贝到虚拟机中。用第五步的工具进行安装、启动。启动的时候自动触发VS2017中的下的断点。至此可以像平时我们调试程序一样进行单步调试了。
注意事项:1、一定要拷贝Debug版本的进行调试。
2、拷贝到虚拟机中的.sys文件一定要是你源码编译出来的。如果改动了源码后一定要重新拷贝一份新的驱动文件到虚拟机中调试。否则无法触发断点的。
在这里插入图片描述
安装驱动程序
在这里插入图片描述
启动驱动程序
在这里插入图片描述
当驱动程序启动时,发现断点已经被激活了

<think>嗯,用户想比较Hyper-V和VMware虚拟化技术的区别。根据用户的问题,我需要整理两者的核心差异点。首先,我得回忆之前的引用内容,引用1提到Hyper-V是后来者但实力不容小觑,引用2则强调两者各有优势需根据需求选择。引用3补充了迁移相关的内容。 接下来需要从几个关键维度展开对比。架构方面,Hyper-V属于Type-1,直接运行在硬件上,而VMware ESXi也是Type-1,但vSphere包含更多管理组件。许可策略差异很大,Hyper-V内嵌在Windows里,ESXi则是独立产品,成本结构不同。 功能上,高可用性两者都支持,但vSphere的FT特性更成熟。存储支持方面,VMware的VSAN可能更灵活,但Hyper-V的S2D也能实现类似功能。实时迁移都是基础功能,但实现机制有差异。 管理工具部分,vCenter是成熟方案,Hyper-V则依赖System Center。生态系统方面,VMware的第三方集成更丰富,不过Hyper-V在Windows环境整合度更高。 最后要强调选择依据:用户现有环境如果是Windows为主,Hyper-V可能更省成本;追求成熟生态和高级功能则倾向VMware。迁移方面,引用3提到需要充分准备流程,这点值得提醒用户注意。</think>以下是Hyper-V与VMware虚拟化技术的核心对比分析,基于架构、功能、成本和生态系统等维度: --- ### **一、架构差异** | **维度** | **Hyper-V** | **VMware vSphere** | |----------------|------------------------------------------|----------------------------------------| | **虚拟化类型** | Type-1 裸金属架构(Windows Hypervisor) | Type-1 裸金属架构(ESXi) | | **宿主机依赖** | 需Windows Server或Windows 10/11作为底层 | 独立ESXi系统,无需宿主OS | | **内核集成** | 深度集成Windows NT内核 | 独立开发的VMkernel | --- ### **二、核心功能对比** 1. **高可用性 (HA)** - **Hyper-V**:需配合故障转移集群(Failover Clustering),故障恢复时间约30秒[^2] - **VMware**:原生HA功能,支持虚拟机自动重启(<3分钟),FT(Fault Tolerance)实现零宕机[^2] 2. **实时迁移** - 两者均支持无中断迁移(Live Migration/vMotion) - **差异**:VMware支持跨vCenter迁移;Hyper-V需System Center管理跨集群迁移 3. **存储支持** | **技术** | Hyper-V | VMware | |----------------|----------------------|----------------------| | 软件定义存储 | Storage Spaces Direct | vSAN | | 最大单磁盘容量 | 64TB | 62TB | | 存储迁移协议 | SMB 3.0, iSCSI | NFS, iSCSI, FC | --- ### **三、许可与成本** | **项目** | **Hyper-V** | **VMware vSphere** | |------------------|--------------------------------------|----------------------------------| | 基础许可 | 免费(Windows Server内置) | ESXi免费版(功能受限) | | 企业级许可 | Windows Server Datacenter版包含 | vSphere Standard ~ Enterprise+ | | 典型成本案例 | 16核服务器授权≈$6,000 | 同等配置vSphere≈$15,000[^2] | | 管理套件 | System Center(额外授权) | vCenter Server(独立授权) | > 💡 注:VMware高级功能(如DRS、存储vMotion)需Enterprise Plus授权 --- ### **四、生态系统与管理** | **领域** | Hyper-V优势 | VMware优势 | |------------------|--------------------------------------|----------------------------------| | **操作系统支持** | 最佳Windows兼容性,Linux支持改进中 | 全平台支持(含Unix、MacOS) | | **容器集成** | 原生支持Windows容器及Docker | 需vSphere with Tanzu扩展 | | **混合云** | 无缝对接Azure(Azure Stack HCI) | 支持AWS、Azure、GCP多云连接 | | **管理工具** | Windows Admin Center(免费) | vRealize Suite(高级自动化) | --- ### **五、典型应用场景** - **选Hyper-V当**: ✓ 现有Windows Server环境主导 ✓ 预算敏感且需基础虚拟化 ✓ 深度集成Azure云服务 - **选VMware当**: ✓ 企业级高可用性需求(如金融系统) ✓ 异构操作系统环境(Linux/Unix占比高) ✓ 需要高级DRS、存储策略管理 --- ### **迁移注意事项**[^3] 1. **虚拟机格式转换**: - 使用`Microsoft Virtual Machine Converter`将VMware VMDK转VHDX - 注意虚拟硬件版本兼容性(如SCSI控制器差异) 2. **网络重构**: - VMware分布式交换机需转为Hyper-V虚拟交换机 3. **安全策略迁移**: - NSX规则需手动映射到Hyper-V网络虚拟化策略 > ⚠️ 关键提示:VMware工具(VM Tools)必须在迁移后卸载,安装Hyper-V集成服务 ---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值