一、标准化程序入口

标准化程序入口代码如下:

#include <ntifs.h>
NTSTATUS
DriverEntry(_In_ PDRIVER_OBJECT DriverObject,_In_ PUNICODE_STRING RegistryPath
)
{return 0;
}

但是这样编译是有错误的,如下图:

解决方法有2个:

1、在属性页把警告视为错误设置为否。如图:

2、或者在代码里使用这两个参数,DriverObject和RegistryPath。代码如下:

#include <ntifs.h>NTSTATUS
DriverEntry(_In_ PDRIVER_OBJECT  DriverObject,_In_ PUNICODE_STRING RegistryPath
)
{DriverObject; //使用一下,解决编译错误RegistryPath;return 0;
}

二、KdPrint()函数

KdPrint使用方法类似C语言的Printf,打印输出信息用的。不同的是KdPrint是宏,使用时需要使用双括号。例如:

KdPrint(("Hello world"));

三、虚拟机里加载驱动

接着上面先编译一下,完整代码如下图:

根据这个路径找到这个文件,把这个文件复制到虚拟机里面。打开DebugView,把捕获内核信息的选项勾上。如图:

打开加载驱动的工具 DriverMonitor,具体操作如下图:

驱动加载成功,如图:

今天的这节课就到这里,希望看到此章的朋友给个赞吧!谢谢!有不懂的可以留言,粉丝必答。

Windows驱动开发第4课(标准化程序入口,Kdprint()函数,虚拟机里加载驱动)相关推荐

  1. Windows驱动开发第10课(R3与R0通信交换数据第一节)

    首先,先解释一下R3与R0是什么意思,R是Ring的首字母(中文:环).在计算机技术里把对CPU的访问控制的权限抽象成一环套着一环,分为4个级别,Ring0-Ring3.Ring0层拥有最高的权限,在 ...

  2. windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇

    之所以分解来写,是因为在写的过程中会有些穿插的工作,希望能够尽量写的更细节一些. 上篇说的是本地存储的XML和DataSet之间的交互,现在我们来看看windows mobile 是如何与数据库进行交 ...

  3. i.MX 6ULL 驱动开发 二十九:向 Linux 内核中添加自己编写驱动

    一.概述 Linux 内核编译流程如下: 1.配置 Linux 内核. 2.编译 Linux 内核. 说明:进入 Linux 内核源码,使用 make help 参看相关配置. 二.make menu ...

  4. 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)网购链接

    <Linux设备驱动开发详解:基于最新的Linux 4.0内核> china-pub   天猫     dangdang   京东 China-pub 8月新书销售榜 推荐序一 技术日新月 ...

  5. 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)进展同步更新

    本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 目前已经完成稿件. 2015年8月9日,china-pub开始上线预售: http://product.china-pub ...

  6. windows驱动开发第12课(R3与R0通信之写入数据)

    在上一节课我们使两边的控制码对应上了,这节课我们来实现向驱动层写入数据. 知识点:和IRP有关的系统缓冲区 pirp->AssociatedIrp.SystemBuffer; //和IRP有关的 ...

  7. windows mobile开发循序渐进(5)移动应用程序与webservice之间的数据交互

    上篇遗留问题: 在使用数据库方面,egmkang和瑞雪年给了不少建议,我也测试了SQLite的使用,在对SQL Server CE的查询方面,egmkang的性能方面的测试代码也运行了一遍,很感谢你们 ...

  8. 修炼九阴真经Windows Phone开发 (7):本地化应用程序栏Localizing an Application Bar 下...

    本节介绍另一个本地化的方法: 在项目中添加资源文件:(这个文件将包含应用程序的默认语言的资源) 将要名称和值添加进去.(作为应用程序中向用户显示字符串值). 重复上面的方法,向项目中添加更多的其它语言 ...

  9. Linux驱动开发学习笔记【12】:Linux自带LED灯驱动

    目录 一.内核自带LED驱动使能 二.内核自带LED驱动分析 三.内核自带LED驱动使用 一.内核自带LED驱动使能 在Linux内核中,已经自带了LED灯的驱动程序,使用的就是platform平台驱 ...

最新文章

  1. Centos 6.8 搭建owncloud 私有云盘
  2. 深入理解 SpringBoot 启动机制(starter 机制)
  3. 链接器ld程序的脚本文件u-boot.lds(二)
  4. Mozilla开发全新的公开网络API WebXR 来实现增强现实
  5. Shell脚本中$的用法
  6. delphi中的copy,delete,pos和leftstr,RightStr的用法
  7. python多级字典嵌套_使用pythonscsv DictReader创建多级嵌套字典
  8. 【CodeForces - 124C】Prime Permutation(数学,思维,小结论)
  9. uniapp 中 下拉刷新和上拉加载 需要手动在page.json中开启
  10. 11月百度凤巢升级后的变化
  11. linux下 gdb+coredump 调试偶发crash的程序
  12. 关于各种无法解析的外部符号问题的相应解决方案【转】
  13. python将图片转换为Framebuffer裸数据格式(终端显示图片)
  14. 剑指offer面试题[32]:从1到n整数中1出现的次数
  15. [渝粤教育] 西南科技大学 程序设计语言VB 在线考试复习资料(2)
  16. String类中重写Object中的equals方法源码解析
  17. mysql删表重来_BeetlSQL自定义NameConversion去除Pojo和表前缀
  18. 新手经常忽略的嵌入式基础知识点,你都掌握了吗?
  19. win10如何做服务器双系统,双系统怎么做?Win7+Win10 双系统安装图文教程
  20. Xilinx SDSoc 加载opencv库

热门文章

  1. Android横幅通知栏自定义
  2. 深度学习多模态融合_多模态深度学习综述.PDF
  3. 【English】5.14
  4. 戏说安防“三国”—— 海康/大华/宇视
  5. 企业邮箱邮件阅读时出现乱码的原因及处理方法
  6. android6.0 微信支付,Android - 微信支付
  7. 【Neuralink与大脑的神奇未来】Part 6:大融合
  8. ZYNQ有两个CPU?(三)——SGI异步通信
  9. 怎么在PDF上编辑文字?其实编辑方法很简单
  10. Qt+VS 自定义对话框 九宫格手势解锁