520楼#
发布于:2002-10-25 13:42
Windows 3.0,并在Windows 95和Windows 98中沿用。
|
|
521楼#
发布于:2002-10-25 13:43
Windows98并不象Windows 2000那样统一有序的处理I/O请求。Windows98在处理磁盘、串口、键盘等
|
|
522楼#
发布于:2002-10-25 13:43
等这些不同的设备时采用的机制有很大不同。并且如图3所示,Windows98在处理32位和16位应用的I/
|
|
523楼#
发布于:2002-10-25 13:44
O请求时,采用的方法也是根本不同的。图3中的左列展示了系统是如何处理32位应用的I/O请求的。在
|
|
524楼#
发布于:2002-10-25 13:44
Windows98中,对于不同的设备,应用程序采用不同的机制来和驱动程序进行交互。应用程序可能调用一
|
|
525楼#
发布于:2002-10-25 13:45
个Win32 API例如ReadFile来读设备,但这些设备仅包括磁盘文件,串口,和一些由WDM驱动程序驱动
|
|
526楼#
发布于:2002-10-25 13:45
的设备。但对于其它设备,应用程序只能通过基于DeviceIoControl的一些特别的机制来和设备通讯。即使
|
|
527楼#
发布于:2002-10-25 13:45
是同样调用ReadFile,应用程序使用一种机制来和磁盘驱动交互,采用另一种机制和串口驱动通讯。而由
|
|
528楼#
发布于:2002-10-25 13:46
WDM驱动的设备的I/O请求方法和前两种又有本质的不同。
|
|
529楼#
发布于:2002-10-25 13:46
图3的中列和右列展示了系统是如何处理16位(Windows 3.1)和DOS应用程序的I/O请求的。在两种情
|
|
530楼#
发布于:2002-10-25 13:46
况下,应用程序都直接或间接的和用户态驱动程序进行交互,用户态驱动程序将请求传递到核心态虚拟设
|
|
531楼#
发布于:2002-10-25 13:46
备驱动,再由核心态虚拟设备驱动代理应用程序和硬件直接交互。
|
|
532楼#
发布于:2002-10-25 13:47
虽然在Windows 2000中以一种统一的方式(IRP)在内核中传递I/O操作,但在Windows 98中,即使在
|
|
533楼#
发布于:2002-10-25 13:47
核心态也没有统一方法的来代表I/O请求。
|
|
534楼#
发布于:2002-10-25 13:47
但对于WDM驱动程序来说,Windows 98在处理方式上通过一个系统模块(NTKERN.VXD)来模仿
|
|
535楼#
发布于:2002-10-25 13:48
Windwos 2000内核的处理方法。这个模块提供了Windows 2000内核的大部分服务例程的仿真,并模拟I/
|
|
536楼#
发布于:2002-10-25 13:48
O管理器来产生和发送IRP。WDM驱动程序几乎无法区分两种平台的差异。
|
|
537楼#
发布于:2002-10-25 13:49
图3 Windows98 I/O请求简化模型
|
|
538楼#
发布于:2002-10-25 14:14
分啊!
|
|
539楼#
发布于:2002-10-25 14:16
快的放啊!
|
|