版块
论坛
喜欢
话题
应用
搜索
登录
注册
tanky的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=17679
设备扩展的问题
自己定义了一个设备扩展,准备在adddevice()中调自己的函数初始化,卸载时在dispatchpnp处理IRP_MJ_PNP MN=REMOVE_DEVICE时调removedevice完成善后处理。可是只要我动了在设备扩展中分配了空间的结构的内容,如memset(),下次重...
全文
回复
(
5
)
2002-04-01 20:20
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
tanky
:
我的设备扩展中有指针也有结构, 对于指针,我在adddevice中分配内存,在removedevice中释放内存,没有错误。 对于结构,只要我改变了它的内容,下次重启卸载就会出现错误。 如果是动了自定义的结构,就是页错误0Eh,如果是动了mutex,即调用 KeInitia...
(2002-04-02 19:18)
回复
jame.z
:
你可能把设备扩展中的指针清空了,譬如MEMSET设成零,在卸装的时候又调用这个指针访问其表示的内容,结果产生缺页(0x0e)。
(2002-04-02 11:25)
回复
Tom_lyd
:
你有没有响应IRP_MH_QUERY_REMOVE_DEVICE请求?在IRP_MN_REMOVE_DEVICE之前要先响应这个请求。 第二个,我曾碰到一个类似的问题是没有成功删除符号连接名,造成第二次启动时就出错 。
(2002-04-02 11:19)
回复
wilton
:
也有可能是memset超出范围。
(2002-04-02 09:11)
回复
guardee
:
你在DEVICE_EXTENSION中包含的是结构还是结构指针??? 如果是结构那么这个内存是不用你手动释放的,如果是包含了一个结构指针,那么这个指针指向的内存就要在删除这个DEVICE_EXTENSION 对应的设备对象的时候释放这部分内存了!
(2002-04-01 21:52)
回复
tanky
加关注
写私信
0
关注
0
粉丝
55
帖子
返回顶部