Для исследования я заглянул в Libusb, чтобы увидеть, как делается хотлукинг. Для Linux я нашел соответствующий источник в libusb\os\linux_udev.c, где запускается поток, который выполняет poll() на udev. Однако, проведя часы в исходниках Libusb, я не могу понять, как делается горячее подключение в Windows.
В libusb\os\windows_winusb.c очевидно, что драйвер winusb используется для получения списка устройств (static int winusb_get_device_list(..)), но это не обязательно горячее подключение . Может ли кто-нибудь указать мне в правильном направлении?
Я использую usb4java (оболочку libusb Java) в своем проекте и могу отлично обнаружить событие присоединения/отсоединения, но я хочу знать, как это работает.