Как обнаружить прибытие устройства pci?
Для классов устройств, таких как Дисководы, Адаптеры дисплея и т. Д. ( Все классы, перечисленные здесь), мы получаем DBT_DEVICEARRIVAL
событие (т.е. WM_DEVICECHANGE
событие с wParam как DBT_DEVICEARRIVAL
). Когда подключается другое устройство, кроме перечисленных в ссылке (и его драйвер загружается), мы не получаем аналогичного DBT_DEVICEARRIVAL
событие.
Например, для привода Pen DBT_DEVICEARRIVAL
придет, но если активируется такое устройство PCI, как программный мост PCI или контроллер Thunderbolt, подключенный к шине PCI, оно не будет активировано.
Единственный вариант, который я вижу, - перечислять такие устройства на каждом DBT_DEVNODES_CHANGED
, Это вызывает много накладных расходов, так как большую часть времени DBT_DEVNODES_CHANGED
не из-за интересующего устройства.
Есть ли способ зарегистрировать обработчик событий для других устройств, таких как контроллер Thunderbolt?