После некоторого изучения поведения данного сообщения возник вопрос: после прихода с этим сообщением параметра DBT_DEVICEARRIVAL, хотельсоб узнать как можно проше что же за устройство в систему добавилось. Пока вижу путь что при запуске программы необходимо собрать через SetupDiGetClassDevs(...) информацию обо всех устройствах уже существующих в системе, а при приходе DBT_DEVICEARRIVAL анализировать чтоже добавилось. А хотелось бы что нибудь типа: GetLastAddingDevice(...), может быть есть какой нибудь способ?
Еще не совсем понятно почему DBT_DEVICEARRIVAL приходит только при подключении дисков USB, а при подключении мышки или клавиатуры через USB не приходит? Пробывал различные GUID в RegisterDeviceNotification, но DBT_DEVICEARRIVAL так и не приходят.
И еще вопрос есть ли какая нибудь функция для безопасного отключения USB дисков? В ручную это делается щелчком мыши на диспетчере USB устройств, а хотелось бы из программы самому отключить диск.
В жизни мало быть умным, надо еще быть не дураком.