windows设备知识


1、Windows设备栈相关的介绍,可在WDK中找到,参见:https://learn.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/device-nodes-and-device-stacks
2、关于设备栈,简单的理解就是,一个设备添加到总线后(物理的或虚拟的),操作系统可能会创建一系列的设备对象。
3、为了避免对每一个设备都编写一个驱动,Windows使用“设备类”来统一某类设备的访问接口,例如:你观察所有的磁盘、光驱设备,你会发现它们都使用相同的设备驱动程序。
4、USB是一种接口技术,其总线由USB主机控制器、集线器组成。USB-IF负责其标准化,标准中也包括了设备类的定义。参见:https://www.usb.org/defined-class-codes
这个设备类的定义反映在设备的兼容ID中。
5、在TD的设备监控策略中,设备类是指Windows定义的设备类,设备子类是指USB-IF定义的设备类。
6、关于设备栈和设备类,举个例子来说明,你把一个苹果手机通过USB插入到电脑后,会创建三个设备对象,按先后次序(父子关系)分别有:
        1) Apple Mobile Device USB Composite Device,设备类为USB
                2)Apple Mobile Device USB Device,设备类为USB
                3)Apple iPhone,设备类为WPD(便携设备)
        而这三个设备的兼容ID中所指示的USB-IF定义的设备类,都是06,Image设备。
7、再举一个更简单的例子,插入一个U盘,也会产生至少两个设备:
        1) USB大容量存储设备,设备类为USBSTOR,设备兼容ID为08(Mass Storage)
                2)一个磁盘设备,设备类为DISK
8、总结:
        1)设备类是Windows完成设备安装后的分类
        2)  USB设备子类是USB-IF在硬件信息里定义的分类,反映在注册表的兼容ID里
        3)  USB-IF定义的规范,厂商经常不完全遵守,例如,利用MassStorage来驱动打印机、读卡器或其它设备,目的是借用Windows的USB大容量存储类接口达到免驱的效果。

Device nodes and device stacks - Windows drivers | Microsoft Learn

 观察设备的加载,除了设备管理器,还可以参考以下注册表位置:
1、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum,这里记录了所有安装过驱动的设备实例
2、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class,这里是系统定义的设备类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值