Получение описания устройства COM - PullRequest
4 голосов
/ 08 ноября 2011

Я читал много постов на SO об этом, но все они либо в C #, либо в MFC. Я использую обычные библиотеки Windows, а не общие библиотеки MFC или ATL.

Я могу легко перечислить доступные COM-порты, но я не знаю, как получить описание, как, например, в диспетчере устройств в Windows. Я читал через MSDN, и ближе всего я подошел - SetupDiGetDeviceRegistryProperty (), но я думаю, что для этого должен быть быстрый способ. Я также обнаружил, что Qt имеет QextSerialEnumerator :: getPorts (), но, поскольку я не использую Qt, я надеялся, что что-то подобное будет доступно из WinAPI.

Если у кого-то есть сниппет, это будет с благодарностью.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Все, что я могу сказать, это не использовать функции setupDI WDM, если вы не знаете ТОЧНО, что делаете, для меня это путь назад, но посмотрите примеры Windows DDK, я думаю, что реализация dll вы видите в диспетчере устройств находится в / ports ...

Проблема заключается в том, что последовательные порты очень и очень старые, поэтому их перетаскивали сквозь века и взламывали вместе в windows 7, поэтому, например, когда вы вносите изменения в COM-порт, вы должны писать для победы. ini, но win.ini не существует (как я слышал, потому что любые «изменения» возвращаются в реестр.

Как угодно, удачи ..

0 голосов
/ 08 ноября 2011

Прежде всего, какое описание вам действительно нужно?Вы можете получить различную информацию о COM-портах с помощью EnumPorts () и Registry-way.Например, Registry-Way покажет виртуальный COM-порт - этот EnumPorts не может сделать.Второе - существует 9 разных способов перечисления COM-портов.Примеры их использования здесь - http://www.naughter.com/enumser.html (я использовал некоторый код здесь, в моем проекте).Также обратите внимание, что автор использует множество специфических для msvc функций - контейнеры atl для выделения памяти и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...