jqwang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2006-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1733回复:7

我真的黔驴技穷了

楼主#
更多 发布于:2005-03-16 15:37
我现在中断服务例程中想调用一个dpc,可是我不知道为什么,一进入dpc后,sice就跳出来说break due to page Fault(0Eh) Fault=0000 (而中断isr肯定已经进入了,因为我用sice可以跟踪看到),但我要通知应用程序就必须要一个dpc,于是我定制了一个dpc,用KeInsertQueueDpc(&pdx->CustomDpc, fdo, pdx);调用我的DpcRoutine,可是一进去就发生如上的错误,是不是还要设置什么?我把试者把DpcRoutine中的处理代码全部去掉,还是老样子,太可怕了,KDPC CustomDpc是在设备扩展中定义的,不会分页,KeInsertQueueDpc(&pdx->CustomDpc, fdo, pdx)也是在非分页区做的,我真的黔驴技穷了。
 
HONGLIN
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2010-03-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望12点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-16 17:22
队列初始化没有,DPCRountine也该在非分页区
不再困惑
jqwang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2006-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-17 08:30
谢谢大哥指点,请问大哥,队例初始化应该怎么做?我以前没有做过驱动,书上好象也没有讲
jqwang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2006-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-17 09:12
我可能是dpc队例没有初始化,但是我不知道这怎么做,我只是在AddDevice中对我的dpc这样作了初始化KeInitializeDpc(&pdx->CustomDpc, (PKDEFERRED_ROUTINE) DpcRoutine, fdo);(CustomDpc是我在设备扩展中定义的dpc,DpcRoutine是dpc例程)我不知道还要什么dpc队例初始化?是我在isr中调用了KeInsertQueueDpc后sice就跳出来了,而且我DpcRoutine目前是空函数,我如果封掉KeInsertQueueDpc后就没事了,在ds的monitor中还能看到我在isr中每25毫秒输出的打印信息。我在书上看到是有这么一个dpc队例,可我真不知道怎么初始化它。希望大哥指点


bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-17 09:27
KeInitializeDpc
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-03-17 09:30
强烈建议看看ddk
书《windows nt 设备驱动程序设计指南》
琢磨悟真知
jqwang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2006-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-17 10:49
我只是在AddDevice中对我的dpc这样作了初始化KeInitializeDpc(&pdx->CustomDpc, (PKDEFERRED_ROUTINE) DpcRoutine, fdo);(CustomDpc是我在设备扩展中定义的dpc,DpcRoutine是dpc例程)我不知道还要什么dpc队例初始化?楼上兄台只说KeInitializeDpc,我已经做了,不知道是不是做的不对?
jqwang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2006-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-17 10:50
我只是在AddDevice中对我的dpc这样作了初始化KeInitializeDpc(&pdx->CustomDpc, (PKDEFERRED_ROUTINE) DpcRoutine, fdo);(CustomDpc是我在设备扩展中定义的dpc,DpcRoutine是dpc例程)我不知道还要什么dpc队例初始化?楼上兄台只说KeInitializeDpc,我已经做了,不知道是不是做的不对?可这样结果还是老样子。
游客

返回顶部