阅读:2316回复:12
请教怎样删除我的USB设备?
我开发的是USB 设备,当我把设备从PC上拔去,就关不了计算机,请问在驱动中我应该怎样写OnRemoveDevice?我想这个问题对大伙肯定不难,帮帮忙吧!!!!!!
|
|
|
沙发#
发布于:2001-09-26 00:06
你的这个问题我以前也遇到过,应该是漏了一条语句DecrementOutstandingRequestCount()。
|
|
|
板凳#
发布于:2001-09-27 09:45
感谢你的指导,我在原来的基础上加上了此语句,可还是不行阿!能否给我讲解一下OnRemoveDevice都应该作些什么工作?
我的程序是用driverwork编写的,非常感谢! |
|
|
地板#
发布于:2001-09-27 11:11
社么系统?什么现象呀?
|
|
|
地下室#
发布于:2001-09-27 12:11
具体的情况我有点忘了,具体是跟踪到DS的类库中发现一个成员变量因为漏了DecrementOutstandingRequestCount()而错误,你具体跟踪一下。
|
|
|
5楼#
发布于:2001-09-27 14:14
多谢LitteSW和斑竹Buddha,我现在开发的设备是USB的读卡器,在win98下使用,当拔去读卡器后,系统就关闭不了计算机,出现正在关机画面后就停住了,我的WDM驱动当前状态下一直存在一个IRP,用于检测插拔卡片,是否系统检测到IRP未完成就移走了设备,因此才关不了机?我的猜测对吗?请指教!!!
|
|
|
6楼#
发布于:2001-09-27 19:18
[QUOTE]原本由 hongbo 发表
[B]多谢LitteSW和斑竹Buddha,我现在开发的设备是USB的读卡器,在win98下使用,当拔去读卡器后,系统就关闭不了计算机,出现正在关机画面后就停住了,我的WDM驱动当前状态下一直存在一个IRP,用于检测插拔卡片,是否系统检测到IRP未完成就移走了设备,因此才关不了机?我的猜测对吗?请指教!!! [/B][/QUOTE] 具体的情况好象是当用CreateFile时,DS中的成员变量m_RequestCounter自动加1,调用DecrementOutstandingRequestCount()使m_RequestCounter减1。 在卸载设备时,m_RequestCounter好象要小于2。否则系统会等待。 具体的函数在kpnpdev.cpp文件中,你可以用softice跟踪一下你的程序。 |
|
|
7楼#
发布于:2001-09-28 10:29
[QUOTE]原本由 hongbo 发表
[B]多谢LitteSW和斑竹Buddha,我现在开发的设备是USB的读卡器,在win98下使用,当拔去读卡器后,系统就关闭不了计算机,出现正在关机画面后就停住了,我的WDM驱动当前状态下一直存在一个IRP,用于检测插拔卡片,是否系统检测到IRP未完成就移走了设备,因此才关不了机?我的猜测对吗?请指教!!! [/B][/QUOTE] 还是DDK好! |
|
|
8楼#
发布于:2001-09-28 12:19
DS和DDK各有优点。
|
|
|
9楼#
发布于:2001-09-29 14:26
斑竹大人,怎么你就打了个招呼就走了,光让小的们在此聊啊!
|
|
|
10楼#
发布于:2001-10-25 10:53
[QUOTE]原本由 Buddha 发表
[B]社么系统?什么现象呀? [/B][/QUOTE] 牛斑竹,牛版主! |
|
|
11楼#
发布于:2001-10-25 11:19
你应该喊她弥托佛~~~~!然后它就来了,你叫她牛它会很生气的。:)
|
|
12楼#
发布于:2001-10-26 19:12
搜索一下,前面有这个问题的很多回复
|
|
|