5 个解决方案
#1
你看看这两个例程吧
DriverObject->MajorFunction[IRP_MJ_PNP]
DriverObject->MajorFunction[IRP_MJ_POWER]
DriverObject->MajorFunction[IRP_MJ_PNP]
DriverObject->MajorFunction[IRP_MJ_POWER]
#2
谢谢,提示
#3
检查一下你的设备工作顺序是不是这样:节电后,usb的5v低,device的vbus端低,usb状态机suspend,正常后,5v高,vbus高,你的设备没有wakeup,没有进入reset,如果是这样的话,看device的reset中断过程。
如果是5v没有低,那就纯粹的suspend,你的device应当有这样的说明,数据线上3ms没有活动,自动进入suspend,而后就没有唤醒,先看看下位机这边,不过要是完全自己做的驱动,就不好说了。
如果是5v没有低,那就纯粹的suspend,你的device应当有这样的说明,数据线上3ms没有活动,自动进入suspend,而后就没有唤醒,先看看下位机这边,不过要是完全自己做的驱动,就不好说了。
#4
谢谢,我先去检查下。
如果是3MS后没有活动,设备进入suspend状态后,PC重启上电,是上位机驱动需要发送reset,还是下位机自己检查到上电,然后发起reset?
如果是3MS后没有活动,设备进入suspend状态后,PC重启上电,是上位机驱动需要发送reset,还是下位机自己检查到上电,然后发起reset?
#5
下位机自己是不能发起reset的,设备枚举阶段的reset是主机通过集线器发下来的请求。
#1
你看看这两个例程吧
DriverObject->MajorFunction[IRP_MJ_PNP]
DriverObject->MajorFunction[IRP_MJ_POWER]
DriverObject->MajorFunction[IRP_MJ_PNP]
DriverObject->MajorFunction[IRP_MJ_POWER]
#2
谢谢,提示
#3
检查一下你的设备工作顺序是不是这样:节电后,usb的5v低,device的vbus端低,usb状态机suspend,正常后,5v高,vbus高,你的设备没有wakeup,没有进入reset,如果是这样的话,看device的reset中断过程。
如果是5v没有低,那就纯粹的suspend,你的device应当有这样的说明,数据线上3ms没有活动,自动进入suspend,而后就没有唤醒,先看看下位机这边,不过要是完全自己做的驱动,就不好说了。
如果是5v没有低,那就纯粹的suspend,你的device应当有这样的说明,数据线上3ms没有活动,自动进入suspend,而后就没有唤醒,先看看下位机这边,不过要是完全自己做的驱动,就不好说了。
#4
谢谢,我先去检查下。
如果是3MS后没有活动,设备进入suspend状态后,PC重启上电,是上位机驱动需要发送reset,还是下位机自己检查到上电,然后发起reset?
如果是3MS后没有活动,设备进入suspend状态后,PC重启上电,是上位机驱动需要发送reset,还是下位机自己检查到上电,然后发起reset?
#5
下位机自己是不能发起reset的,设备枚举阶段的reset是主机通过集线器发下来的请求。