CHAILink SDK  Version 1.3
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
USB CopperLan Driver mapping.

The CopperLan package freely downlodable on the CopperLan web site , contains drivers for CopperLan USB devices. But the association of this driver with a plugged in USB device differs depending on the used OS.

Microsoft Windows

On this platform, two options are avalable:

Simple CopperLan USB Device

This kind of USB device is a pure CopperLan Device (only one USB Interface descriptor, the CopperLan - see USB Device Description), and if the implementor does not care about USB Device identity (e.g. USB VendorID and ProductID), the implementor can freely use the CopperLan registred identity for CHAILink over USB device : VendorID = 0x2210 ProductID = 0x0001. When using this identity, nothing has to be provided with the USB Device. The device detection is automaticaly done by the preinstalled CopperLan driver.

Advanced CopperLan USB Device

If implementor wants to use its own identity or if the USB device is a composite device, the implementor must provide an inf file and an optional cat file. No sys file (kernel drivers) are needed as the inf file will reference the preinstalled CopperLan Driver.

Example:
TestUSB.inf file for VendorID = 0xABCD and ProductID = 0x1234

[Version]
Signature="$CHICAGO$"
Class="Copperlan"
ClassGUID={5B6356E1-F844-4372-9D2B-5932E95366C2}
provider=%DeviceProvider%
DriverVer=02/16/2010,1.0.0.0
CatalogFile=TestUSB.cat ; Optional cat file
[Manufacturer]
%DeviceProvider%=ManTest, NTx86, NTamd64
[ManTest.NTx86]
%CHAILinkOverUSBDeviceName%=CHAILinkOverUSB.Dev, USB\VID_ABCD&PID_1234
[ManTest.NTamd64]
%CHAILinkOverUSBDeviceName%=CHAILinkOverUSB.Dev, USB\VID_ABCD&PID_1234
[CHAILinkOverUSB.Dev.NT]
[CHAILinkOverUSB.Dev.NT.Services]
Addservice = CHAILinkOverUSB, 0x00000002, CHAILinkOverUSB.AddService
[CHAILinkOverUSB.AddService]
DisplayName = %CHAILinkOverUSB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\CHAILinkOverUSB.sys
AddReg = CHAILinkOverUSB.AddReg
LoadOrderGroup = Base
[CHAILinkOverUSB.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,CHAILinkOverUSB.sys
HKR,"Parameters","MaximumTransferSize",0x10001,4096
HKR,"Parameters","DebugLevel",0x10001,2
HKR,"Parameters","BulkUsbEnable",0x10001,1
;---------------------------------------------------------------;
[Strings]
DeviceProvider="Manufacturer Test"
CHAILinkOverUSBDeviceName="Test CopperLan USB Device"
CHAILinkOverUSB.SvcDesc="CHAI Link over USB generic driver"

For multiple interface device, the CopperLan interface must be referenced as follow:

%CHAILinkOverUSBDeviceName%=CHAILinkOverUSB.Dev, USB\VID_ABCD&PID_1234&MI_xx

Where xx corresponds to the interface despriptor number of the CopperLan Interface. For the optional cat file, please consults the Windows DDK and the Driver Signing topic on the Microsoft MSDN web site.

Apple Mac OS X

On this platform, any device implementing the CopperLan USB Interface as described in USB Device Description, can work without installing anything except the CopperLan Package. Any Device identity can be used.