开发工具:Visual Studio 2015 企业版

目 标 机:Windows XP X86

前提:我们已经成功安装了Visual Studio 2015以及WDK,而且更重要一点是一定要SDK版本和WDK版本保证一致,如果不一致会造成Visual Studio 2015里面C/C++的宏定义和使用的WDK不匹配,严重影响驱动程序的编译!关于这个问题,可以看这篇文章:http://www.cnblogs.com/sunylat/p/6286527.html

本博客所有相关工具和源码下载:http://download.csdn.net/detail/sunylat/9740475

一,建立和编译张帆的NT式驱动:VS2015里面没有NT式驱动的工程模板,看我是如何一步步操作的!

1,新建一个WDM的空工程!!!选择好工程路径,填写工程名称为“HelloDDK”,随后点击“确定”按钮。

2,直接拷贝张帆的第一个NT式驱动源代码到我的工程里。

3,在我的工程里,把拷贝进来的头文件和源代码文件加入到工程里。

4,删除建立WDM工程时候自动生成的“HelloDDK.inf”文件。

A,

B,点击“删除”按钮才是彻底从工程里面删除掉!

5,尝试编译,但是失败了!

6,在工程上鼠标右键,点击“属性”,修改“Driver Settings”,按照截图当中那样修改,随后点击“确定”按钮。

7,继续尝试编译,又失败了,继续修改属性去。

8,在工程上鼠标右键,点击“属性”,修改“C/C++”,按照截图当中那样修改,随后点击“确定”按钮。

9,尝试编译,终于成功编译了!!!

二,在Windows XP中安装NT式驱动:先把安装和捕获驱动信息的工具放到Windows XP中,这两个工具都在本博客提供的打包文件中。

1,

A,打开“Dbgview.exe”,开始捕获驱动调试信息;

B,随后打开“KmdManager.exe”,点击菜单顶部右侧的选择驱动程序按钮,随后找到我们要安装的驱动程序,点击“打开”按钮,开始安装。

2,“KmdManager.exe”显示驱动安装成功了!“Dbgview.exe”也捕获到了驱动调试信息!

3,在我的电脑鼠标右键,点击“管理”,在设备管理器上面点击鼠标右键,随后点击“查看”,在展开的菜单中选择“显示隐藏的设备”。

4,点开“非即插即用驱动程序”,查看是否有“HelloDDK”这个驱动程序,它是我刚刚安装的驱动程序,如果没有,在“非即插即用驱动程序”上面鼠标右键,随后点击“扫描检测硬件改动”,这个时候就应有“HelloDDK”这个驱动程序了!

5,打开“HelloDDK”驱动程序,确认一下,确实是我开发和安装的张帆的第一个NT式驱动程序!!!!!

用Visual Studio 2015 编译张帆的第一个NT式驱动,并且成功安装到Windows XP里面!!!的更多相关文章

  1. 用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面!!!

    开发工具:Visual Studio 2015 企业版 目 标 机:Windows 10 X86 前提:我们已经成功安装了Visual Studio 2015以及WDK,而且更重要一点是一定要SDK版 ...

  2. Visual Studio 2015 编译错误 File 的值+乱码的解决方法

    ======================================== VS2015调试项目时,会报莫名奇妙的错误,如下图所示: 程序编译,提示有错误:Visual Studio 2015 ...

  3. Visual Studio 2015编译安装配置QT5.5.1(含QTWEBKIT)

    尽管QT5.5.1和VisualStudio 2015都已经发布很久了,但是QT项目组视乎不会为QT5.5.1专门发布预编译的QT5.5.1 for windows(2015)版本的,也不会专门发布V ...

  4. Visual Studio 2015编译wxWidgets

    宫指导说,换帅如换刀 程序员的编译器一换,基本套路必须都重练几次 使用wxWidgets并不难,但不能使用现有的库和工程配置文件,细节就必须理清楚 获取wxWidgets 官方的下载页面,下7z或zi ...

  5. QT5.7.0在win10下使用visual studio 2015编译(目标平台 xp)

    环境:win10+vs2015+QT5.7.0 目标:编译出能在windows xp上运行的QT 通过baidu和bing找出来的结果没有一个能成功运行,大部分都能编译成功,并完美解决“exe不是有效 ...

  6. Visual Studio 2015 编译错误【错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. 】的解决方案

    错误提示信息: 错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s inst ...

  7. Visual Studio 2015编译Lua 5.3.4遇到的坑

    被坑的不浅,遇到错误:" LNK1561:必须定义入口点",解决方案删除再建,步骤一遍一遍操作,还是报错.如下图所示: 首先,它必须要改成DLL或者LIB(动态/静态库),如果是应 ...

  8. 使用 Visual Studio 2015 编译 QT 工程

    简单进行一下几步就可以了 1.下载源代码 qt-everywhere-opensource-src-5.6.0-alpha.7z .解压到 D:\ToolKits\5.6.0\src 目录下2.网站 ...

  9. 用Visual Studio 2015成功编译、发布UMDF驱动到目标机!!

    开发工具:Visual Studio 2015企业版 主      机:windows10 X64企业版,主机是安装了Visual Studio 2015的操作系统,主要进行驱动开发和调试. 目  标 ...

随机推荐

  1. Elasticsearch 搜索引擎

    简介: Elasticsearch 是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据.它可以用于全文搜索,结构化搜索以及分析.    分布式实时文件存储,并将每一个字段都 ...

  2. 【297】IDL 过程、函数&关键字参数

    目录: 一.Procedure 1.1 基本说明&定义 1.2 关键字参数 二.Function 2.1 基本说明&定义 2.2 关键字参数 参考:IDL中函数中的带有关键字的参数的使 ...

  3. Centos7 配置

    参考文章: http://www.hksilicon.com/kb/articles/594621/CentOS-7 1. 查看时区是否正确timedatectl,若不正确则设置时区 timedate ...

  4. java 项目的jar 反编译后 压缩回去 命令

    jar -cvfm0 123.jar    META-INF\MANIFEST.MF(配置文件第一个位置) BOOT-INF org

  5. 使用Cloudrea Manager在CDH集群中添加kafka服务节点,更改borker.id配置后无法启动

    需要保证meta.properties文件中的broker.id和cloudrea manager的web页面上kafka配置的broker.id一致,最好让server.properties中的br ...

  6. 01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述

    lucene-core-2.4.1.jar是lucene开发的核心jar包,lucene-analyzers-2.4.1.jar也是必不可少的.lucene-highlighter-2.4.1.jar ...

  7. 微信小程序文档里看不到的小Tips

    前几天折腾了下.然后列出一些实验结果,供大家参考. 0. 使用开发工具模拟的和真机差异还是比较大的.也建议大家还是真机调试比较靠谱. 1. WXML(HTML) 1.1 小程序的WXML没有HTML的 ...

  8. 对图片进行X,Y轴的翻转,黑白色转变

    做完了修改图片的程序.用的Winfrom做的.昨天基本完成,记录一下使用的东西. 首先是将需要加载的图片放入picturebox控件,这里用到了openfiledialog 打开文件对话框 strin ...

  9. Java中的并发工具类:CountDownLatch、CyclicBarrier和Semaphore

    在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法. 一. ...

  10. /var/run/yum.pid被锁定

    当执行yum update时出现: /var/run/yum.pid已被锁定,PID为1610的另一个程序正在运行. 另外一个程序锁定了yum:等待它退出...... 解决办法 rm -f /var/ ...