У меня вопрос конкретно по Remote NDIS.
Ваяю обработку запросов по спецификации Remote NDIS. Чип юзаю от кипариса FX2LP.
По ходу дела столкнулся с таким траблом.
В спецификации изложено, что
1)хост передает в запросе Send Encapsulated Command сообщение
REMOTE_NDIS_INITIALIZE_MSG (Size 24 bytes):
02 00 00 00
18 00 00 00
02 00 00 00
01 00 00 00
00 00 00 00
00 40 00 00
2)девайс подтверждает его получение передачей RESPONSE_AVAILABLE по Endpoint INTERRUPT
3)на что хост, выставив запрос GET_ENCAPSULATED_COMMAND, забирает данные от девайса в сообщении
REMOTE_NDIS_INITIALIZE_CMPLT(Size 52 bytes):
80 00 00 02
00 00 00 34
02 00 00 00
00 00 00 00
00 00 00 01
00 00 00 01
00 00 00 01
00 00 00 00
00 00 00 01
00 00 05 3A
00 00 00 03
00 00 00 00
00 00 00 00
А дальше одни непонятки...
Вопрос №1. После GET_ENCAPSULATED_COMMAND нужно ли передавать RESPONSE_AVAILABLE?
Вопрос №2. Если я отвечаю RESPONSE_AVAILABLE на запрос GET_ENCAPSULATED_COMMAND, то хост снова выставляет запрос GET_ENCAPSULATED_COMMAND. А т.к. данные я уже передал, и передавать нечего, хост на этом прекращает инициализацию. Потом решил ему постоянно передавать REMOTE_NDIS_INITIALIZE_CMPLT. И тут хост как начал метелить GET_ENCAPSULATED_COMMAND в цикле, что я испугался и впал в ступор

Вопрос №3. Что я делаю неправильно?
По документу вроде хост должен вычитать пакет данных из Bulk IN. Но таких запросов что-то не наблюдается...

((
Сообщение отредактировал DiMonstr - Feb 6 2010, 18:49