- 博客(9)
- 资源 (1)
- 收藏
- 关注
转载 设备对象
设备对象的结构体中有3个域(1)DriverObject。这个比较好理解。就是这个设备对象所属的驱动对象。毕竟设备对象是由驱动对象创建的。(2)NextDevice。指向下一个设备对象。这里的指向:指的是由同一个驱动对象的创建的设备对象。他们之间由NextDevice形成链表。我们可以枚举这些设备。红色的“链表”很重要!!(3)AttachedDevice。
2017-07-21 15:58:58 358
原创 Windows驱动程序的加载
NT式驱动程序的加载1. 用DriverMonitor工具加载NT式驱动2. 在注册表中填写相应的字段,Windows对NT式驱动程序的加载,是基于服务的方式加载的,类似于Windows服务程序的加载。设备驱动程序的动态加载主要是基于服务控制程序(Service Control Manager,SCM)系统组件完成的。SCM组件为Windows中运行的组件提供许多服务,例如,启动,停止
2017-07-21 15:12:49 7128
原创 NT驱动程序和WDM驱动程序的区别
1.Windows驱动程序分为两类,一类是不支持即插即用功能的NT式的驱动程序;另一类是支持即插即用功能的WDM式的驱动程序。2.NT式的驱动程序要导入的头文件时NTDDK.H,而WDM式的驱动要导入的头文件为WDM.H.3.DriverEntry需要放在INIT标志的内存中。INIT标志指明该函数只是在加载的时候需要载入内存,而当驱动程序加载成功后,该函数可以从内
2017-07-21 13:59:27 3517
原创 Windows驱动程序运行时函数的调用
编译器厂商一般在发布其编译器的时候,会连同运行时函数一同发布。Windows驱动程序不能再代码中使用编译器提供的运行时函数,因为大部分运行时函数是基于Win32 API实现的,由于Win 32 API运行在用户模式(RIng3层),驱动程序运行在内核模式(RIng0层),运行在内核模式下的程序不能调用用户模式下提供的API函数的。当然一些少部分的运行时函数并没有调用Win32 API,我们依然可以
2017-07-21 12:15:22 2676
原创 Windows驱动程序调用约定
调用约定是指在函数进行调用的时候,会根据不同的调用规则,翻译成不同的汇编代码。不同的调用约定,会有不同的参数的入参顺序,和调用堆栈的处理方式。比较常用的分为C语言调用约定_cdecl,和标准调用约定_stdcall.Windows驱动程序的调用约定为标准调用_stdcall,尤其是驱动程序的入口点函数DrivereEntry,系统会寻找DriverEntry@8作为驱动程序的入口地址
2017-07-21 12:02:51 547
原创 Windows驱动程序开发语言
Windows驱动程序和Win32应用程序一样,都是PE格式,所以说,只要某种语言的编译器能够编译出PE格式的二进制格式文件,并且能够设置驱动程序的入口地址,那么这种语言就可以用来开发Windows驱动程序,所以可以选择C,C++,甚至是Delphi开发。但是由于微软提供的DDK开发环境中的头文件和链接库都是只支持C,C++。因此,大部分时候Windows驱动程序都是用C/C++进行开发的
2017-07-21 11:43:23 2496
转载 中断处理程序与中断服务例程
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]1 什么是中断2中断处理程序3中断服务例程4request_irq函数分析1. 什么是中断简单来说中断就是硬件设备与处理器的一种交流方式,比如当我按下一个键时,只有当处理器知道我按下了这个键并且做出相应的处理时,按键这个操作才是有效的。我们知道处理器的速度远远高于外围设备
2017-07-20 11:27:21 7031
转载 Win10下VS2015(WDK10)驱动开发环境配置
1、 概述微软在”WDK7600“以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VisualStudio,然后再从微软官网下载集成的WDK开发包、或者离线安装包,但是安装后Visual Studio就集驱动程序开发,编译,安装,部署和调试于一身,使得Windows驱动程序开发会变得更容易。对于Windows 10和Visual Studio2015驱动开
2017-07-10 14:42:37 7030 1
转载 Windows驱动开发如何入门
http://blog.csdn.net/charlessimonyi/article/details/50904854
2017-07-10 11:33:21 258
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人