From: Christoph Lindemann on
Does your printer support the class specific GET_DEVICE_ID request. This
will return the IEEE 1284 Device ID, which windows uses to build the
hardware ID for USB (actually any IEEE 1284 compatible device) print
devices. (The USS-720 chip forwards this request to the connected IEEE 1284
device, if your device does not return this, it will return a 0 length ID)
Checkout "Universal Serial Bus Device Class Definition for Printing Devices
1.1" section "4.2.1 GET_DEVICE_ID"

You should provide a serial number when you want to run several devices
concurrently on 1 machine.

I also suggest that you provide your own values for idVendor, idProduct,
iManufacturer, iProduct... to prevent clashing with other pruducts that are
using the USS720.

--
Christoph Lindemann
Undocumented Printing
http://www.undocprint.org/


"Dave Burns" <dburns(a)newsgroup.nospam> wrote in message
news:uLVyu8AUJHA.5376(a)TK2MSFTNGP02.phx.gbl...
> We would like to adapt our current printer driver to develop a PNP
> compatible WHQL signed driver for use on Windows 2000, XP, Vista, Server
> 2003, Server 2008 for 32 and 64 bit versions but without changing the USB
> descriptors in the hardware if possible. At device detection, the driver
> installers would have to key off of "Prism Plus" in the iProduct string to
> uniquely identify the product and instantiate the device. Multiple
> devices must be able to instantiate then operate simultaneously while
> attached to the same host computer.
>
> Here is the dump for the USB device descriptor.
>
>
> Regards, Dave
>
> Device descriptor
> Name Value Dec Hex Bin
> bLength 18 18 0x12 10010
> bDescriptorType DEVICE 1 0x01 1
> bcdUSB 1 256 0x0100 1
> bDeviceClass Class defined at interface level 0 0x00 0
> bDeviceSubClass Subclass defined at interface level 0 0x00 0
> bDeviceProtocol None 0 0x00 0
> bMaxPacketSize0 8 8 0x08 1000
> idVendor Agere Systems Inc. "1,150" 0x047E 100
> idProduct USS720 Parallel Port "4,097" 0x1001 10000
> bcdDevice 2.0.2 514 0x0202 10
> iManufacturer 1 1 0x01 1
> iProduct "2 ""Prism Plus""" 2 0x02 10
> iSerialNumber 0 0 0x00 0
> bNumConfigurations 1 1 0x01 1
>
>
> Name Value Dec Hex Bin
> bLength Valid 9 0x09 1001
> bDescriptorType CONFIGURATION 2 0x02 10
> wTotalLength 78 bytes 78 0x004E 0
> bNumInterface 1 1 0x01 1
> bConfigurationValue 1 1 0x01 1
> iConfiguration 0 0 0x00 0
> bmAttributes. Reserved Zero 0 0x00 0
> bmAttributes. RemoteWakeup Not supported 0 0x0 0
> bmAttributes. SelfPowered Yes 1 0x1 1
> bmAttributes. Reserved7 Invalid 0 0x0 0
> bMaxPower 100 mA 50 0x32 110010
>
>
>
> Configuration descriptor
> Name Value Dec Hex Bin
> bLength Valid 9 0x09 1001
> bDescriptorType CONFIGURATION 2 0x02 10
> wTotalLength 78 bytes 78 0x004E 0
> bNumInterface 1 1 0x01 1
> bConfigurationValue 1 1 0x01 1
> iConfiguration 0 0 0x00 0
> bmAttributes. Reserved Zero 0 0x00 0
> bmAttributes. RemoteWakeup Not supported 0 0x0 0
> bmAttributes. SelfPowered Yes 1 0x1 1
> bmAttributes. Reserved7 Invalid 0 0x0 0
> bMaxPower 100 mA 50 0x32 110010
>
> Interface descriptor
> Name Value Dec Hex Bin
> bLength Valid 9 0x09 1001
> bDescriptorType INTERFACE 4 0x04 100
> bInterfaceNumber 0 0 0x00 0
> bAlternateSetting 0 0 0x00 0
> bNumEndpoints 1 1 0x01 1
> bInterfaceClass Printer 7 0x07 111
> bInterfaceSubClass Printer 1 0x01 1
> bInterfaceProtocol Unidirectional 1 0x01 1
> iInterface 0 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 1 OUT 1 0x01 1
> bmAttributes. TransferType Bulk 2 0x2 10
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 64 bytes 64 0x0040 0
> bInterval Ignored for Bulk endpoints 0 0x00 0
>
> Interface descriptor
> Name Value Dec Hex Bin
> bLength Valid 9 0x09 1001
> bDescriptorType INTERFACE 4 0x04 100
> bInterfaceNumber 0 0 0x00 0
> bAlternateSetting 1 1 0x01 1
> bNumEndpoints 2 2 0x02 10
> bInterfaceClass Printer 7 0x07 111
> bInterfaceSubClass Printer 1 0x01 1
> bInterfaceProtocol Bidirectional 2 0x02 10
> iInterface 0 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 1 OUT 1 0x01 1
> bmAttributes. TransferType Bulk 2 0x2 10
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 64 bytes 64 0x0040 0
> bInterval Ignored for Bulk endpoints 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 2 IN 130 0x82 10000010
> bmAttributes. TransferType Bulk 2 0x2 10
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 64 bytes 64 0x0040 0
> bInterval Ignored for Bulk endpoints 0 0x00 0
>
> Interface descriptor
> Name Value Dec Hex Bin
> bLength Valid 9 0x09 1001
> bDescriptorType INTERFACE 4 0x04 100
> bInterfaceNumber 0 0 0x00 0
> bAlternateSetting 2 2 0x02 10
> bNumEndpoints 3 3 0x03 11
> bInterfaceClass Vendor-specific 255 0xFF 11111111
> bInterfaceSubClass Vendor-specific 0 0x00 0
> bInterfaceProtocol Vendor-specific 255 0xFF 11111111
> iInterface 0 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 1 OUT 1 0x01 1
> bmAttributes. TransferType Bulk 2 0x2 10
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 64 bytes 64 0x0040 0
> bInterval Ignored for Bulk endpoints 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 2 IN 130 0x82 10000010
> bmAttributes. TransferType Bulk 2 0x2 10
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 64 bytes 64 0x0040 0
> 1000000
> bInterval Ignored for Bulk endpoints 0 0x00 0
>
> Endpoint descriptor
> Name Value Dec Hex Bin
> bLength Valid 7 0x07 111
> bDescriptorType ENDPOINT 5 0x05 101
> bEndpointAddress 3 IN 131 0x83 10000011
> bmAttributes. TransferType Interrupt 3 0x3 11
> bmAttributes. Reserved Zero 0 0x00 0
> wMaxPacketSize 4 bytes 4 0x0004 0
> bInterval 1 frame (1 ms) 1 0x01 1
>
>
>
> String descriptor
> Name Value Dec Hex Bin
> bLength 4 4 0x04 100
> bDescriptorType STRING 3 0x03 11
> wLANGID[0] English (US) "1,033" 0x0409 100
> 1001
>
>
> String descriptor
> Name Value Dec Hex Bin
> bLength 22 22 0x16 10110
> bDescriptorType STRING 3 0x03 11
> Content """Prism Plus"""
>
>
>
>
>
>
>
>
>