李sir_Blog

博客园 首页 联系 订阅 管理

2011年1月21日

摘要: 本文分三部分来介绍如何构造一个简单的USB过滤驱动程序,包括“基本原理”、“程序的实现”、“使用INF安装”。此文的目的在于希望读者了解基本原理后,可以使用除DDK以外最流行也最方便的驱动开发工具DriverStudio来实现一个自己的过滤驱动,并正确地安装。一、基本原理我们知道,WDM(和KDM)是分层的,在构造设备栈时,IO管理器可以使一个设备对象附加到另外一个初始驱动程序创建的设备对象上。与初始设备对象相关的驱动程序决定的IRP,也将被发送到附加的设备对象相关的驱动程序上。这个被附加的驱动程序便是过滤驱动程序。如右图,过滤驱动可以在设备栈的任何层次中插入。IO管理器发出的IRP将会沿着右 阅读全文
posted @ 2011-01-21 17:21 李sir 阅读(4749) 评论(1) 推荐(0)

摘要: 4 编译与调试环境简介4.1 源码 ps/2键盘驱动的设备栈有3层,最底层设备对象的驱动是 acpi,中间层设备对象的驱动是 i8042prt,最高层设备对象的驱动是 kbdclass。 DDK 所附的源码中有 i8042prt 和 kbdclass 的源码,分别位于 ...\NTDDK\src\input\pnpi8042 ,...\NTDDK\src\input\kbdclass 。 注意,在目前DDK所附的源码中没有 acpi 的源码,不过 acpi 对于键盘驱动几乎没有起什么作用。在DDK中可以找到一个叫acpi的目录,但那个下面并不是acpi.sys的源码,而是acpiec.sys的 阅读全文
posted @ 2011-01-21 17:14 李sir 阅读(724) 评论(0) 推荐(0)

摘要: 本文讲述Windows磁盘驱动的主要结构功能与编写方法基础。本文描述的内容仅限于软件层面,并不与具体的硬件相关。1.磁盘驱动基础 不少人把文件系统驱动和磁盘驱动混为一谈。实际上文件系统驱动应该与磁盘驱动是两类不同的驱动程序。文件系统仅仅考虑数据在存储设备上的保存格式(而不考虑具体是什么存储设备),而磁盘是存储设备的一种。 在存储设备驱动(storage driver)中,与实际的硬件设备打交道的驱动称为微端口(miniport)驱动,而更上层的驱动称为类驱动(class driver)。这里说的磁盘驱动(disk driver)是一个类驱动。类驱动具体功能通过下层的微端口驱动实现。而自己则抽象 阅读全文
posted @ 2011-01-21 16:52 李sir 阅读(4330) 评论(1) 推荐(0)