Как узнать какой EndPoint?
От: theTrueMayhem Россия  
Дата: 27.11.05 13:13
Оценка:
Есть устройство но о неизвестно что у него за Endpoint...

Написал драйвер он нашел только один pipe!

1 вопрос) Pipe это и есть впринципе Enpoint?

Далее он у меня выдал PipeType = 0x2; EndpoinAddress = 0x6

2 вопрос) можно ли по этому определить характер Endpoint'a ? И какой он у меня в данном случае ?
Дело в том что DispatchWrite выдает ошибку STATUS_INVALID_PARAMETER = c000000d; а мне кажеться что это из-за того, что у меня она написана под Bulk а на самом деле Endpoint вида Interrupt... и хотелось бы из этого узнать в чем дело..!
Re: Как узнать какой EndPoint?
От: OpenGL  
Дата: 28.11.05 04:17
Оценка:
Здравствуйте, theTrueMayhem, Вы писали:

TM>Есть устройство но о неизвестно что у него за Endpoint...


TM>Написал драйвер он нашел только один pipe!


TM>1 вопрос) Pipe это и есть впринципе Enpoint?


TM>Далее он у меня выдал PipeType = 0x2; EndpoinAddress = 0x6


TM>2 вопрос) можно ли по этому определить характер Endpoint'a ? И какой он у меня в данном случае ?

TM>Дело в том что DispatchWrite выдает ошибку STATUS_INVALID_PARAMETER = c000000d; а мне кажеться что это из-за того, что у меня она написана под Bulk а на самом деле Endpoint вида Interrupt... и хотелось бы из этого узнать в чем дело..!

Дело в том, что по одному и тому же Endpoint можно как писать данные, так и читать, хотя я сильно в этом не разбирался, но там нужно составлять URB запросы к девайсу.
Re: Как узнать какой EndPoint?
От: Аноним  
Дата: 28.11.05 18:57
Оценка:
TM>Есть устройство но о неизвестно что у него за Endpoint...

Надо прочесть дескриптор устройства и дескриптор конфигурации, разбор которых даёт список и атрибуты endpoint-в.

TM>Написал драйвер он нашел только один pipe!

TM>1 вопрос) Pipe это и есть впринципе Enpoint?
TM>Далее он у меня выдал PipeType = 0x2; EndpoinAddress = 0x6

1 пейп в драйвере обслуживает один endpoint устройства. Сколько у устр-ва e.p., столько и пейпов в драйвере.

TM>2 вопрос) можно ли по этому определить характер Endpoint'a ? И какой он у меня в данном случае ?

TM>Дело в том что DispatchWrite выдает ошибку STATUS_INVALID_PARAMETER = c000000d; а мне кажеться что это из-за того, что у меня она написана под Bulk а на самом деле Endpoint вида Interrupt... и хотелось бы из этого узнать в чем дело..!

См. выше.
Re: Как узнать какой EndPoint?
От: Аноним  
Дата: 01.12.05 13:58
Оценка:
Здравствуйте, theTrueMayhem, Вы писали:


TM>1 вопрос) Pipe это и есть впринципе Enpoint?

Да


TM>Далее он у меня выдал PipeType = 0x2; EndpoinAddress = 0x6


TM>2 вопрос) можно ли по этому определить характер Endpoint'a ? И какой он у меня в данном случае ?

Это USB_ENDPOINT_TYPE_BULK (для потоковой передачи данных без потерь)
Для определения направления используется маска USB_ENDPOINT_DIRECTION_MASK (0х80), т е в данном случае Endpoint для чтения ИЗ устройства.

Вообще то вся информация о Endpoint'ах получается в структурах USB_ENDPOINT_DESCRIPTOR по запросу параметров в начале инициализаии устройства.
Re[2]: Как узнать какой EndPoint?
От: h0rnet Украина  
Дата: 01.12.05 13:59
Оценка:
Прошу прощения, был незалогинен, предыдущий пост (От: аноним Дата: 01.12.05 15:58 ) — мой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.