40楼#
发布于:2002-11-13 07:33
位其它驱动层次之间,并添加一些功能。在设计过程中,有一个原则就是不影响其它层次的功能。常见的例子是防火墙,底层实现其实是一种中间层过滤器驱动程序,负责检查IP包的进出情况,允许合法的包通过,阻止非法的包通过。
|
|
41楼#
发布于:2002-11-13 07:33
最底层的驱动程序在收到IRP后,通过硬件抽象层,然后与硬件发生作用,从而完成I/O请求工作。在这样的架构下,Windows 2000( or NT)上面的层就不需要对应每个操作系统都要开发一遍了。所以微软认为在Windows2000 x86平台下开发的驱动和其它CPU平台下Windows 2000源
|
|
42楼#
发布于:2002-11-13 07:34
从图中我们可以看到,处于最下层的是总线驱动程序,上面是功能驱动程序。在总线驱动程 |
|
43楼#
发布于:2002-11-13 07:35
总线驱动程序负责列举设备,也就是说,它负责发现总线上的所有设备并检测设备何时添加到总线上或何时从总线上删除。总线驱动程序每发现一个设备就创建一个对应的物理设备对象。一些总线驱动程序只是简单地控制对总线的访问权。我们知道,一旦拥有总线权时,我们就可以完成
|
|
44楼#
发布于:2002-11-13 07:35
功能驱动程序负责完成特定的功能,知道如何控制设备工作。它在驱动程序栈中位于总线驱 |
|
45楼#
发布于:2002-11-13 07:35
在驱动程序栈中,可以插入各种类型的过滤驱动程序。对于总线上的所有设备,总线过滤驱动程序被添加在总线驱动之上;而对于一个特定类的所有功能的功能驱动程序添加类过滤驱动程序。设备过滤驱动程序仅对特定的设备添加。上层的过滤驱动程序添加在功能驱动程序之上,
|
|
46楼#
发布于:2002-11-13 07:35
而低层的过滤驱动程序添加在功能驱动程序下面。
在WDM驱动体系中,为了实现上面所说的分层思想,也为了简化驱动程序的编写,预先提供了几种类驱动程序和总线驱动程序。主要包括如下几类: |
|
47楼#
发布于:2002-11-13 07:36
一、 人工输入设备(HID)类驱动程序
人工输入设备类驱动程序提供输入设备的一个抽象接口。实际的输入硬件可以使用不同的方法连接。这些方法被HID类驱动程序隐藏。如果是USB总线的人工输入设备,有可能要调用USB总线驱动程序,但HID类驱动提供给上层的接口是相同的,不因为底层接口的改变而有所不同。 二、 静态图象体系 |
|
48楼#
发布于:2002-11-13 07:37
还有一点必须明白,那就是I/O管理器向设备驱动程序栈发送的IRP是从栈顶进入的,理解这点很重要。这样,当用户向I/O管理器请求了它要访问的功能设备时,I/O管理器将保证它的 |
|
49楼#
发布于:2002-11-13 07:38
备还只能使用VXD体系。如串口驱动和文件系统驱动等。
从上面我们已经知道wdm究竟是怎么回事,接下来让我们看看在Windows2000操作系统中有哪些 |
|
50楼#
发布于:2002-11-13 07:38
驱动程序。请见图三。
? 虚拟设备驱动程序(VDD)是一个用户模式部件,它可以使DOS应用程序访问x86平台上的硬件。VDD通过屏蔽I/O权限掩码来捕获端口存取操作,它基本上是模拟硬件操作,这对于那些 |
|
51楼#
发布于:2002-11-13 07:38
中共享一个名称并且有相同的功能,但实际上它们完全不同。我们用VDD缩写代表这种驱动程序,用VxD缩写代表Windows 98中的虚拟设备驱动程序,以示区别。
|
|
52楼#
发布于:2002-11-13 07:39
即用协议的内核模式驱动程序。准确地说,本书涉及的所有内容都是面向PnP驱动程序的。
|
|
上一页
下一页