Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 662

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
При подключении USB устройства, запрашиваются дескрипторы устройства, интерфейса, конфигурации, конечных точек и т.д. Можно ли перехватить ответы устройства на запрос дескрипторов?И как это сделать?

Катерина Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Катерина (статус: Посетитель)
Вопрос отправлен: 23 июня 2007, 21:01
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Катерина!
Если нужно именно перехватить эти данные, т.е. получить их до того, как их получит система и иметь возможность изменить, перед тем как передать системе - в таком случае потребуется I/O драйвер, в DDK называемый "прослойкой" (в layered drivers), задача будет выбирать IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, и в ответах смотреть/изменять нужную информацию. В DDK есть несколько примеров. За помощью обращайтесь на http://www.wasm.ru.
Из уровня приложений же можно определить момент подключения USB устройства с помощью сообщения WM_DEVICECHANGE, а чтобы получать сообщения только о USB, и дополнительную информацию (например имя логичекого диска), нужно установить Notification с помощью RegisterDeviceNotification.
Небольшой код, откуда следует начать копать см. в прикреплённом файле, Вам нужно поискать среди структур, подобных _DEV_BROADCAST_HEADER (описания в MSDN или в dbt.h из MSVS 2005) и попробовать вытащить через них нужную информацию, если это возможно.
Извините, дальше разбираться нет времени.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 24 июня 2007, 06:14
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 4 июля 2007, 21:08; участников в обсуждении: 2.
Матвеев Игорь Владимирович

Матвеев Игорь Владимирович (статус: Студент), 4 июля 2007, 10:30 [#1]:

Есть хорошая программа USBlyzer - http://www.usblyzer.com/, которая представляет собой анализатор протокола USB. Позволяет получить самую полную информацию обо
всех подключенных USB устройствах и
их компонентах, перехватить, расшифровать и просмотреть важную информацию, передаваемую через
USB стек, разобраться, как взаимодействуют между
собой пользовательские приложения и
USB драйвер устройства.

Уверен, программа будет Вам полезна.
Катерина

Катерина (статус: Посетитель), 4 июля 2007, 21:08 [#2]:

Огромное, Вам спасибо! программа действительно отличная. И мне пришлась очень кстати.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:25
Выполнено за 0.02 сек.