文档详情

Delphi5企业级解决方案及应用剖析(十四).pdf

发布:2019-10-07约3.75万字共23页下载文档
文本预览下载声明
下载 第14章 硬件接口程序应用剖析 本章主要介绍如何在Wi n d o w s 的设备驱动程序(* . v x d 、* . d r v)之上,应用Delphi 5 开发自己 的应用程序。 14.1 Windows驱动程序的开发 首先让我们看一看设备驱动程序和操作系统的关系。设备驱动程序提供连接到计算机硬 件的软件接口,它是操作系统的一个部分。用户应用程序以一种规范的方式访问硬件,而不 必考虑必须如何控制硬件。 驱动程序是一个软件,在装入后成为操作系统的一部分,它使一个或多个设备可用于用 户态程序员,每个设备代表一个物理的或逻辑的硬件。例如,一个物理硬盘可以看成两个逻 辑盘C和D 。 在Wi n d o w s 中,驱动程序总是使设备看起来像是一个文件,可以打开设备的一个句柄, 然后应用程序可以在设备句柄最后关闭之前向驱动程序发出读写请求。 Wi n d o w s驱动程序模 型有两个不同的但同样重要的方面。首先,核心模型描述设备驱动程序的标准结构;其次, M i c r o s o f t为常见的设备提供一系列的总线驱动程序和类驱动程序。 目前,在计算机应用系统的开发中,经常要在 Wi n d o w s 环境下对具有特定功能的硬件电 路进行直接访问与控制。比如一个数据采集卡上的 R A M直接映射主机R A M一端内存地址,要 想存取这段内存数据,就必须对特定地址的内存直接操作。在 Wi n d o w s环境下C P U运行于保 护模式且统一管理硬件资源,执行于 3级的应用程序代码直接访问硬件或访问自身进程以外的 内存受到限制,一般是通过调用执行于 0级的设备驱动程序提供的各种服务和 A P I 间接地对系 统资源进行访问。这一机制确保了系统的安全。因此在 Wi n d o w s环境下,开发直接访问硬件 的设备驱动程序是目前许多计算机硬件设备开发者必须面临的问题。这也是解决物理内存直 接访问的根本方法。 运行于Windows 95 的设备驱动程序称为虚拟设备驱动程序( V X D ),设备的虚拟功能允 许Windows 95 在不同的虚拟机器之间共享设备。现在已有此类设备驱动程序产品问世,这些 程序能支持 D e l p h i 等语言。为研制计算机控制下的专用硬件系统,需要开发自己的设备驱动 程序,下面介绍V X D概念和用V t o o l s D开发直接物理内存访问的V X D 方法。 V X D是工作于保护模式下的动态链接库,其功能特性在于它能够实现 Windows 95 操作系 统功能的无缝扩展。可以实现许多通常应用程序无法实现的功能与资源管理。其执行代码处 于同操作系统一致的优先级上,从而使它们具有强大的作用和影响力。所有 V X D 的运行都处 于称为虚拟机管理程序( V M M )的操作系统部件管理之下,V M M 的作用是提供虚拟机环境, 负责多线程的占先事件片的调度,以及管理虚拟内存和系统初始化等。 利用V X D ,用户可以调用V M M 的服务完成内存访问、硬件中断处理、创建网络协议堆栈 等。正是V M M和V X D构成了Windows 95 的r i n g 0级的系统核心。 在1 6位Windows 3.x 中,V X D程序一般具有后缀名 . 3 8 6 ,并在s y s t e m . i n i文件的[ 3 8 6 E n h ]节 第14章 硬件接口程序应用剖析 389 下载 中静态加载。这些驱动程序仍然可以运行于 Windows 95/98 系统中。在Windows 95 中V X D具 有后缀名 . v x d 。开发者通过创建i n f文件实现硬件的即插即用, V X D可以被动态地加载或卸载, 这样节省了宝贵的内存资源。 每个虚拟机首先声明一个虚拟机的名字、版本号、初始化过程、虚拟机控制程序(相当 于程序入口)。有些设备驱动程序还可以声明设备标志号和接口函数。例如下例: Declare-Virtual-Device VSAMPLED,4.0, VSAMPLED-Congtrol,\ VSAMPLED-Device-ID, VSAMPLED-Init-Order,\ VSAMPLED-V86-API-
显示全部
相似文档