操作系统如何检测连接的USB硬盘

1 投票
1 回答
1770 浏览
提问于 2025-04-16 09:49

操作系统是怎么发现外部硬盘的呢?也就是说,它是通过什么步骤或者系统调用来了解硬盘的情况的?有没有什么方法可以自动判断外部硬盘是否已经连接上呢?

1 个回答

4

(回答你问题中的唯一问题。)

在Windows系统中,你需要创建一个窗口,并处理一个叫做WM_DEVICECHANGE的消息,特别是DBT_DEVICEARRIVAL事件(这个事件会自动发送,不需要你去注册)。

如果你想用Python来实现这个功能,但又不想创建窗口,按照我所知道的,最好的办法就是定期检查根路径是否存在(每秒检查一次就差不多了,如果你需要更快的响应,Python可能就不适合你了):

import os.path
for letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
    drive_mounted[letter] = os.path.exists(letter + ":")

(回答你问题中的非问题部分。)

操作系统能够检测到USB或eSATA设备,是因为主板上的USB/eSATA控制器会向CPU发送一个中断信号。操作系统会检测到这个中断,并询问控制器有关设备的信息,安装必要的驱动程序,激活这些驱动程序,识别挂载点(驱动器字母),并播放一个声音效果。

(这些内容和Python没有关系,所以我认为这也和你的问题无关。)

撰写回答