yanfei_8209
驱动牛犊
驱动牛犊
  • 注册日期2005-12-30
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:2132回复:7

PsSetCreateProcessNotifyRoutine 问题请教

楼主#
更多 发布于:2007-06-26 10:34
我的代码中通过调用
PsSetCreateProcessNotifyRoutine(ProcessCallback,FALSE)
获得了新建进程的ID、以及其父进程ID

在DriverUnload函数中我又调用
PsSetCreateProcessNotifyRoutine(ProcessCallback,TRUE)
对回调函数进程了移除。

但是我现在的问题是:
代码在加载到DriverMonitor运行正常:每次新建进程都能正确显示ID信息;
但是,当我卸载驱动,中止其运行后,再执行新建进程的动作就会导致机器蓝屏重启。

我想大概原因是不是我的驱动没卸载干净,每次新建进程都会跳转到我的驱动执行,由于找不到驱动而蓝屏,虽然这么猜测,但不知具体如何解决此问题,高手们请赐教!
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-06-26 11:38
dump、windbg
人总在矛盾中徘徊。。。
yanfei_8209
驱动牛犊
驱动牛犊
  • 注册日期2005-12-30
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-06-26 11:47
什么意思,楼上的能不能说得详细点
wengzuhong
驱动小牛
驱动小牛
  • 注册日期2004-07-16
  • 最后登录2014-10-22
  • 粉丝3
  • 关注1
  • 积分9分
  • 威望262点
  • 贡献值0点
  • 好评度219点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-06-26 11:55
yun, 给出你dump的信息啊或debug显示,否则怎么判断
yanfei_8209
驱动牛犊
驱动牛犊
  • 注册日期2005-12-30
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-06-26 15:02
一闪就蓝屏了,就一瞬间,我来不及看清楚错误代码是什么。
楼上的能不能干脆告我驱动运行时,蓝屏的情况,如何获得错误代码吧!不好意思,新学的,又安排了任务,所以只好求助!
lauer
驱动牛犊
驱动牛犊
  • 注册日期2004-02-04
  • 最后登录2013-01-07
  • 粉丝1
  • 关注1
  • 积分578分
  • 威望127点
  • 贡献值1点
  • 好评度57点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-06-26 21:03
可以使用虚拟机,这样可以在出错时暂停而获得蓝屏提示
使用windbg远程连接,这样可以在蓝屏前得到通过kdPrint输出的内容
在关键行打出日志,就知道哪个地方出问题
不过如果出错很快,好像来不及输出到管道,windbg就看不到,这个不知道如何解决
yanfei_8209
驱动牛犊
驱动牛犊
  • 注册日期2005-12-30
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-06-28 11:39
哎,研究了好久,终于知道windbg怎么用了,windbg里显示的错误信息如下:
fatal system error: 0x000000ce(0xFA0974F6,0x00000008,0xFA0974F6,0x00000000)
driver at fault: createprocess.sys.
break instruction exception - code 80000003 (first chance)
yanfei_8209
驱动牛犊
驱动牛犊
  • 注册日期2005-12-30
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-06-28 15:28
详细的Bugcheck Analysis中描述为:
driver_unloaded_without_cancelling_pending_operations (ce)
a driver unloaded without cancelling timers,DPCs,worker threads,etc.
但我看了,我的driverunload函数为:
pssetcreateprocessnotifyroutine(processcallback,true);
iodeletesymboliclink(&strlink);
iodeletedevice(driverobjcet->deviceobject);
该移除的都移除了
游客

返回顶部