stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1433回复:6

一个比较菜的问题:用DS在WDM下怎么捕捉鼠标或键盘的中断,谢谢

楼主#
更多 发布于:2004-06-27 15:19
   我是个刚刚学习驱动开发的新手.最近看了武安河的一个例子,在nt下捕捉软驱中断,可是不知道在wdm下怎么初始化中断对象来完成同样的功能.
   我看到DS的帮助里有KInterrupt::Initialize的说明,但不知道KIRQL是怎么设置的.究竟在那里初始化中断对象才能捕捉软驱(或鼠标键盘等)的中断呢?
   请教对此有较深理解的朋友,谢谢!

   非常希望结交做过驱动开发的良师益友,尤其是做过PCI的朋友.
   我的QQ:379867.
   真诚的希望能得到您的帮助.
三人行必有我师!
stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-27 21:41
是不是问题太简单了,真诚的希望大家不吝赐教!
三人行必有我师!
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
板凳#
发布于:2004-06-29 08:46
是怎么设置的.究竟在那里初始化中断对象才能捕捉软驱(或鼠标键盘等)的中断呢?

WDM是PnP的,KIRQL应该是由系统提供的(没有用过DriverWorks,无法说得更详细).

我觉得要捕捉某设备的中断,不一定要写WDM,NT式的驱动应该也可以。只需要将你的ISR连接到相同中断就行(当然,它的中断应该可以共享,否则,可能导致设备不能正常工作或挂不上)。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-29 10:40
感谢seaquester,DS的例子就是NT下的(没有WDM下的例子),它是这样的初始化过程(在KDevice派生类的构造函数里):
m_Interrupt( Isa,
  0,
FLOPPY_IRQ,
FLOPPY_IRQ,
Latched,
TRUE,
FALSE
)
上面这个初始化在DS的帮助文档里注明为"NTDDK Only".
KInterrupt(
   KIRQL irql,
   ULONG vector,
   KINTERRUPT_MODE Mode,
   BOOLEAN bShareVector=FALSE,
   KAFFINITY affinity=1,
   BOOLEAN bSaveFloat =FALSE
);
而这个初始化过程是注明为"WDM",里面的KIRQL,vector的解释为:
irql :In the WDM form, this is the IRQL value provided by the plug and play facility.

 vector :In the WDM form, this is the vector number provided by the plug and play facility.

我主要是不懂这两个变量是否可以用来设置中断.
看了你的回复,我觉得可能自己对WDM的机理不太清楚.

不知seaquester做过PCI驱动没有,真希望交流一下.

QQ:379867
三人行必有我师!
hzhq1
驱动老牛
驱动老牛
  • 注册日期2002-12-13
  • 最后登录2012-03-29
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望1054点
  • 贡献值0点
  • 好评度606点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-29 10:56
为什么不找DDK里的例子参考参考?


这是一个,一个风雨交加的,漆黑的夜晚......恩,情节越来越复杂了。
stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-29 11:16
经hzhq1的提醒,我在NTDDK的帮助文档里找到了例子的简介:"Readmes for DDK samples"
谢谢,我正在找相关的例子.祝大家午间愉快!
三人行必有我师!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-30 20:14
DS和DDK都也例子
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部