The USB-function-driver can be used with different client-classes.
Mass_Storage_Class: Device appears as hard-disk.
RNDIS: Device appears as network-device.
Serial_Class: Device appears as serial-class / ActiveSync.
On system start the following registry decides which USB-client to use:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] "DefaultClientDriver"
Valid values for DefaultClientDriver
are Mass_Storage_Class
, RNDIS
and Serial_Class
.
At [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\<DefaultClientDriver-Name>] additional settings allow to configure the client-driver; i.e. which ProductID and text is shown at the PC-side or which volume to use for the mass-storage-class.
Dynamic switching between clients
You may even switch clients on runtime.
See Download for a sample program. This will take the name of the client-driver as parameter.
To accomplish a client-change the sample calls:
DeviceIoControl( hDevice, IOCTL_UFN_CHANGE_CURRENT_CLIENT, &clientname, sizeof(UFN_CLIENT_NAME), NULL, 0, NULL, NULL);
When &clientname
is NULL
, the current driver will be unloaded and the USB-slave port is disabled.
Download
More Information about KuK - USBFN Driver and Settings
USB-Driver structure and Registry Settings Trizeps USB-Driver
Disconnect or Reconnect USB Drivers: remountusb