- 1
- 0
- 约1.07万字
- 约 3页
- 2017-06-07 发布于湖北
- 举报
第22卷第l期 计算机应用 Vol
22.Nol
2002年1月
CoⅢputer
ApplicadollS Jall..2002
文章编号:100l一9081(2002)1—0030一02
在windows
2000平台上实现vB对I/0端口操作
陆志才,商艳莉
(南开大学计算机科学与技术系,天津300071)
摘要:开发一个基于I/O端口操作的设备驱动程序,再编写一个动态链接库。从而可使windows
2000平台上的VB也能对I/O端口进行操作。文中就此介绍编写动态链接库时涉及到的关键问题,
并给出了部分源代码。
关键词:w.mdows
2000;VB;互/0端口操作;设备驱动程序;动态链接库
中图分类号:开316.7文献标识码:A
不同层次的若干驱动程序组成。当在用户态发一个L/O请
l 问题的提出
求,L,o管理器将形成一个∽请求包Ⅱ啦。在内核态,IRP首
由于Win古嘲2∞O具有很好的稳定性,促使人们试图将
先被送到最上层的驱动程序,然后被依次下传。各层对mP
原先基于Wjnd呻悒9x平台的vB测控软件移植到Wind∞幅
的处理取决于设备以及mP所携带的内容。每层驱动程序分
2∞0平台上,或在wirxhB
2∞o平台上开发新的测控软件。 别使用一个统称为设备对象的数据结构,这些设备对象在一
然而w,I|a怖2∞o对多种硬件平台的支持,使得在用户程序
起构成了一个设备对象堆栈。除了IRP和设备对象外,wDM
或动态链接库中已不能直接使用矾、oUT指令或最终要编译 还使用驱动程序对象、资源表、I/O栈单元等多种数据结构。
成矾、OuT指令的c函数,和L/0端口打交道只能调用硬件抽 —个完整的wDM驱动程序好比一个“容器”,它包含许
象层(}IAL)函数(如READ一嗍LucHAR、wⅢ吐P(珏H—多例程。当操作系统初始化驱动程序时或遇到一个mP时,
ucHAR等)。而硼-山啊2∞o的安全机制叉不允许在用户态
就调用这个容器中相应的例程。这个容器中的例程是与驱动
直接调用HAL函数。注意到铡控系统中大多数A/D、D/A、
程序的功能密切相关的。例如.为了支持中断.需要有
DI、D0、脉冲量输M禽出等过程通道接口板都是基于L/0端
O山e咖pt例程和DPc例程。为了支持DMA操作,需要有
口操作的.因此。无论是移植,还是新开发都需要解决同一个 ^d日pte吒onⅡoa例程。但是有三个例程对所有驱动程序都是必
同题,即在w砌D惦2000平台上如何使Ⅶ能对L,o端口进行备的,它们是蹦Ⅷ妇时(驱动程序主人口例程)、胁v池(添
操作, 加设备倒程)和DigD瞰c|如P(即插即用派遣例程)。根据所要
完成的功能,除了必备的三个外.我们还安排了四个倒程。它
2解块的思路
们是打开设备倒程cr恻吧,关闭设备例程a雠,具体实现对端
解决上述问题的基本思路是,先开发一个基于L,O端口 口操作的例程‰D“矾n
您可能关注的文档
最近下载
- LTC流程培训课件.pptx VIP
- 2026年郑州工业安全职业学院单招职业适应性测试题库及答案1套.docx VIP
- 【小升初】2023-2024学年江苏省南通市苏教版升学分班考数学模拟测试题2套(含解析).pdf VIP
- 安徽省考试录用公务员公安类真题及参考答案.doc VIP
- 人教版(2024)八年级上册英语全册各单元阅读理解练习题汇编(含答案).docx
- 36岁儿童学习与发展指南解读.doc VIP
- 2026年郑州工业安全职业学院单招职业技能考试题库及答案详解1套.docx VIP
- 《国家标准》羊肉分割技术规范.doc VIP
- EPSS怡达快速电梯TRE110电气原理图纸(2014版).pdf
- 2026年郑州工业安全职业学院单招职业技能测试题库及答案1套.docx VIP
原创力文档

文档评论(0)