Здравствуйте, проблема заключается в следующем:
При попытке чтения данных с устройства драйвер уходит в бесконечное ожидание события в функции DoCallUSBD.
При просмотре URB-пакетов через USB Monitor видно, что URB-пакет на чтение не посылается.
if (NT_SUCCESS(ntStatus))
{ Irp->IoStatus.Information=urb->UrbBulkOrInterruptTransfer.TransferBufferLength;
}
ExFreePool(urb);
return ntStatus;
}
В чем может быть проблема?
Re: USB-драйвер,чтение.
От:
Аноним
Дата:
04.04.06 16:12
Оценка:
Похоже, устройство не выставляет данные на передачу?
Нужно, чтобы перед обращением, устройство забило в fifo своего встроенного контроллера функции usb данные и выставило некий флаг готовности.
Здравствуйте, Аноним, Вы писали:
А>Похоже, устройство не выставляет данные на передачу? А>Нужно, чтобы перед обращением, устройство забило в fifo своего встроенного контроллера функции usb данные и выставило некий флаг готовности.
Устройство выставляет данные на передачу, т.к. другой драйвер, написанный с использованием Driver Studio работает с данным устройством и успешно принимает данные.
Мне кажется я не правильно формирую URB-пакет.Если у кого-нибудь есть пример драйвера или код считывания информации с конечной точки устройства, поделитесь пожалуйста, буду очеь признателен.
Re[3]: USB-драйвер,чтение.
От:
Аноним
Дата:
04.04.06 19:26
Оценка:
Вот так отправлял пакетик, и это, в своё время, работало:
Попробовал прочитать данные вышеуказанным способом, теперь выпал в BSOD из драйвера hhdusbh.sys.
Возник еще один вопрос: надо-ли конечные точки устройства каким-нибудь особенным образом инициализировать или можно сохранить PipeHandle и сразу обращаться к точке с запросом на чтение?