Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Драйвер WINUSB. Не удается корректно записать в драйвер
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Bulat
Решил воспользоваться стандартным WDF-драйвером Winusb.sys из WDK 7600. Все делал согласно инструкции.
Настроив inf-файл под свое устройство, удалось успешно установить драйвер, открыть устройство с помощью createfile. Далее при попытке записи 1-го байта в драйвер с использованием функции WinUsb_WritePipe из библиотеки winusb.lib, не смотря на то, что функция записи WinUsb_WritePipe возвращает TRUE, программа USBTrace показала, что было отправлено 0 байт, хотя пытался отправить 1 байт. Проверил адреса конечных точек для записи и чтения, в моем устройстве они следующие:
0x81, // bEndpointAddress, Endpoint 01 - IN
0x02, // bEndpointAddress, Endpoint 02 - OUT,
то есть, направления точек заданы верны, если адреса поменять местами, то WinUsb_WritePipe возвращает FALSE, отсюда сделал вывод, что, видимо, направления и адреса задал правильно.
Атрибуты обеих конечных точек BULK.
Может быть я еще что-то не учел в дескрипторах конечных точек на устройстве? Со стороны приложения хоста вроде никаких изменений по сравнению с кодом из msdn не вносил.
Почему WinUsb_WritePipe возвращает TRUE, но при этом ничего не отправляет?
Bulat
Ошибку нашел. Заработало.
Konst_777
Цитата(Bulat @ Sep 9 2013, 15:07) *
Ошибку нашел. Заработало.

Ну а народу рассказать, в чем было дело? wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.