Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

USB Composite Function Driver

696 views
Skip to first unread message

Steve Araiza

unread,
Sep 9, 2008, 7:09:16 AM9/9/08
to
I am trying to use the new CompositeFN driver in Windows CE 6.0 to give me
two instances of the USB Serial function driver (one for ActiveSync, and one
for my private use).

ActiveSync works when I have a single instance of the USB Serial function
driver layered on top of the USB Composite driver.

When I add a second USB Serial instance, ActiveSync no longer works. The PC
still recognizes it as ActiveSync, but the wceusbsh.sys driver says there
was a problem talking to it. On the device side, the cable attach
notification is not getting to any instance of the USB serial driver (I have
more to debug).

Has anyone out there gone through this before? Any clues on this?

Thanks in advance,

Steve Araiza
sar...@contractor.net

Here are the related registry entries for your reference:
--------------------------------------------------------------------------------------------
IF BSP_USBFN_SERIAL


[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSerial_Class]
"FriendlyName"="Serial on USB"
"Index"=dword:8
; Disable flow control for usbserial
"DevConfig"=hex: 10,00, 00,00, 78,00,00,00, 00,01,00,00, 00,4B,00,00,
00,00, 08, 00, 00, 00,00,00,00

; Added for composite driver
"Dll"="serialusbfn.dll"
"DeviceName"="USBFNS1:"
"Prefix"="COM"
"DeviceArrayIndex"=dword:0 ; Use to load different USB function serial
client driver objects.
"IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
; idVendor must be changed. 045E belongs to Microsoft and is only to be used
for
; prototype devices in your labs. Visit http://www.usb.org to obtain a
vendor id.
"idVendor"=dword:045E
"Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change
idVendor USBSerial_Class)"
"idProduct"=dword:00ce
"Product"="Generic Serial (PROTOTYPE--Remember to change idVendor
USBSerial_Class)"
"bcdDevice"=dword:0
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0

; Special entries read by composite driver
"DefaultClient"=dword:1

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSerial_Class\Config]
"EnableFlowHard"=dword:0
"EnableFlowSoft"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"="USBSerial_Class"

[HKEY_LOCAL_MACHINE\Comm\DefaultConnections]
"`USB"=multi_sz:"Serial on USB","115200"

[HKEY_CURRENT_USER\ControlPanel\Comm]
"Cnct"="`USB"
"AutoCnct"=dword:00000001

; This entry will only get used if the composite function driver is included
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSerial_Class2]
"Dll"="serialusbfn.dll"
"DeviceName"="USBFNS2:"
"Prefix"="COM"
"DeviceArrayIndex"=dword:1
"IClass"=multi_sz:"{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}","{C375C787-B721-4b8e-B67F-A112D5C0A404}"
"idVendor"=dword:045E
"Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change
idVendor USBSerial_Class2)"
"idProduct"=dword:0079
"Product"="Generic Serial (PROTOTYPE--Remember to change idVendor
USBSerial_Class2)"
"bcdDevice"=dword:90
;"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"DevConfig"=hex: 10,00, 00,00, 78,00,00,00, 00,01,00,00, 00,4B,00,00,
00,00, 08, 00, 00, 00,00,00,00

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSerial_Class2\Config]
"EnableFlowHard"=dword:0
"EnableFlowSoft"=dword:0

; @CESYSGEN IF CE_MODULES_COMPOSITEFN
; Use the composite driver as the default USB function driver
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"=- ; erase previous default
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"="CompositeFN

; Tell the composite driver to load both of our usb serial driver instances
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\CompositeFN]
; "ClientDriverList"=multi_sz:"USBSerial_Class"
"ClientDriverList"=multi_sz:"USBSerial_Class","USBSerial_Class2"
"ManufacturerString"="Ahura Scientific (USBSerial_Class)"
"VendorID"=dword:045E
"ProductID"=dword:00CE
"Attributes"=multi_sz:"80","81"
"xFriendlyName"="Serial on USB" ; experimenting

; @CESYSGEN ENDIF CE_MODULES_COMPOSITEFN

ENDIF BSP_USBFN_SERIAL


Randy Aull (MSFT)

unread,
Sep 9, 2008, 6:54:56 PM9/9/08
to
You should ensure that you uninstall any previous driver installation on the
PC prior to adding your composite function. PnP may still be installing
wceusbsh.sys instead of usbccgp.sys.


"Steve Araiza" <sar...@contractor.net> wrote in message
news:0MOdnf6WRvz_xFvV...@comcast.com...

Steve Araiza

unread,
Sep 10, 2008, 7:02:01 AM9/10/08
to
Yes. In the composite case, wceusbsh.sys is loaded for the ActiveSync PDO.
The description for usbccgp.sys calls it "USB Common Class Generic Parent
Driver". wceusbsh.sys is describes as "Windows CE USB Serial Host". What
does usbccgp.sys do? ....

Wait, I just found this article:
http://msdn.microsoft.com/en-us/library/ms793564.aspx

I understand, this driver is a PC version of the composite driver. It allows
different drivers for different interfaces on the device.

Thanks! I'll give it a try.

steve araiza

"Randy Aull (MSFT)" <ran...@online.microsoft.com> wrote in message
news:FC78F546-A649-4504...@microsoft.com...

0 new messages