为了进行研究,我研究了 Libusb 以了解 hotluging 是如何完成的。对于 Linux,我在libusb\os\linux_udev.c中找到了相应的源代码,其中启动了一个在 udev 上进行 poll() 的线程。但是,在 Libusb 的源代码中花费了数小时后,我无法弄清楚 Windows 中的热插拔是如何完成的。
在libusb\os\ windows_winusb.c 中,显然 winusb 驱动程序用于获取设备列表(static int winusb_get_device_list(..)),但这并不是热插拔的事情。有人可以指出我正确的方向吗?
我在我的项目中使用 usb4java(一个 libusb Java 包装器)并且可以很好地检测到附加/分离事件,但我想知道它是如何工作的。