摘要:
笔者学习驱动编程是从两本书入门的。它们分别是《寒江独钓——内核安全编程》和《Windows驱动开发技术详解》。两本书分别从不同的角度介绍了驱动程序的制作方法。 在我理解,驱动程序可分为两类三种: 第一类:传统型驱动 传统型驱动的特点就是所有的IRP都需要自己去处理,自己实现针对不同IRP的派发函数。其可以分为以下两种: 1. Nt式驱动:此驱动通过注册系统服务来加载,并且不支持即插即用功能(即没有处理IRP_MJ_PNP这个IRP)。 2. WDM驱动:此驱动不通过注册系统服务来加载,需啊哟自己编写inf文件。同时,它与NT式驱动相比最大的特点就是支持即插即用功能。 第二类:微... 阅读全文
摘要:
本节主要介绍驱动开发的一些基础知识。 1. 驱动程序的基本组成 1.1.最经常见到的数据结构 a.DRIVER_OBJECT驱动对象[cpp]view plaincopy//WDK中对驱动对象的定义//每个驱动程序都会有一个唯一的驱动对象与之对应//它是在驱动加载时被内核对象管理程序创建的typedefstruct_DRIVER_OBJECT{CSHORTType;CSHORTSize;////Thefollowinglinksallofthedevicescreatedbyasingledriver//togetheronalist,andtheFlagswordpro... 阅读全文