[an error occurred while processing this directive]
|
Безусловно, драйвер очень запутанный и требующий пристального внимания и осторожности. В нашем случае, для собственного контроллера он был переделан под endpoints типа CONTROL. Для записи данных (чтение еще не пробовали, как раз щас этим занимаемся) использовали WriteFile, также как в исходном драйвере. И надо воздать должное драйверу, после замены всех BulkOrInterrupt на Control, т.е. с минимальными доработками, он начал работать. Хотя есть и некоторые непонятные вещи. Например, для контроля за обменом пакетами между контрллером и хостом мы используем программку Snooper. Так вот, она показывает, что драйвер отравляет вслед за пакетом данных еще один пакет, происхождение и назначение которого неясно. Тут, правда, можно сослаться на то, что этот пакет на самом деле или ошибочно формируется драйвером нижнего уровня (USBD.SYS), или его отправки требует спецификация USB (хотя упомининания об этом не нашли). Короче, несмотря на то, что в целом драйвер работает, к нему есть еще кое-какие вопросы.
Что касается BULKUSB_KdPrint. Мы для отладки драйвера пользуемся микрософтофским дебаггером kd386, который запущен на второй машине, подключенной к машине с работающим драйвером. И все BULKUSB_KdPrint соответственно печатается на второй машине. Не очень удобно, но для отладки просто необходимо!
E-mail: info@telesys.ru