Лично мне нравится использовать XMLStarlet, который имеет интерфейс командной строки и работает над потоками. Это - ряд инструментов, основывался на Libxml2.
Вы пробовали Win32_LogicalDisk.MediaType? В нем есть специальные перечисления для гибких дисков. Обязательно попробуйте, когда в дисководе нет диска.
На уровне USB нет способа отличить обычный диск на ключе от USB-дискеты. Это означает, что сами окна не могут достоверно сказать, что к чему.
Есть несколько подсказок, которые вы можете собрать: Дискеты должны: а. Имеют протокол массового хранения CBI / CB б. SCSI UFI
НО в мире USB-устройств каждый делает то, что хочет. Единственная проверка: "Работает ли на windows". А Windows просто проверяет размер, если это USB-устройство со съемным носителем и обычными дискетами, оно будет рассматривать его как дискету.
Ничего не могу сказать о «настоящей» дискете, но с подключенным USB , однозначного пути нет.
Вы можете использовать атрибут Размер (USB> 1,4 МБ), вряд ли в ближайшее время есть шанс встретить флешку на 1,4 МБ.
Очевидное свойство для проверки: IOCTL_DISK_GET_DRIVE_GEOMETRY
. Это дает вам (среди прочего) MEDIA_TYPE
. Все, кроме RemovableMedia
и FixedMedia
, является дискетой.