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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с получением структуры USB_NODE_CONNECTION_INFORMAT  (Прочитано 6119 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Николай
Гость
« : 23-09-2004 16:28 » 

Я перевел в Bulder  пример из DDK usbview, но возникла проблема
при получении структуры USB_NODE_CONNECTION_INFORMATION_EX,
я ее получаю и даже информациия правильная но вот connectionInfo->ConnectionStatus, всегда равен 0, хотя я знаю точно что устролйство есть.Что делать?

Листинг:


PUSB_NODE_CONNECTION_INFORMATION_EX     connectionInfo;
    PUSB_DESCRIPTOR_REQUEST             configDesc;
    PSTRING_DESCRIPTOR_NODE             stringDescs;
    PUSBDEVICEINFO                      info;

    PCHAR driverKeyName;
    PCHAR deviceDesc;
    CHAR  leafName[512];


    for (index=1; index <= NumPorts; index++)
    {
        ULONG nBytes;

         nBytes = sizeof(USB_NODE_CONNECTION_INFORMATION_EX) + sizeof(USB_PIPE_INFO) * 30;

        connectionInfo = (PUSB_NODE_CONNECTION_INFORMATION_EX)ALLOC(nBytes);



        if (connectionInfo == NULL)
        {
            OOPS();
            //break;
        }

        //
        // Now query USBHUB for the USB_NODE_CONNECTION_INFORMATION structure
        // for this port.  This will tell us if a device is attached to this
        // port, among other things.
        //
        connectionInfo->ConnectionIndex = index;


        success = DeviceIoControl(hHubDevice,
                                  IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX,
                                  connectionInfo,
                                  nBytes,
                                  connectionInfo,
                                  nBytes,
                                  &nBytes,
                                  NULL);
...
потом смотрю, а connectionInfo->ConnectionStatus = 0
}
Записан
Серж
Гость
« Ответ #1 : 24-09-2004 06:46 » 

Николай, а что возвращает DeviceIoControl ?
Записан
Anonymous
Гость
« Ответ #2 : 24-09-2004 19:31 » 

Сам DeviceIoControl возвращает BOOL.

Я вчера обнаружил что всеж проблема заключается в том, что элементы структуры USB_NODE_CONNECTION_INFORMATION_EX возвращаються не правильно, причем DeviceDescriptor возвращаеться правильно, не знаю в чем дело.
Записан
Николай
Гость
« Ответ #3 : 24-09-2004 19:39 » 

Да просто чтоб было понятно сама структура

typedef struct _USB_NODE_CONNECTION_INFORMATION_EX {
       
    ULONG ConnectionIndex;
    /* usb device descriptor returned by this device
       during enumeration */

    USB_DEVICE_DESCRIPTOR DeviceDescriptor;

    UCHAR CurrentConfigurationValue;
    UCHAR Speed;
    BOOLEAN DeviceIsHub;
    USHORT DeviceAddress;
    ULONG NumberOfOpenPipes;
    USB_CONNECTION_STATUS ConnectionStatus;

    USB_PIPE_INFO PipeList[0];
} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines