Windows/驱动
imxiangzi
这个作者很懒,什么都没留下…
展开
-
《Windows驱动开发技术详解》之读写操作
缓冲区方式读写操作设置缓冲区读写方式:读写操作一般是由ReadFile和WriteFile函数引起的,这里先以WriteFile函数为例进行介绍。WriteFile要求用户提供一段缓冲区,并且说明缓冲区的大小,然后WriteFile将这段内存的数据传入到驱动程序中。这种方法,操作系统将应用程序提供缓冲区数据直接复制到内核模式的地址中。这样做,比较简单的解决了将用户地址传入驱转载 2017-08-27 13:47:41 · 2325 阅读 · 0 评论 -
[Windows驱动开发](一)序言
笔者学习驱动编程是从两本书入门的。它们分别是《寒江独钓——内核安全编程》和《Windows驱动开发技术详解》。两本书分别从不同的角度介绍了驱动程序的制作方法。 在我理解,驱动程序可分为两类三种: 第一类:传统型驱动 传统型驱动的特点就是所有的IRP都需要自己去处理,自己实现针对不同IRP的派发函数。其可以分为以下两种:转载 2017-08-27 13:48:31 · 271 阅读 · 0 评论 -
[Windows驱动开发](二)基础知识——数据结构
本节主要介绍驱动开发的一些基础知识。 1. 驱动程序的基本组成 1.1. 最经常见到的数据结构 a. DRIVER_OBJECT驱动对象[cpp] view plain copy// WDK中对驱动对象的定义 // 每个驱动程序都会有一个唯一的驱动对象与之对转载 2017-08-27 13:49:21 · 288 阅读 · 0 评论 -
[Windows驱动开发](三)基础知识——驱动例程
一、NT式驱动的基本例程1. 驱动入口函数——DriverEntry[cpp] view plain copy// 驱动程序的一般性定义 NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath);转载 2017-08-27 13:50:42 · 378 阅读 · 0 评论 -
[Windows驱动开发](四)内存管理
一、内存管理概念1. 物理内存概念(Physical Memory Address) PC上有三条总线,分别是数据总线、地址总线和控制总线。32位CPU的寻址能力为4GB(2的32次方)个字节。用户最多可以使用4GB的真实物理内存。PC中很多设备都提供了自己的设备内存。这部分内存会映射到PC的物理内存上,也就是读写这段物理地址,其实读写的是设备内存地址,而不是物理内存地址。转载 2017-08-27 13:51:39 · 312 阅读 · 0 评论