![]() |
|
|||||||
| Notices |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Guest
Posts: n/a
|
RNDIS Composite Device
Hi,
we have build a composite device with a RNDIS interface and a CDC ACM interface. If RNDIS uses the usb interfaces 0 and 1 evrything works fine. If I use the USB interfaces 2/3 for RNDIS I get a blue screen in usb8023.sys. The blue screen appears after the configuration descriptor was requested from the MI driver. OS: Windows XP SP2 without hot fixes. Has anybody a running solution where RNDIS works on a USB interface grater than 0/1 ? Thanks Guenter |
|
|
|
#2 |
|
Guest
Posts: n/a
|
Re: RNDIS Composite Device
On Jul 4, 4:14 am, Guenter <> wrote:
> If RNDIS uses the usb interfaces 0 and 1 evrything works fine. If I use the > USB interfaces 2/3 for RNDIS I get a blue screen in usb8023.sys. The blue > screen appears after the configuration descriptor was requested from the MI > driver. Well, sounds like usb8023.sys doesn't like that, right? (Other MS drivers have similar restrictions: for example, usbser.sys will only load on interfaces 0/1). You might make a lower filter to usb8023.sys that tweaks the interface numbers back to 0/1 if you really need them on 2/3. |
|
|
|
#3 |
|
Newbie
Join Date: Jul 2008
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
![]() |
Re: RNDIS Composite Device
Problem Description
-------------------- I have a USB composite device (2 devices). One of the subdevice is USB RNDIS ethernet and the other is printer. The USB configuration descriptors use IAD (Interface Association Descriptor) to indicate the group of interfaces by each device. I am speculating the existing RNDIS drivers could not deal with IAD correctly. This is because I am able to get it work properly when used alone (not a part of composite device) but it fails when I try to for a composite device. Anyone in MS can confirm this ? If this is the case, how to approach MS to fix this problem to make it support USB composite device and IAD correctly ? The Descriptors we are using are DEVICE DESCRIPTOR ================== .bLength = 18, .bDescriptorType = 0x01, .bcdUSB = 2.00, .bDeviceClass = 0xef, //(Misc class) .bDeviceSubClass = 0x02, .bDeviceProtocol = 0x01, .idVendor = 0x525, .idProduct = 0xa4a2, .iManufacturer = 1, .iProduct = 2, .iSerialNumber = 3, .bNumConfigurations = 1, CONFIGURATION DESCRIPTOR ========================= .bLength = 0x9, .bDescriptorType = 0x02, /* .wTotalLength computed dynamically */ .bNumInterfaces = 3, /* Toatl No. of interfaces in all devices (we have 2 interface in RNDIS + 1 in printer */ .bConfigurationValue = 3, .iConfiguration = 0, .bmAttributes = 0xc0, .bMaxPower = 1, DEVICE QUALIFIER ====================== .bLength = sizeof dev_qualifier, .bDescriptorType = 0x06, .bcdUSB = 2.00, .bDeviceClass = USB_CLASS_MISC, //(The value is same as bDeviceClass) .bNumConfigurations = 1, Interface Association Descriptor for RNDIS ============================================ .bLength = sizeof(struct usb_interface_assoc_descriptor), .bDescriptorType = USB_DT_INTERFACE_ASSOCIATION, .bFirstInterface = G_ETHER_CTRL_INTF, .bInterfaceCount = 2, .bFunctionClass = USB_CLASS_COMM, .bFunctionClass = 0, .bFunctionSubClass = 0x02, .bFunctionProtocol = 0xff, .iFunction = 0 , Using this configuration it doesnot work properly. With the above descriptors , Only one device is detected at a time. If we use bDeviceclass as 0x02(as communication class)then rndis ethernet is detected at host side and when we use bDeviceClass 0x00 (as per interface) then either printer or rndis ethernet is detected.In the later case (when bDeviceClass is 0x00, as per interface) if rndis ethernet is detected then also we are not able to install it properly. The Error message appears on host side is "The driver is not installed properly" with error code 10. Note : We have checked with .bDeviceClass as 1) 0x02 (as communication Class) , 2) 0x00 (per interface class) B Regards Rajeev |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
< Windows Help - MS Office Help - Hardware Support >
| New To Site? | Need Help? |