suresh
2010-07-20 12:30:59 UTC
Hi,
We have a usb composite device which has one mass storage interface
and another as a network interface. We are developing a WDF driver
(NDIS-USB) for the network interface.
Immediately after WdfUsbTargetDeviceCreate if I break into the
debugger and examine the newly created device, then I see that the
Control Pipe Handle is NULL!
Here is the actual output:
--------
kd> !WDFUSBDEVICE 0x0000057f`fe5905f8
WDFUSBDEVICE 0000057ffe5905f8
=============================
Config descriptor fffffa80037216b0, device descriptor fffffa8001a6fb58
Control USBD_PIPE_HANDLE 0000000000000000
Num interfaces 1
device attached to a USBPORT serviced core stack
USBDI Version 0x00000600, Supported USB Version 0x00000200
WDFUSBINTERFACE 0000057ffe56e8f8
Interface Number 0x01 Class 0xff, SubClass 0x00, Protocol 0x00
Alt Setting 0, Num Endpoints 2, Interface Desc fffffa80037216b9
--------
We also have another usb based ehternet device (which is not a
composite device) whose driver doesn't have this problem. Actually
this driver (WHQL certified) is only being ported for the composite
device.
The output at the same place using the working driver is:
---------
kd> !WDFUSBDEVICE 0x0000057f`fc466478
WDFUSBDEVICE 0000057ffc466478
=============================
Config descriptor fffffa80036c3790, device descriptor fffffa8003b99cd8
Control USBD_PIPE_HANDLE fffffa8001ae5060
Num interfaces 1
device attached to a USBPORT serviced core stack
USBDI Version 0x00000600, Supported USB Version 0x00000110
WDFUSBINTERFACE 0000057ffd829558
Interface Number 0x00 Class 0xff, SubClass 0x00, Protocol 0xff
Alt Setting 0, Num Endpoints 3, Interface Desc fffffa80036c3799
---------
I am wondering if the composite device architecture has something to
do with it, and if I missed any important step in the initialization.
However this is actually just the start of device initialization.
Some pointers will be of a great help.
Regards,
Suresh
We have a usb composite device which has one mass storage interface
and another as a network interface. We are developing a WDF driver
(NDIS-USB) for the network interface.
Immediately after WdfUsbTargetDeviceCreate if I break into the
debugger and examine the newly created device, then I see that the
Control Pipe Handle is NULL!
Here is the actual output:
--------
kd> !WDFUSBDEVICE 0x0000057f`fe5905f8
WDFUSBDEVICE 0000057ffe5905f8
=============================
Config descriptor fffffa80037216b0, device descriptor fffffa8001a6fb58
Control USBD_PIPE_HANDLE 0000000000000000
Num interfaces 1
device attached to a USBPORT serviced core stack
USBDI Version 0x00000600, Supported USB Version 0x00000200
WDFUSBINTERFACE 0000057ffe56e8f8
Interface Number 0x01 Class 0xff, SubClass 0x00, Protocol 0x00
Alt Setting 0, Num Endpoints 2, Interface Desc fffffa80037216b9
--------
We also have another usb based ehternet device (which is not a
composite device) whose driver doesn't have this problem. Actually
this driver (WHQL certified) is only being ported for the composite
device.
The output at the same place using the working driver is:
---------
kd> !WDFUSBDEVICE 0x0000057f`fc466478
WDFUSBDEVICE 0000057ffc466478
=============================
Config descriptor fffffa80036c3790, device descriptor fffffa8003b99cd8
Control USBD_PIPE_HANDLE fffffa8001ae5060
Num interfaces 1
device attached to a USBPORT serviced core stack
USBDI Version 0x00000600, Supported USB Version 0x00000110
WDFUSBINTERFACE 0000057ffd829558
Interface Number 0x00 Class 0xff, SubClass 0x00, Protocol 0xff
Alt Setting 0, Num Endpoints 3, Interface Desc fffffa80036c3799
---------
I am wondering if the composite device architecture has something to
do with it, and if I missed any important step in the initialization.
However this is actually just the start of device initialization.
Some pointers will be of a great help.
Regards,
Suresh