Есть устройство но о неизвестно что у него за Endpoint...
Написал драйвер он нашел только один pipe!
1 вопрос) Pipe это и есть впринципе Enpoint?
Далее он у меня выдал PipeType = 0x2; EndpoinAddress = 0x6
2 вопрос) можно ли по этому определить характер Endpoint'a ? И какой он у меня в данном случае ?
Дело в том что DispatchWrite выдает ошибку STATUS_INVALID_PARAMETER = c000000d; а мне кажеться что это из-за того, что у меня она написана под Bulk а на самом деле Endpoint вида Interrupt... и хотелось бы из этого узнать в чем дело..!
Здравствуйте, 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 по запросу параметров в начале инициализаии устройства.