USB调试笔记
+ -

Windows下USB驱动安装设备丢失inf文件中ClassGuid出现未分类

2022-01-13 529 0

今天同事突然报了一个情况,说安装了驱动之后设备为什么在基它分类中,打开设备管理器中可以看到:
Windows下USB驱动安装设备丢失inf文件中ClassGuid出现未分类
按设备树的方式显示:
按设备树的方式显示

从上面的的图中可以看到,根设备驱动归为其它设备分类中了。
我们知道,设备的分类可以通过INF文件中的ClassGuid来进行分类,我记得我在INF文件中有指定其为USB分类啊,通过设备管理器的inf名称,发现其在inf文件中有序列为oem18.inf,打开文件可以看到ClassGuid和Class正确无误。

[Version]
Signature="$WINDOWS NT$"
Class=USB
ClassGuid={36FC9E60-C465-11CF-8056-444553540000}
Provider=%ManufacturerName%

可到设备管理器中查看设备的属性信息,发现和正确的设备相对确实少了Class和ClassGuid。
少了Class和ClassGuid

这里我通过在注册表中

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}]

的位置,发现确实没有这个设备,所以推测可能是这个注册表驱动在安装时,要么写入失败,要么写入后有可能被删除掉了,所以有点怀疑。
同时,在设备服务实例中,其注册表中也没有ClassGUID项,而其它正确安装的设备是有的。

打开Windows下SetupApi的日志文件,其目录在:

C:\Windows\INF\setupapi.setup.log

在其日志中发现其也正确的识别了ClassGuid

     dvi:      Class GUID of device changed to: {36fc9e60-c465-11cf-8056-444553540000}.
     dvi:      {Plug and Play Service: Device Install for USB\VID_1D9B&PID_0100\7&260B3798&0&4}
     dvi:           Driver INF Path: C:\Windows\INF\oem18.inf

不过日志中也没发现什么错误信息,不过发现其在正确安装前有一次驱动的卸载。

事件日志
所以可能怀疑可能与此次驱动的卸载有关系。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UVC 特定请求的支持 GET_INFO
GET_INFO请求用于获取设备支持的特定请求。GET_INFO的具体使用,可参见:处理单元特定类请求示例一节。使用此请求获取设备支持的特定请求属性时,wLength字段为1,其返回值各位代表的含义见下表:位描述位状态D01=Supports GET value requestsCapability......
Windows下USB驱动安装设备丢失inf文件中ClassGuid出现未分类
今天同事突然报了一个情况,说安装了驱动之后设备为什么在基它分类中,打开设备管理器中可以看到:按设备树的方式显示:从上面的的图中可以看到,根设备驱动归为其它设备分类中了。我们知道,设备的分类可以通过INF文件中的ClassGuid来进行分类,我记得我在INF文件中有指定其为USB分类啊,通过设备管理......
USBIP 虚拟控制器设备(VDEV_VHCI)FDO的初始化过程
虚拟ROOT总线FDO创建了虚拟USB控制器PDO之后,系统通过各种IRP_MJ_PNP收集完物理设备的信息之后,开始根据其硬件ID进行设备驱动批配,批配成功后,装载驱动并调用其AddDevice之后,开始FDO的创建过程。通过前面的可知,USBIP实现的根驱动,USB控制器、HUB和设备PDO的S......
Windows摄像头新类GUID
从Windows10 1709开始,摄像头分类使用新的类Camera[Version]Class=CameraClassGuid={ca3e7ab9-b4c3-4ae6-8251-579ef933890f}来源:https://docs.microsoft.com/en-us/windows......
Windows判断USB设备工作在高速、全速还是低速模式代码示例
如果一个USB的设备管理器中bcdUSB值为0x200,那么它一定是高速吗?答案是否定的,因为USB2.0规范定义的是USB低速,全速和高速模式,所以说设备工作在那种模式,完全是由固件和硬件决定的。只是其满足USB2.0规范而已,所以USB2.0并不等于高速,但支持USB高速模式的肯定要满足USB2......
USBIP 获取集线器下游端口连接信息IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
USB集线器其实支持3个IOCTL用于获取下游端口的连接信息。这两个IOCTL分别为IOCTL_USB_GET_NODE_CONNECTION_INFORMATION、IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX、IOCTL_USB_GET_NODE_CO......
USBIP 获取设备字本描述IRP_MN_QUERY_DEVICE_TEXT
WDM设备描述符是通过IRP_MN_QUERY_DEVICE_TEXT获取的,其对应的USBIP源码为: case IRP_MN_QUERY_DEVICE_TEXT: status = pnp_query_device_text(vdev, irp, irpstack); ......
USBIP 获取总线信息IRP_MN_QUERY_BUS_INFORMATION
IRP_MN_QUERY_BUS_INFORMATION对于总线驱动程序,需要获取总线的类型。 case IRP_MN_QUERY_BUS_INFORMATION: status = pnp_query_bus_information(irp); break;......
USBIP USB根集线器节点信息IOCTL_USB_GET_NODE_INFORMATION
IOCTL_USB_GET_NODE_INFORMATION用于获取USB根集线器信息PAGEABLE NTSTATUSvhci_ioctl_vhub(pvhub_dev_t vhub, PIRP irp, ULONG ioctl_code, PVOID buffer, ULONG inlen,......
USBIP获取集线器信息IOCTL_USB_GET_HUB_INFORMATION_EX
USB集线器也是USB设备,通过IOCTL_USB_GET_HUB_INFORMATION_EX获取它的信息PAGEABLE NTSTATUSvhci_ioctl_vhub(pvhub_dev_t vhub, PIRP irp, ULONG ioctl_code, PVOID buffer, U......
USBTreeViewer设备端口连接信息Connection Information
USBTreeViewer会对集线器下的各端口连接情况设置不同的图标,代表着当前集线器端口的状态信息。本人通过USBViewer源代码可知,其主要有以下几种状态:图标说明USB端口,无连接设备,USB2.0及以下USB端口,无设备连接、超高速端口连接USB2.0......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!