阅读:2036回复:5
版主求助,USB设备无法进入待机状态,好奇怪
我做了一个USB设备驱动,实现数据的读写,
现在出现一个好奇怪问题:当设备被上层应用程序打开或者读写操作时,不关闭上层应用程序直接点击电脑待机按钮, 弹出提示“设备的驱动器正防止机器进入待机状态。请关闭所有的应用程序,再试一次。如果问题任然存在,您可能需要更新这个启动器”。 我需要的是即使上层应用程序运行时(对设备进行操作),点击“待机”,电脑还能正常进入待机状态。 顺便说一下,当上层应用程序不打开,电脑可以正常进入待机状态。 提前谢谢热心人的帮助。 |
|
沙发#
发布于:2010-01-19 20:32
需要查看你的代码实现,如果需要驱动协助,请联系 www.drivercoding.com
|
|
|
板凳#
发布于:2010-01-28 15:03
问一下楼上的,请求协助你们要收费吗?呵呵呵
|
|
地板#
发布于:2010-01-31 23:19
设备驱动的电源管理模块有没有自己实现?
|
|
地下室#
发布于:2010-02-03 17:37
在电源管理里面,把pending的IRP cancel掉,把打开的句柄关上。
|
|
5楼#
发布于:2010-02-19 17:56
似乎应当实现自己的设备电源派遣函数NTSTATUS DispatchPower(PDEVICE_OBJECT fdo, PIRP Irp),似乎是主机发送 IRP_MN_QUERY_POWER查询设备是否能够进入状态,你没有实现这个函数,导致这个请求被failed,主机认为设备不让其进入待机状态,所以不让你挂起。在设备电源派遣函数NTSTATUS DispatchPower中要1、stalling your queues;2、waiting for all current substantive IRPs to finish或者调用abort pipe什么的;3、响应IRP_MN_QUERY_POWER(需要返回 STATUS_SUCCESS)和IRP_MN_SET_POWER,如果对于Set Power操作,还存储当前的device context information。
|
|