Windows下的接口调用方法,设备驱动方法和COM编程技术

  • 格式:doc
  • 大小:73.00 KB
  • 文档页数:9

信息学院微机原理与接口技术

自主学习报告

报告名称:Windows下的接口调用方法,

设备驱动方法和COM编程技术

姓名:

学号:

专业:

班级:

时间:2010年6月15日星期二

摘要 Windows操作系统是一个采用图形界面的、多任务的操作系统。这个系统不同于单用户的操作系统DOS,她的多任务特性,决定了系统的资源是有各个任务共享而不是独占的。为此,Windows的体系结构也与DOS的体系结构完全相同。

Abstract

Windows operating system is a graphical interface, multi-tasking operating

system. This system is different from the single-user operating system, DOS,

her multi-tasking features, determine the system's resources are shared in

various tasks, rather than exclusive. To this end, Windows system structure

and architecture of DOS is identical

目 录

摘要........................................................................................... Abstract……………………………………………………………….

第一章Windos下的接口调用………………………………………

2.1 接口调用 的概念及特点……………………………………...

第二章 设备驱动………………………………………………….

3.1 为什么需要设备驱动………………………………………………

3.2 什么是设备驱动程序…………………………………………….

3.3 设备驱动程序编写简介……………………………………………..

第三章 COM编程技术…………………………………………..

4.1 COM的概念……………………………………………………

4.2 COM对象……………………………………………………..

4.3 COM接口………………………………………………………

4.31 从API到COM接口…………………………………………

4.32 COM接口的定义和标识…………………………………..

第四章 结论………………………………………………………

第一章Windos下的接口调用 一、windows下的接口调用

1、 Windows的体系结构

在windows体系结构中,分为用户和系统内核两个不同的层次,这是windows操作系统为了对系统资源进行安全有效的管理,使用了cpu在不同运行空间的不同运行管理权,在windows系统的核心管理进程内包含虚拟内存管理、运行管理、系统任务分发管理等最重要系统的核心功能,也包括了一些与核心功能机密相关,为了提高系统效率的内核win32子系统功能。

2、 windows操作系统的内核进程

windows9x的内核进程

系统核心进程是有虚拟设备驱动层VXD和虚拟机管理层构成的。虚拟设备驱动层是为了在多任务的模式下,使硬件系统给多个不同的任务以统一的使用模式。首先为硬件提供多任务的支持,对于实际上是共享的硬件设备,使每个任务就如同设备是被自己独占使用一样;其次是要增强操作系统对于硬件设备的适应能力。早VXD中的X是指某类设备。

VXD的功能对于每一个用户任务来说,很大程度上类似于单任务DOS环境下的BIOS。而且,一些在DOS环境下的单任务硬件驱动程序,如果可以加入VXD支持,也可在Windos9X环境中应用。

Windows NT 的内核进程

微核是一些被操作系统内核调用的微型软件模块,称为操作系统的原子功能模块。微核的作用是为操作系统中所有低层次的通用功能提供支持,每个设备驱动都调用了大量的微核操作来完成自己的功能。微核层的实现与具体的CPU系列相关,配合硬件抽象层HAL,可共同完成Windos NT操作系统与硬件平台的无关性。微核层代表了同样能够的驱动操作,而微核层之下的实际硬件平台功能是由HAL将一组标准的驱动程序与硬件相关的不同驱动操作来实现。因此,对于微核层之上的操作系统来说,只存在一个完全相同的虚拟硬件平台。从这里可以看到,微核与HAL就是Windows NT操作系统与具体硬件平台的接口。

位于设备驱动程序层之上的是可执行层。与Windows 9X 类似,在可执行层内,除了有系统管理服务的分发、内存分页管理等操作系统的内核重要模块外,还包括一些操作系统的的主要部件。他们主要包括:I/O管理器、对象管理器、安全引用监视器、进程管理器、局部过程调用的、内存管理器和高速缓冲管理器、Win32 支持部件。

第二章 设备驱动方法

3.1 为什么需要设备驱动

从 Windows 3.1 开 始 , 对 于 硬 件 设 备 的 访 问 便 采 取 了 一

种 设 备 驱 动 程 序 的 方 法 , 客 户 通 过 设 备 驱 动 程 序 来 获

得 硬 件 的 参 数 或 者 设 置 , 但 是 由 于 16 位 的 操 作 系 统 基

于 原 来 的 DOS , 所 以 客 户 程 序 仍 然 可 以 通 过 一 些 BIOS 或

