当外部设备连接到windows后,设备所连接到的集线器驱动程序将为设备分配硬件ID,然后Windows 使用硬件 Id 查找设备与包含设备驱动程序的驱动程序包之间最近的匹配项。
如果查找到,设备就可以和windows正常通信。
如果没查找到,就会报错提示你需要安装驱动程序。比如:
安装驱动程序的实现细节:
-
根据驱动程序包 INF 文件中的指令,Windows 执行以下操作:
-
将驱动程序二进制文件和其他关联文件复制到由INF CopyFiles 指令指定的硬盘上的位置。
-
执行任何与设备实例相关的配置,例如注册表项写入。
-
-
Windows 从驱动程序包的 inf 文件的 " INF 版本" 部分中的类和ClassGuid项确定设备安装程序类。 若要优化设备安装,以相同方式设置和配置的设备将分为相同的设备安装程序类。
-
复制驱动程序文件后,Windows 会立即将控制转移到即插即用(PnP)管理器。 PnP 管理器加载驱动程序并启动设备。
-
PnP 管理器为设备加载适当的函数驱动程序和任何可选的筛选器驱动程序。
过程中会涉及的组件:即插即用 (PnP) 管理器、SetupAPI(安装程序应用程序编程接口 (SetupAPI) 包含常规安装函数 (Setup**Xxx) 和设备安装函数( SetupDi**Xxx 和 *Di***Xxx)。 这些函数执行许多设备安装任务,如搜索 INF 文件、构建设备驱动程序的潜在列表、复制驱动程序文件、将信息写入注册表,以及注册设备共同安装程序。 大多数其他设备安装组件都调用这些函数。)、配置管理器 API、驱动程序存储、设备管理器。
所以如果安装过程有报错,可以到C:Windowsinf路径下找SetupAPI.dev.log,设备安装文本日志,查找原因。
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/install/device-manager-error-messages
链接为设备管理器错误代码解释及原因。