Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: USB сканер. В чем лаги?  (Прочитано 4799 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
maaaaaad
Гость
« : 06-11-2003 21:47 » new

есть сканер на usb USB\VID_043D&PID_0057 (mustek, можете не рыться в вендорах%-) )
написал inf, в драйве (AddDevice) пытаюсь прочесть дескриптеры

NTSTATUS XDeviceScan(PDEVICE_OBJECT fdo) {
   NTSTATUS            status = STATUS_SUCCESS;
   URB                  urb;
   USB_DEVICE_DESCRIPTOR   dd;

   
   UsbBuildGetDescriptorRequest(&urb,
      //sizeof(_URB_CONTROL_DESCRIPTOR_REQUEST),
      (USHORT) sizeof (struct _URB_CONTROL_DESCRIPTOR_REQUEST),
      USB_DEVICE_DESCRIPTOR_TYPE,
      0, 0, &dd, NULL, sizeof(dd), NULL);
   __try {
      status = SendAwaitUrb(fdo, &urb);
   }
   __except(EXCEPTION_CONTINUE_EXECUTION) {
      DbgPrint(DRIVER_NAME "SendAwaitUrb() cause exception!\n");
   }
   if (!NT_SUCCESS(status)) {
      DbgPrint(DRIVER_NAME " - Error %X trying to read device descriptor\n", status);
      return status;
   }

   DbgPrint(DRIVER_NAME " - Configuring device from %ws\n", dd.iManufacturer);
   DbgPrint(DRIVER_NAME " - Product is %ws\n", dd.iProduct);
   DbgPrint(DRIVER_NAME " - Serial number is %ws\n", dd.iSerialNumber);

   // Read the descriptor of the first configuration. This requires two steps. The first step
   // reads the fixed-size configuration descriptor alone. The second step reads the
   // configuration descriptor plus all imbedded interface and endpoint descriptors.

   return status;


SendAwaitUrb - стандартная, только что пытался переправлять IRP на  DeviceSendIprTo (и Pdo=) )
CallDriver в ней возвращает STATUS_INVALID_DEVICE_REQUEST
Устройство добавляется и стартуется, но вот ничего не читается...
Такое впечатление, что IRP не туда отправляются...

класс нужно обязательно использовать USB?, а то я свой юзаю...
думаю не правильно проинстален драйвер...
Записан
maaaaaad
Гость
« Ответ #1 : 07-11-2003 17:23 » 

inf перепутал, не тот вендор... не тот диск вставил...

off topic

/////////////////////////////////////
Break me down until I question me,
Darkness can destroy my drive

Sun doesn't rise at all,
Who knows how far I'll fall,
Sun doesn't rise at all,
Welcome my downfall

Somewhere in this dieing day,
Yes I've had my great escape,
I find it hard to concentrate,
While you can take control of,
Found to empty all I gave up for you,
Makes me want to break,
Around the corner there's a near rim

>hboot
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines