我很好奇,当您从 CD 安装特定 I/O 的设备驱动程序时,Windows 后台会发生什么。我的假设是,唯一可能发生的事情是将文件从 CD 传输到驱动器、更改注册表项,以及可能更改某些环境变量。
这就是后台发生的一切吗?操作系统究竟是如何获得与设备通信的能力的?我年轻的时候,曾经认为从 CD 安装程序/驱动程序与插入 CD 并将文件复制到特定目录之间存在根本区别,但现在我不太确定两者之间有什么区别。
我之所以产生这些问题,是因为我有自动测试设备方面的背景。我试图建立一个概念框架来理解,当您通过 GPIB 或其他方式将测量仪器连接到 Windows 机器时,您必须安装两个硬件级驱动程序,以便操作系统可以与设备通信,但随后您还安装软件驱动程序(API?库?),然后将其用作更大软件包的一部分来编译可以通过编程调用来控制仪器的 .dll。这让我想知道为操作系统安装硬件级驱动程序和为自动测试程序安装软件库之间到底有什么区别。
我的任何假设和理解是否从根本上就是错误的?
答案1
当硬件制造商编写设备驱动程序时,他们会经历一个严格的过程,通常直接与操作系统的作者(例如 Microsoft 或 Apple)合作,使用专门为其操作系统定制的软件开发工具包。使用标准(例如 USB)可以相对轻松地将硬件与操作系统集成。然后由其他软件开发人员来实现硬件设备,通常通过 API(应用程序接口)与他们自己的应用程序进行交互。
显然,这是一个非常基本的解释,可能比你想要的要少,但我没有看到列出的其他答案,所以我想以长期程序员的身份分享我对这个问题的看法。
答案2
它只是删除文件并在注册表和其他地方写入条目。这就是驱动程序。
驱动程序的工作就是根据这些文件中的内容以及写入注册表的内容。驱动程序的作用是向操作系统传达设备(物理或虚拟)的性质和用途,并告诉计算机如何与该设备通信。
因此,这些文件和设置包含操作系统与设备发送和接收信息所需的信息。