usbdResetDevice

用途

重置打开的 USB 逻辑设备。

语法

#include <usbdi.h>
USBstatus usbdResetDevice(handle)
USBhandle handle;

参数

描述
句柄 (handle) 由 USBD_OPEN_DEVICE fp_ioctl 返回的已打开 USB 逻辑设备的句柄。

描述

USB 客户机驱动程序调用此功能以重置打开的 USB 逻辑设备。 作为错误恢复过程的最后一步,该功能已完成。 例如,某个键盘集线器没有断言足够长的端口重置信号来正确重置某些 USB 鼠标。 在这些集线器上,鼠标所连接的端口必须在鼠标开始工作之前第二次复位。

此函数立即返回到调用者。 然后, USBD 继续以逻辑方式断开连接并重新连接设备,包括断开连接并重新连接回客户机驱动程序 (如果已启用)。 除了设备句柄,此功能会使所有其他 USB 句柄 (例如,缓冲区映射句柄和管道句柄) 失效。 在对客户机驱动程序进行重新连接回调之后,必须重新获取这些句柄。

然后,此函数将调用客户机驱动程序的断开连接回调例程以释放与此设备关联的任何客户机驱动程序级别资源,并将与此设备关联的所有 LUN 置于断开连接状态。 最后,协议驱动程序在逻辑上重新连接设备,并尝试将设备与最合适的客户机相关联。 此过程通过运行向 USBD 注册的所有客户机句柄来完成,并尝试将设备的类,子类和协议与客户机句柄进行匹配。 如果它找到与此信息匹配的客户机句柄,那么它将启动与该客户机句柄相关联的重新连接回调例程。 重新连接回调例程使先前断开连接的 LUN 恢复到可用状态。

执行环境

可以从中断 (USBDINTRLEVEL 优先级或更低级别) 或进程环境中调用此函数。

返回值

描述
USBD_SUCCESS 成功