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 -