者 DOS 的 DPMI 中 断 调 用 来 实 现 对 硬 件 的 操 作 。

32 位 的 操 作 系 统 如 Windows 95 & NT 不 再 基 于 16 位 DOS , 所

以 用 户 如 果 需 要 实 现 对 硬 件 中 断 、 DMA 、 I/O 或 者 是 绝 对 存 储 访 问 , 都 不 可 避 免 地 必 须 通 过 设 备 驱 动 程 序 。

Windows 95 操 作 系 统 能 够 实 现 多 线 程 、 多 进 程 的 应 用 , 系

统 通 过 一 个 虚 拟 机 管 理 器 VMM 32 、 VXD(Virtual machine

manager) , 通 过 它 和 其 他 的 设 备 驱 动 程 序 合 作 , 来 实 现 多

个 进 程 间 的 协 调 工 作 , 防 止 一 个 进 程 的 运 行 导 致 另 一

个 进 程 的 崩 溃 。

3.2 什么事设备驱动程序

设 备 驱 动 程 序 被 用 来 管 理 系 统 资 源 ( 硬 件 或 者

件 ) 的 可 执 行 二 进 制 代 码 , 通 过 设 备 驱 动 程 序 , 多

个 进 程 可 以 同 时 使 用 这 些 资 源 , 从 而 可 以 实 现 多 进

程 并 行 运 行 。 设 备 驱 动 程 序 一 般 是 以 “ VxD ” 为 后 缀

名 , 其 意 思 是 虚 拟 化 某 些 设 备 (Virtual ″ something ″ Device) 。

386 以 上 的 微 处 理 器 有 4 个 优 先 级 别 : 0 级 、 1 级 、 2

级 、 3 级 , 一 般 操 作 系 统 运 行 于 优 先 级 0 级 上 , 而 用 户

程 序 运 行 在 3 级 上 。 VxD 运 行 于 0 级 上 , 其 在 内 存 中 的

位 置 也 是 处 在 操 作 系 统 保 护 的 空 间 之 内 的 。

另 外 , Windows 还 提 供 一 些 运 行 在 优 先 级 3 上 的 驱 动

程 序 , 主 要 是 串口 的 通 信 程 序 和 并 口 的 打 印 机 程 序 ,

这 些 程 序 以 “ DRV ” 为 后 缀名 。 但 是 一 般 说 来 , 运 行 于 优

先 级 别 3 上 面 的 I/O 比 运 行 于 0 级 的 慢。

3.3 设备驱动程序编写简介

设 备 驱 动 程 序 的 编 写 有 一 定 规 范 , 需 要 对 于 32 位 的 汇

编 和 C 语 言 比较 熟 悉 ; 一 般 完 全 由 汇 编 语 言 编 写 , 但 是

也 可 以 用 C 与 汇 编 的 混 合语 言 实 现 ; 首 先 需 要 有 Microsoft

DDK(Device Driver Kit) , 一 般 工 具 是MASM6  11 和 VC2  0 以 上

版 本 。

通 常 设 备 驱 动 程 序 由 五 个 段 组 成 , 它 们 分 别 是 : VxD -

CODE 、 VxD- DATA 、 VxD - ICODE 、 VxD - IDATA 和 VxD -

REAL - INIT 。 VxD -CODE 是 保 护 模 式 下 的 代 码 段 , 一 般

这 个 段 包 括 设 备 驱 动 程 序 的 控制 程 序 、 回 收 函 数 、 服 务

程 序 和 接 口 函 数 , 这 个 段 也 命 名 为 -LTEXT ; VxD - DATA

是 保 护 模 式 下 的 数 据 段 , 一 般 包 括 设 备 驱 动 程序 的 描 述

表 , 以 及 一 些 全 局 变 量 , 这 个 段 也 命 名 为 - LDATA ; VxD- ICODE 是 保 护 模 式 下 的 初 始 化 代 码 段 , 包 括 一 些 初 始

化 时 使 用 的服 务 程 序 , 虚 拟 机 管 理 器 (VMM) 在 初 始 化 结

束 之 后 就 将 这 个 段 取 消, 这 个 段 也 命 名 为 - ITEXT ; VxD

- IDATA 是 保 护 模 式 下 的 初 始 化 数据 段 , 包 括 一 些 初 始

化 时 使 用 的 数 据 , 虚 拟 机 管 理 器 (VMM) 在 初 始化 结 束 之

后 就 将 这 个 段 取 消 , 这 个 段 也 命 名 为 - IDATA ; VxD -