阅读:1178回复:10
关于中断处理的问题,等待高手指路啊,焦急中!!
老师给分配了一个任务阿。
要在windows2000下,通过每30毫秒一次的中断信号,来接收,并行打印机端口发送来的数据。 我最近看了一些关于ddk,wdm,driverstudio,等东西的资料。但是还没找到合适的解决方案啊。 我觉得我这个东西算不上是个驱动程序吧,windows2000已经为打印机端口安装了驱动了吧,那我要是想响应打印机端口来的中断,我该用些什么工具,该如何做呢! 接到这个任务好久拉,还是一点头绪也没有呢,就快被老师骂啦,大虾们,多多帮忙啊,这里先谢过拉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|
沙发#
发布于:2004-05-11 12:45
要处理中断的话,就要写驱动了。
但是从并口得到数据并不需要自己去写驱动,OS提供了api的 MSND-Platform SDK Documentation-Base Services-Files and I/O-Communications |
|
板凳#
发布于:2004-05-11 14:02
终于有人理我拉! :D
那我要是将驱动写好了的话,怎么给它对应到,并行打印机口上呢! 还有我是直接在驱动里面去接收数据嘛,还是另外再写应用程序来接收呢? 另外,问个苯笨的问题(由于以前没接触过驱动),驱动程序和一般的应用程序,区别是什么呢? |
|
地板#
发布于:2004-05-11 14:12
大虾们,那我只要去啃 wdm 的书,这个问题就一定能解决嘛? :P
|
|
地下室#
发布于:2004-05-11 17:56
为什么一定要写驱动呢,既然在user mode就可以得到数据?
写个并口驱动并且替换掉OS的,很麻烦;要么就写filter驱动,还是麻烦,总没有Win32熟悉吧。 驱动在ring0,在2G上面。 应用在ring3,2G下面。 |
|
5楼#
发布于:2004-05-12 09:27
直接用windows api
|
|
6楼#
发布于:2004-05-12 10:38
糊涂了啊,不是说要响应中断,就一定要写驱动的吗?
我是要接收到中断之后才去接收数据的阿! win32 API 在2000下可以处理中断的吗? 另外Filter驱动程序该怎么来安装到系统中去呢? 2000下面就没有一套可以操作中断的东西吗?还是迷糊中......... |
|
7楼#
发布于:2004-05-12 10:47
请arthurtu说的详细点,不然别人如何理解??
|
|
|
8楼#
发布于:2004-05-12 12:23
ft,不会wowocock也不明白吧?
看样子我要重新学习汉语了 :D 有Win32API可以用的。 MSDN-Platform SDK Documentation-Base Services-Files and I/O-Communications OS的并口驱动负责从并口得到数据(当然如果有中断它也处理了)。 win32 app可以用查询或消息的方式,得到数据,根本不用操心什么中断呀,地址呀。 A process uses the CreateFile function to open a handle to a communications resource. For example, specifying COM1 opens a handle to a serial port, and LPT1 opens a handle to a parallel port. |
|
9楼#
发布于:2004-05-13 10:56
windows wdm 设备驱动开发指南
的第15章能解决你的问题。 对的,就是它。 |
|
|
10楼#
发布于:2004-05-14 14:09
呵呵,我又来啦 :D
还向询问一下大虾告诉我的那个消息模式接收数据是怎么个原理阿 能不能等同于直接处理中断的效果阿(已经知道这样做是多么的麻烦啦) 我理解的是这个样子的,大虾们帮我分析下对不对阿? 1)首先,应用程序向操作系统提出请求,要从并口读取数据 2)然后,操作系统将应用程序的进程挂起 3)接下来如果中断发生,操作系统从并口读取数据, 然后发送消息给应用程序,通知应用程序,已经完成一次读操 作,并且把数据返回给应用程序阿 如果是这样的话,也就是说他并不是一直询问,占用系统的资源拉,也就是和直接处理中断的效果是很接近的啦。那我就直接用这种方式去读好拉。 如果不是的话,我就的努力去学习怎么写驱动来处理这个问题拉(痛苦.......................................................) |
|