![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
я получил дерево юсб устройств моего компа(хосты, хабы, флэшки)
и могу получить данные дескрипторов (строки интерфейса...) каждого из узлов подскажите пожалуйста. как мне связать дескриптор флэшки с её буквой. спасибо --------------------
Don't ask me why, ask me how. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Сложный вопрос.
Не совсем всё ясно... Вообще дескрипторы дисков хранятся тут: HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices Но у тебя, судя по всему другие дескрипторы, которые вряд ли ассоциируются с диском... |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
начиная от мышки заканчивая кардридером, у всех они есть
и этих дескрипторов несколько устройства, строки, интерфейса,конечной точки, там какраз и содержится информация об устройстве, в частности о флэш карте. но не всегда эта инфа в реестре есть, по-моему. так вот есть существуют специальнае запросы и бла, бла.... короче хост контроллер узнает что подключилась флэшка, и по идее ось присваивает логическому диску букву ...DOS имя(ежели не ошибаюс) по этой букве можно получить хэндл устройства для драйвера файловой системы и узнать его геометрию, но вот как получить хэндл по которому можно направить запрос IOCTL_GET_USB_DESCRIPTOR не по номеру порта хаба, а по букве ...вопрос!!! --------------------
Don't ask me why, ask me how. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
У мыши нет буквы диска
![]() А дескриптор естественно есть, тут я не спорю. Ну а где ж ещё винде хранить информацию? Если есть устройство, оно прописывается.
При подключении флэшдрайва, никакой буквы диска не присваивается... Инициируется процедура опознания, определения, инициализации и т.п. Буковка присваивается уже после того, когда всё определено и готово к работе. А это может достигать 0.01-15 секунд. В это время нет никакой буквы диска. Более того. Флэшка - это дисковый накопитель. Например, мы заформатили флэшку в ReiserFS. Винда его не видит. А устройство есть. А буквы нет... Другой пример. Кардридер 7-in-1 - устройство одно, а букав 4... Прямой связи нет... А может эта буква - вообще не USB устройство... вопрос... |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
там в реестре какаято левая инфа, все дескрипторы там не прописываются, факт, но коечто полезное типа строки vid_xxxx&pid_xxxx можно найти, хотя у моей флэшки тамчисел нет,
с кардридером ваще лажа он определяется как хаб, но на его порты послать запрос гет дескриптор не можно, эти ммс и др карточки чё дескрипторов не имеют, я понял, что вы склоняетесь к мысли, что с буквой дескриптор связать нельзя? у меня пока получилось одно : получить хэндл хаба и потом на порт номера эн посылать запрос дескриптора. получив хэндл устройства по букве(CreateFile(\\.\J:)) могу лишь узнать геометрию диска, при запросе дескриптора выдает ошибку...The operation completed succesfully??? есть мысли? --------------------
Don't ask me why, ask me how. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
про букву надо у винды спрашивать , а не у устройства
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
правильно, но нумерация юсб устройств по dos именам , и нумерация юсб устройств физически по моему не связаны.в первом сл мы берем все устройства и по гуиду ищем те что юсб. а во 2м случае мы получаем хэндл каждого хост контроллера, и затем по дереву подкл к нему устройств опускаемся к нужному узлу, так вот как во втором случае получить дескриптор я ещё могу но как его получить из винду не имею представления, подскажите!!!
--------------------
Don't ask me why, ask me how. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
есть мысли. Но чтобы я мог попробовать, покажи плиз как ты делаешь без буквы -------------------- Обижено школьников: 8 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
ты сам понял что сказал?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Romikgy, если ты это мне, то я имелл ввиду, что хотелось бы увидеть это
-------------------- Обижено школьников: 8 |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
уточни, что я сказал не понятного?
--------------------
Don't ask me why, ask me how. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
bems, не автору,
когда писал я мессагу , твоей еще не было ![]() Добавлено @ 13:47 artem1987, 2 случай я вообще ничего не понял -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
там очень громоздкий код, сюда выкладывать или отправить куда? --------------------
Don't ask me why, ask me how. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
artem1987, сюда кидай
-------------------- Обижено школьников: 8 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
В реестре прописан бинарный GUID из файловой системы.
Связать конечно можно, но это далеко неоднозначно. По идее должна быть возможность ассоциации логического и физического устройства. Я правда не знаю как. Но уверен, что можно... ЗЫ. На флэшдрайве может быть несколько дисков. |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
короче код.....ща пришлю смотрите, а потом уточню че хотелось бы , чтоб там было...
то что иероглифы, это комменты и логи, там ещё юнит с константами если чё не понятно спросите я объясню, начинается с батонклика.... Добавлено @ 13:56 snowy,вот-вот причем ни только несколько дисков, а например ещё один хаб к единств порту которого подключено устройство...в одной-то флэшке. --------------------
Don't ask me why, ask me how. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
artem1987, UsbTypes кинь
-------------------- Обижено школьников: 8 |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
сами напросились
и с рекурсией, я не мучился...соответственно если к хабу подключен хаб... Добавлено @ 14:10 извините, промахнулся ![]() --------------------
Don't ask me why, ask me how. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
то, что вспомнил сразу - прочитай HKLM\SYSTEM\CurrentControlSet\MountedDevices: ищешь свой девайс "\??\Volume{твой GUID}", читаешь данные, потом ищешь такие же в "\DosDevices\<буква диска>:".
а вообще, если глянуть в соответствующий раздел msdn, то аж глаза разбегаются от обилия функций, которые могут тебе помочь. ![]() edit0: протупил, первая часть поста уже была тут упомянута... ![]() edit1: глянул код. создалось ощущение(могу ошибаться), что код писан "кем-то там", и предназначен не для того, для чего его хочет употребить автор топика. можно узнать цели? ![]() Это сообщение отредактировал(а) dumb - 9.8.2006, 14:57 |
|||
|
||||
artem1987 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 18.7.2006 Где: Калининград Репутация: нет Всего: нет |
там код просто нумерует все юсб устройства подключенные к компу,
но для моей настоящей цели этот код бесполезен, если нет связи устройства в этом дереве(флэшки) и буквы диска. bems написал , что может их как-то связать и попросил код. работать с реестром , я даже и не собирался, т.к. полную информацию ВСЕХ дескрипторов там не найти (конечной точки, конфигурации,интерфейса), единственное более или менее полезное это строка vid_xxxx&pid_xxxx но для некоторых флэшей и она не содержит информации, интересен вопрос, можно ли программно связать флэшку подключенную к энному пору корневого хаба энного хоста с буквой данной диску.способ значения не имеет... --------------------
Don't ask me why, ask me how. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |