我目前正在为任天堂Wii远程开发一个KMDF HID minidriver。我的HID微型河流取代了HidBth的HIDClass驱动程序(我使用的是kmdfhidminidriver示例,其中它实际上是一个过滤器驱动程序,并使用这个"kmdfhidminidriver“来转发所有请求)。
所以我的问题是,当我关闭Wii遥控器(按下电源按钮或移除电池)时,Power将无法识别设备已经消失。Windows仍然在设备管理器中显示设备,并认为一切正常并正在运行。设备消失的唯一提示是,l2cp-通道关闭了,我得到了带有指示码"RemoteDisconnect".的“RemoteDisconnect”.调用。
我的问题是,如何向设备断开的PnP管理器发出信号?我尝试使用"WdfDeviceSetDeviceState"将“删除”设置为true。但是,设备管理器会显示驱动程序错误(代码24)。我希望有一个解决方案,设备从设备管理器中删除,没有任何错误,比如拔出USB设备。
附加信息:我使用WDK 8和WDF 1.11;驱动程序目标系统是Win 7和8。
发布于 2014-06-23 22:59:13
好的,我必须使用"HidNotifyPresence“。它是在"hidport.h“中原型的,但不幸的是还没有文档化。
这需要两个论点。第一个是设备对象,可能是FDO。第二个是布尔值。如果该设备为真,则将重新枚举该设备,否则该设备将被删除。
因为我的驱动程序是一个过滤器驱动程序,所以我需要提供我自己的PassThrough (shim)微型端口驱动程序,它将把FDO和"HidNotifyPresence“地址传递给过滤器驱动程序。
https://stackoverflow.com/questions/24336589
复制相似问题