首页
社区
课程
招聘
未解决 [求助]IoVolumeDeviceToDosName有小概率出现缺页异常
发表于: 2019-8-9 11:08 3598

未解决 [求助]IoVolumeDeviceToDosName有小概率出现缺页异常

2019-8-9 11:08
3598
这个函数绝大多数时候调用都没出什么问题,但是蓝屏的时候基本都是传进去的DeviceObject因为缺页访问不了,但是做参数检查的时候我已经用MmIsAddressValid校验过了,这种情况怎么处理呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 17
活跃值: (308)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
不要在kernel转,在应用层转或者应用层发io请求到驱动转。
2019-8-9 13:49
0
雪    币: 407
活跃值: (1746)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
试试 ExQueueWorkItem + IoQueryFileDosDeviceName
2019-8-9 14:23
0
雪    币: 11974
活跃值: (5554)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
叁毛 不要在kernel转,在应用层转或者应用层发io请求到驱动转。
这个应用层发IO请求有哪些情况,我只在IRP_MJ_DEVICE_CONTROL里面调用这个函数,满足要求吗
2019-8-9 18:26
0
雪    币: 11974
活跃值: (5554)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
Thead 试试 ExQueueWorkItem + IoQueryFileDosDeviceName
IoQueryFileDosDeviceName本身也是调用IoVolumeDeviceToDosName,所以还是有可能出现访问到缺页内存的问题
2019-8-9 19:00
0
雪    币: 405
活跃值: (2145)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
上面不是说了用 ExQueueWorkItem 降到PASSIVE_LEVEL去干活。
2019-8-9 19:08
0
雪    币: 9626
活跃值: (1826)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
7
Remarks

IoVolumeDeviceToDosName allocates the string buffer pointed to by the Buffer member of the UNICODE_STRING structure that the DosName parameter points to. After this buffer is no longer required, a caller of this routine should call the ExFreePool routine to free the buffer.

Starting with Windows Vista, you must ensure that APCs are not disabled before calling this routine. The KeAreAllApcsDisabled routine can be used to verify that APCs are not disabled.

IoVolumeDeviceToDosName 是异步完成的
最后于 2019-8-9 20:01 被Sprite雪碧编辑 ,原因:
2019-8-9 19:21
0
雪    币: 11974
活跃值: (5554)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
wowocock 上面不是说了用 ExQueueWorkItem 降到PASSIVE_LEVEL去干活。
学习了,看来还是中断级别的问题?不过派遣函数里面本身就是passive_level的,难道说这期间有变化吗
2019-8-9 19:49
0
游客
登录 | 注册 方可回帖
返回
//