|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|||||||||||
Точка монтирования USB диска SetupAPI30.10.2013, 16:59. Показов 12605. Ответов 38
Метки нет (Все метки)
Вообщем есть DeviceID которое получено через SetupAPI с помощью :
1.
2. Далее я смог получить с помощью этого http://msdn.microsoft.com/en-u... s.85).aspx в итоге получаю что-то вроде
Скорее всего камень предкновения это Volume name: \\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}\ но неясно как куда и зачем)))
0
|
|||||||||||
| 30.10.2013, 16:59 | |
|
Ответы с готовыми решениями:
38
Перехват события монтирования диска
|
|
Ушел с форума
|
|||
| 31.10.2013, 01:48 | |||
|
функции SetupDiGetDeviceInstanceId: http://msdn.microsoft.com/en-u... s.85).aspx дисковое устройство (SetupDiGetDeviceInterfaceDetail -> DevicePath). Ну а потом можно запросить у mount manager-а список точек монтирования и найти среди них эту ссылку. Для этого служит запрос IOCTL_MOUNTMGR_QUERY_POINTS.
0
|
|||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|||||||||||
| 31.10.2013, 10:44 [ТС] | |||||||||||
|
О том как я получаю DeviceInstanceID и FrendlyName и прочие атрибуты вот скрипт, ну здесь как мы видим он по GUID ищет но я также переделал эту функцию чтоб он по DeviceInstanceID искал т.е. структуре
0
|
|||||||||||
|
Ушел с форума
|
|
| 31.10.2013, 11:08 | |
|
Можно примерно так:
Запросить через SetupDiGetClassDevs все устройства с devinterface == disk. Перечислить их с помощью SetupDiEnumDeviceInterfaces, получить для каждого устройства символьную ссылку - SetupDiGetDeviceInterfaceDetails. Дальше нужно открыть mount manager (через CreateFile, используя имя "\\.\MountPointManager") и запросить у него все точки монтирования, для этого есть IOCTL_MOUNTMGR_QUERY_POINTS. Запрос возвращает структуру MOUNTMGR_MOUNT_POINTS, которая содержит заполненный массив структур MOUNTMGR_MOUNT_POINT с именами нужных объектов. В каждом элементе будет символьная ссылка (типа "\\?\usbstor#vid_pid&serial" и т.д.), потом имя устройства ("\Device\HarddiskVolume3", например) и ID (например, "\DosDevices\E:"). Ну а далее - проход по массиву структур с поиском символьной ссылки, полученной через Setup API. Если есть совпадение - вытаскиваем из структуры ID (см. выше), вытаскиваем из нее букву диска. Здесь есть свои тонкости, но думаю, разберетесь. Кстати, если кто-нибудь знает способ проще и без ограничений (например, поддержка всей линейки Windows от XP до 8.1, работа без прав админа и т.д.), буду очень благодарен. Кстати, вот топик из MSDN на связанную тему, может будет полезным: I/O Control Codes Sent by Mount Manager Clients http://msdn.microsoft.com/en-u... s.85).aspx
0
|
|
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
||||||
| 31.10.2013, 11:39 [ТС] | ||||||
|
Вот нашел такой код
Только не ясно что за <mountmgr.h> Вроде это то что мне нужно Добавлено через 6 минут Да и кстати можно ли как-нибудь мониторить телефоны фотоапараты? они же не создают никакого раздела единственное что я понял что они относятся к классу GUID - Image но туда относятся и например сканеры может у вас был опыт работы с этими девайсами?
0
|
||||||
|
Ушел с форума
|
|||
| 31.10.2013, 12:25 | |||
|
А они еще и как съемные носители определяются... В общем, нужно смотреть конкретно по задаче. У меня, например, был USB-модем, который определялся как CD-ROM. Да-да, это производитель решил таким вот оригинальным способом сделать, чтобы работал автозапуск.
0
|
|||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
||
| 31.10.2013, 18:42 [ТС] | ||
|
А по поводу устройств портативных они какнибудь в системе отражаются кроме как Видео камера там например, для них какой-то раздел монитируется? ибо буквенным разделом они не обладают это уж точно...
0
|
||
|
Ушел с форума
|
|||
| 31.10.2013, 18:47 | |||
|
Сделать копи-паст нужных объявлений из этого заголовка и все. Их там штук пять получится, наверное, от силы.
0
|
|||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|||
| 31.10.2013, 19:01 [ТС] | |||
|
Опять же как быть с флешками которые определяются как CD-ROM? Ведь на них тоже можно кидать данные, у меня правда только МТС-модем был и определялся как CD-ROM при этом в нем еще слот MicroSD был
0
|
|||
|
Ушел с форума
|
|||
| 31.10.2013, 19:22 | |||
|
У меня установлен WDK 7600.1, там mountmgr.h весит 11 КБ (здесь всего 4) и в нем нет никаких инклудов. Но в чем конечная цель всех этих манипуляций ?
0
|
|||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|||
| 31.10.2013, 20:08 [ТС] | |||
а то у меня почему-то не ставится DriverKit не нравится ему что я с виндой работаю на виртуальной машине ![]() 1) комп запускается в него уже вставлены USB-Flash, iPhone, Цифроваякамера (все через USB) я идентифицирую эти устройства и отслаю в лог как УЖЕ подключенные списком в виде: DeviceID: USB\VID_PID_\Serial FriendlyName: blablabla EnumerateName: USB В пункте первом прибегаю сначала к выводу по GUID всех USB-устройств а потом только MassStorage применяя GUID логических дисков (куда входит и IDE/SATA) но с условием if(EnumerateName = USB) Это все на событии WM_CREATE PS от сюда в дальнейшем отфильтрую класс принтеров, HID-устройств ибо в них нет смысла. 2) В комп вставляется флешка, приходит событие WM_DEVICECHANGE подписавшись на сообщения BROADCAST я получаю DiviceInstanceID который пихаю в SetupAPI и извлекаю как в первом случае такую-же информацию об устройстве пишу в лог: Add DeviceID:USB\VID_PID_\Serial FriendlyName: blablabla EnumerateName: USB Т е в конечном итоге каждой ветви моей программы у меня есть DeviceID и информация о том что за устройство USBSTOR или не USBSTOR. Дальше требуется что если это USBSTOR тогда определить для него букву созданного раздела C: или E:... дальше установка на эту папку (раздел) подписки на события изменения там структуры для начала хотябы чтобы было ясно идет запись или удаление. Для флешек и прочих устройств которые создают логические разделы все решаемо как я понял и думаю смогу это осилить и реализовать, постепенно. Но вот что делать с этими устройствами цифровыми (камеры телефоны) ну и флешками которые монтируются как образ это остается загадкой. Либо как вариант их вообще запретить принцип: Устройство вставляется и оно присуще к классу Image просто брать его и запрещать программно естественно. Также остается вопрос с CD-DVD образами а точнее флешками которые монтируются под их вид
0
|
|||
|
Ушел с форума
|
|||||||
| 31.10.2013, 20:48 | |||||||
|
Кликните здесь для просмотра всего текста
1
|
|||||||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|||||||
| 06.11.2013, 17:54 [ТС] | |||||||
|
Вообщем-то частично вы были правы, но вот не задача в Windows 7 все проходит замечательно можно сравнивать но на ХР почему-то выводит RemoveableMedia что делать ? Там на скрине плохо видно вывод из под Windows XP вот он
0
|
|||||||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|
| 06.11.2013, 18:15 [ТС] | |
|
Ясно то что USBSTOR\RemovableMedia это "ребенок" USBSTOR(а USBSTOR это родитель USBSTOR\RemovableMedia) но как продвинуться по иерархии ?
0
|
|
|
Ушел с форума
|
|
| 06.11.2013, 18:49 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
||
| 06.11.2013, 18:58 [ТС] | ||
|
\??\STORAGE#RemovableMedia#8&1c1fa76d&0& RM#{53f5630d-b6bf-11d0-94f2 -00a0c91efb8b} и \??\USBSTOR#disk&ven_jetflash&prod_ts4gj fv30&rev_8.0#serialnumber#{guid} PS нашел структуру CM_Get_Child но она работает в Windows XP а в Windows 7 нет.
0
|
||
|
Ушел с форума
|
|
| 06.11.2013, 19:04 | |
|
Вы можете объяснить подробно, откуда на XP получаются эти две строки и
почему их нужно состыковывать ? Я пока не до конца "врубился".
0
|
|
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
||||||||||||||||||||||
| 06.11.2013, 19:12 [ТС] | ||||||||||||||||||||||
а с помощью
0
|
||||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
|
| 06.11.2013, 19:17 [ТС] | |
|
Корнем зла считаю отличие определения Flash устройства
0
|
|
|
0 / 0 / 1
Регистрация: 16.10.2011
Сообщений: 53
|
||||||||||||||||
| 06.11.2013, 21:55 [ТС] | ||||||||||||||||
|
Похоже этот вариант отпадает ибо я не могу совладеть с этой структурой
Добавлено через 22 минуты Разобрался
0
|
||||||||||||||||
| 06.11.2013, 21:55 | |
|
Помогаю со студенческими работами здесь
20
Работа с эндпоинтами устройств USB и setupapi Ошибка монтирования образа диска на VirtualBox Программа для монтирования образа диска (iso) Как изменить флаги монтирования по умолчанию для usb-носителей? Python linux нужно написать программу для монтирования и размонтирования usb Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью.
Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|