USB транзакция

Обсуждаем ReactOS по-русски

Moderators: fog, fireball

Post Reply
acckiitvar
Posts: 1
Joined: Tue Dec 04, 2018 2:46 pm

USB транзакция

Post by acckiitvar » Tue Dec 04, 2018 2:59 pm

Доброго времени суток!
Я пытаюсь решить следующую задачу:
Нужно сгенерировать high speed bulk транзакцию на контроллере ehci направленную на конкретное устройство (device:endpoint), причем устройство может как существовать, так и нет.
Из документации на ehci контроллер видно, чтобы создать транзакцию на шине необходимо просто знать адрес устройства и поставить транзакцию в очередь (там еще по идее расчет времени, но пока опустим). Мой драйвер это делал, я физически на анализаторе Ellisys видел эту транзакцию.
Но работа моего драйвера нарушает работу штатного драйвера ОС, штатный драйвер просто выключает контроллер с ошибкой. Теперь хочу это повторить используя средства ОС и не знаю куда копать. Сама задача мне интересна и для Windows и для ReactOS, я решил начать отсюда, так как тут открытый исходный код и опытные разработчики с которыми можно пообщаться.
Я в исходном коде рассматривал RegistrationPacket драйвера ehci, в структуре даже функции есть EHCI_StartSendOnePacket и EHCI_StopSendOnePacket, но я не знаю как их вызвать, их параметры и адрес.
Буду благодарен за любую помощь.

A_S
Posts: 9
Joined: Wed Mar 23, 2016 1:38 pm

Re: USB транзакция

Post by A_S » Mon Dec 10, 2018 12:37 am

Эти функции unimplemented. Соответственно их придётся сначала реализовать: https://doxygen.reactos.org/df/da7/usbe ... bf9e943251
Насчёт вызова. Если посмотреть в DriverEntry, то видно что эти функции являются callback и сохраняются в поля структуры: https://doxygen.reactos.org/df/da7/usbe ... tml#l03613 Поэтому Вам надо найти как используются эти поля.
По вопросам работы EHCI-драйвера лучше написать Вадиму Галянту. Его e-mail есть в заголовочном файле. Он в настоящий момент ведущий разработчик по USB-стеку и думаю сможет пояснить лучше всего.

Post Reply

Who is online

Users browsing this forum: Sputnik [Bot] and 1 guest