USB Function Driver (WinCE)
Change Functionality of the Function Driver
It is possible to switch the functionality of the USB Function driver on Colibri and Apalis modules. There are three possibilities in the Toradex default image:
- Serial Class (Default)
- Mass Storage Class
- RNDIS
- Serial (COM) port
To change this, you have to set one of the following registry values:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
DefaultClientDriver="Serial_Class" ; This is the default setting -> Used e.g. for ActiveSync
DefaultClientDriver="Mass_Storage_Class" ; Module behaves like USB mass storage device
DefaultClientDriver="RNDIS" ; Module behaves like a USB network adapter
DefaultClientDriver="USBSER_Class" ; Module behaves like a regular COM port
Select storage location for Mass Storage Class
Windows CE 6.0
When Mass Storage Class is selected, the storage location is DSK1: by default. This is, for example, an external USB memory stick. If you would like to change this to the internal FlashDisk, you have to change the following registry value. The FlashDisk will disappear from the module root folder because it's now dedicated to the USB mass storage function.
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
DeviceName="DSK0:" ; DSK indexes can be found in Start->Controll Panel->Storage Manager
Windows CE 6.0 Vybrid modules
On the Vybrid VF50 and VF61 modules, we use the WEC7 notation even for Windows CE 6.0. In the DeviceName parameter you cannnot use the DSKn:
disk number, but set the store name of the mass-storage device you want to expose via the USB interface.
You can retrieve suitable names by checking under [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
. Each profile has a Name entry containing its Store Name.
For example to expose SD card you can configure:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
DeviceName="SD Memory Card"
Windows Embedded Compact 7 and 2013
In the DeviceName parameter you can also set the store name of the mass-storage device you want to expose via the USB interface. DSK names are still possible as well.
You can retrieve suitable names by checking under [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
.
Each profile has a Name entry containing its Store Name.
For example to expose SD card you can configure:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
DeviceName="SD Memory Card"
On images for i.MX before V1.0 and Tegra-based before 2.0 you can't expose the internal flash via usb-client interface.
It is possible to generate a Ram Drive (Ramdisk) to expose as the mass storage.
Virtual COM Port (USBSER_Class)
Depending on the host operating system, some registry patches might be required to make this driver work properly.
- Windows 10 (1903) the solution works without any additional settings
- On Windows 7 a driver needs to be installed.
Changing the COM port number seen by WinCe
If your device is configured to behave as a serial port, Windows CE chooses the lowest available COM-port number by default. The COM port number for Windows CE can be defined in the following registry entry:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSER_Class]
Index=dword:<port number>