Моя программа должна найти SD-карты среди всех локальных дисков. Можно легко идентифицировать съемные диски (используя GetLogicalDrivesStrings()
и GetDriveType()
), но зная, какие из них действительно SD-карты, кажется сложнее.Обнаружение приводов SD-карт
Есть немало вопросов (в том числе here, here, here и here), но не полный ответ (много внимания на USB). Некоторые говорят, что невозможно отличить SD-карты от USB, однако Windows Explorer отображает различные значки дисков для SD-карт (по крайней мере, в Windows 7), поэтому он различает, что есть.
Дополнительный бонус за код НЕ основан на WMI, так как моя программа по-прежнему использует родной Win32/MFC! Могут ли помочь некоторые DeviceIoControl()
свойства? Теперь, если у кого-то есть решение C#/.NET, я все равно с удовольствием прочитал бы его!
Easy cheat; так как оболочка знает тип, спросите оболочку. Используйте 'SHGetFileInfo', чтобы получить индекс значка для диска. –
Ха-ха! Вы заработали золотой значок _Dirty-yet-funny-and-even-maybe-effective solution_. Позвольте мне просто проверить индекс значка на всех версиях Windows! Я мог бы использовать ваше решение, которое покажет, насколько я в отчаянии :-D –