阅读:1394回复:5
IoAttachDeviceToDeviceStack的问题,你们遇见过吗?
当我收到 IRP_MN_MOUNT_VOLUME 的时候我保存了stack->Mo..->Vpb->RealDevice,然后挂接完成例程,在完成例程中
VPB *vpb; vpb = ((PUBCONTEXT*)context)->RealDevice->Vpb; . . . if(NT_SUCCESS(irp->IoStatus.Status)) { .. IoAttachDeviceToDeviceStack(mynewdev,vpb->DeviceObject); .. } 当执行到IoAttachDeviceToDeviceStack的时候就兰屏, ***STOP 0X00001E(......) KMODE_EXC..NOT_HANDLED ..................................... ntoskrnl.exe ..... 是什么回事啊, |
|
沙发#
发布于:2004-12-27 12:57
if(NT_SUCCESS(irp->IoStatus.Status))
{ .. if((vpb) && (vpb->DeviceObject)) IoAttachDeviceToDeviceStack(mynewdev,vpb->DeviceObject); .. } |
|
|
板凳#
发布于:2004-12-27 13:00
建议你跟踪汇编代码看看,估计你还没调用该函数就已经完蛋了,C代码上看不出,还是仔细看看汇编代码吧.....
|
|
|
地板#
发布于:2004-12-27 13:37
我保存的realdevice的Vpb结构是非空的,Vpb->DeviceObject也是非空的,我测试过了,我做了另一个试验,就是我用我的设备挂到Vpb结构下面的其它设备对象上,比如Vpb->RealDevice这个设备上,又不会兰屏了,我还挂到了其它的设备上(因为我的工作者线程参数保存了几个合法的设备对象),都不会兰屏,就是唯独挂在Vpb->DeviceObject上启动的时候就要死机,微软的代码我也看了,也是这么搞的, 哎~~ 再搞不好我就要自杀啦,~~~~~~ :(
|
|
地下室#
发布于:2005-01-19 17:21
同情....
|
|
|
5楼#
发布于:2005-06-30 17:46
不得了翻出这个老帖子,我是搜索到的。
我也碰到这个问题了。 估计高手已经解决了,透露一下吧。 |
|