- fprintf(stderr, "unique: %lu, bytes: %lu, options: %lx\n", ugdd->dwUniqueID, ugdd->dwBytes, ugdd->dwOptions);
- pSize = ugdd->dwBytes;
- if (pSize) {
- hexdump(ugdd->pBuf, pSize);
- }
-#ifndef NO_WINDRVR
- ret = (*ioctl_func) (fd, request, wdioctl);
-#else
- if (!ugdd->dwBytes) {
- if (usb_cable) {
- int i,j,k;
- ugdd->dwBytes = sizeof(struct usb_device_info);
-
- for (i=0; i<usb_cable->descriptor.bNumConfigurations; i++)
- {
- struct usb_config_descriptor *conf_desc = &usb_cable->config[i];
- ugdd->dwBytes+=sizeof(WDU_CONFIGURATION);
- ugdd->dwBytes+=sizeof(WDU_INTERFACE) * conf_desc->bNumInterfaces;
-
- for (j=0; j<conf_desc->bNumInterfaces; j++)
- {
- struct usb_interface *interface = &usb_cable->config[i].interface[j];
- for(k=0; k<interface->num_altsetting; k++)
- {
- unsigned char bNumEndpoints;
- bNumEndpoints = interface->altsetting[k].bNumEndpoints;
- ugdd->dwBytes+=sizeof(WDU_ALTERNATE_SETTING);
- ugdd->dwBytes+=(sizeof(WDU_ENDPOINT_DESCRIPTOR)+sizeof(WDU_PIPE_INFO))*bNumEndpoints;
- }
- }
- }
-
-
- }
- } else {
- struct usb_device_info_get *udi = (struct usb_device_info_get*)ugdd->pBuf;
- struct usb_endpoint_descriptor *ep;
-unsigned char dings[] = {0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0xfd, 0x03, 0x08, 0x00, 0x00, 0x00, 0x01, 0x02,
-0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x45, 0x21, 0x08, 0x38, 0x45, 0x21, 0x08,
-0x4c, 0x45, 0x21, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x20, 0x00, 0x01, 0x02, 0x00, 0x80,
-0x8c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4c, 0x45, 0x21, 0x08, 0x58, 0x45, 0x21, 0x08,
-0x01, 0x00, 0x00, 0x00, 0x58, 0x45, 0x21, 0x08, 0x09, 0x04, 0x00, 0x00, 0x02, 0xff, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x6c, 0x45, 0x21, 0x08, 0x7c, 0x45, 0x21, 0x08, 0x07, 0x05, 0x02, 0x02,
-0x00, 0x02, 0x00, 0x00, 0x07, 0x05, 0x86, 0x02, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x86, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00};
-
-//unique: 94, bytes: 276, options: 0
-//Vendor: 3fd
-//12 01 00 02 00 00 00 40 fd 03 08 00 00 00 01 02 12 01 00 02 00 00 00 40 fd 03 08 00 00 00 01 02
-//00 01 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//03 00 00 00 00 00 00 00 38 45 21 08 38 45 21 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//4c 45 21 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00 09 02 20 00 01 02 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//8c 00 00 00 01 00 00 00 4c 45 21 08 58 45 21 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//01 00 00 00 58 45 21 08 09 04 00 00 02 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 6c 45 21 08 7c 45 21 08 07 05 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 02 00 00 07 05 86 02 00 02 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 02 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//86 00 00 00 00 02 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-//00 00 00 00 00 00 00 00
-
- bzero(udi, ugdd->dwBytes);
- //memcpy(udi, dings, 276);
- udi->Descriptor.bLength = sizeof(WDU_DEVICE_DESCRIPTOR);
- udi->Descriptor.bDescriptorType = usb_cable->descriptor.bDescriptorType;
- udi->Descriptor.bcdUSB = usb_cable->descriptor.bcdUSB;
- udi->Descriptor.bDeviceClass = usb_cable->descriptor.bDeviceClass;
- udi->Descriptor.bDeviceSubClass = usb_cable->descriptor.bDeviceSubClass;
- udi->Descriptor.bDeviceProtocol = usb_cable->descriptor.bDeviceProtocol;
- udi->Descriptor.bMaxPacketSize0 = usb_cable->descriptor.bMaxPacketSize0;
- udi->Descriptor.idVendor = usb_cable->descriptor.idVendor;
- udi->Descriptor.idProduct = usb_cable->descriptor.idProduct;
- udi->Descriptor.bcdDevice = usb_cable->descriptor.bcdDevice;
- udi->Descriptor.iManufacturer = usb_cable->descriptor.iManufacturer;
- udi->Descriptor.iProduct = usb_cable->descriptor.iProduct;
- udi->Descriptor.iSerialNumber = usb_cable->descriptor.iSerialNumber;
- udi->Descriptor.bNumConfigurations = usb_cable->descriptor.bNumConfigurations;
-
- ep = usb_cable->config->interface->altsetting[0].endpoint;
-
- udi->Pipe0.dwNumber = 0x00;
- udi->Pipe0.dwMaximumPacketSize = usb_cable->descriptor.bMaxPacketSize0;
- udi->Pipe0.type = 0;
- udi->Pipe0.direction = 3;
- udi->Pipe0.dwInterval = 0;
-
- udi->cfg.Descriptor.bLength = usb_cable->config->bLength;
- udi->cfg.Descriptor.bDescriptorType = usb_cable->config->bDescriptorType;
- udi->cfg.Descriptor.wTotalLength = usb_cable->config->wTotalLength;
- udi->cfg.Descriptor.bNumInterfaces = usb_cable->config->bNumInterfaces;
- udi->cfg.Descriptor.bConfigurationValue = usb_cable->config->bConfigurationValue;
- udi->cfg.Descriptor.iConfiguration = usb_cable->config->iConfiguration;
- udi->cfg.Descriptor.bmAttributes = usb_cable->config->bmAttributes;
- udi->cfg.Descriptor.MaxPower = usb_cable->config->MaxPower;
-
- // ab offset 168 config desc
- }
-#endif
- if (pSize) {
- struct usb_device_info *udi = (struct usb_device_info*)ugdd->pBuf;