• In progress
  • Switching between different USB-Clients

    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