]> Pileus Git - ~andy/linux/commitdiff
staging: usbip: add userspace code
authorTakahiro Hirofuchi <hirofuchi@users.sourceforge.net>
Sat, 14 May 2011 10:55:07 +0000 (03:55 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 17 May 2011 20:23:42 +0000 (13:23 -0700)
Add userspace code from svn trunk revision 175. Located at
https://usbip.svn.sourceforge.net/svnroot/usbip/linux/trunk/src.

Signed-off-by: matt mooney <mfm@muteddisk.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
32 files changed:
drivers/staging/usbip/userspace/AUTHORS [new file with mode: 0644]
drivers/staging/usbip/userspace/COPYING [new file with mode: 0644]
drivers/staging/usbip/userspace/ChangeLog [new file with mode: 0644]
drivers/staging/usbip/userspace/INSTALL [new file with mode: 0644]
drivers/staging/usbip/userspace/Makefile.am [new file with mode: 0644]
drivers/staging/usbip/userspace/NEWS [new file with mode: 0644]
drivers/staging/usbip/userspace/README [new file with mode: 0644]
drivers/staging/usbip/userspace/autogen.sh [new file with mode: 0755]
drivers/staging/usbip/userspace/cleanup.sh [new file with mode: 0755]
drivers/staging/usbip/userspace/cmd/Makefile.am [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/bind-driver.c [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbip.8 [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbip.c [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbip_bind_driver.8 [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbip_network.c [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbip_network.h [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbipd.8 [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/usbipd.c [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/utils.c [new file with mode: 0644]
drivers/staging/usbip/userspace/cmd/utils.h [new file with mode: 0644]
drivers/staging/usbip/userspace/configure.ac [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/Makefile.am [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/names.c [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/names.h [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/stub_driver.c [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/stub_driver.h [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/usbip.h [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/usbip_common.c [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/usbip_common.h [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/vhci_driver.c [new file with mode: 0644]
drivers/staging/usbip/userspace/lib/vhci_driver.h [new file with mode: 0644]
drivers/staging/usbip/userspace/usb.ids [new file with mode: 0644]

diff --git a/drivers/staging/usbip/userspace/AUTHORS b/drivers/staging/usbip/userspace/AUTHORS
new file mode 100644 (file)
index 0000000..2f73e65
--- /dev/null
@@ -0,0 +1,2 @@
+Takahiro Hirofuchi
+Robert Leibl
diff --git a/drivers/staging/usbip/userspace/COPYING b/drivers/staging/usbip/userspace/COPYING
new file mode 100644 (file)
index 0000000..623b625
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/drivers/staging/usbip/userspace/ChangeLog b/drivers/staging/usbip/userspace/ChangeLog
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/drivers/staging/usbip/userspace/INSTALL b/drivers/staging/usbip/userspace/INSTALL
new file mode 100644 (file)
index 0000000..d3c5b40
--- /dev/null
@@ -0,0 +1,237 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007 Free Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  6. Often, you can also type `make uninstall' to remove the installed
+     files again.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/drivers/staging/usbip/userspace/Makefile.am b/drivers/staging/usbip/userspace/Makefile.am
new file mode 100644 (file)
index 0000000..964f005
--- /dev/null
@@ -0,0 +1,8 @@
+SUBDIRS = lib cmd
+includedir=@includedir@/usbip
+include_HEADERS = lib/usbip.h lib/usbip_common.h lib/vhci_driver.h lib/stub_driver.h
+
+if INSTALL_USBIDS
+pkgdata_DATA = usb.ids
+EXTRA_DIST = $(pkgdata_DATA)
+endif
diff --git a/drivers/staging/usbip/userspace/NEWS b/drivers/staging/usbip/userspace/NEWS
new file mode 100644 (file)
index 0000000..428b406
--- /dev/null
@@ -0,0 +1 @@
+link ../NEWS
\ No newline at end of file
diff --git a/drivers/staging/usbip/userspace/README b/drivers/staging/usbip/userspace/README
new file mode 100644 (file)
index 0000000..b274b50
--- /dev/null
@@ -0,0 +1,215 @@
+# vim:tw=78:ts=4:expandtab:ai:sw=4
+#
+# README for usbip-utils
+#
+# Copyright (C) 2005-2008 Takahiro Hirofuchi
+
+
+[Requirements]
+    - USB/IP device drivers
+        Its source code is included under $(top)/drivers/.
+
+    - sysfsutils >= 2.0.0
+        sysfsutils library
+
+    - libwrap0-dev
+        tcp wrapper library
+
+    - gcc >= 4.0
+
+    - libglib2.0-dev >= 2.6.0
+
+    - libtool, automake >= 1.9, autoconf >= 2.5.0, pkg-config
+
+[Install]
+    0. Skip here if you see a configure script.
+        $ ./autogen.sh
+
+    1. Compile & install.
+        $ ./configure
+        $ make install
+
+    2. Compile & install USB/IP drivers if not yet.
+
+[Usage]
+    server:# (Attach your USB device physically.)
+
+    server:# insmod usbip_common_mod.ko
+    server:# insmod usbip.ko
+        - It was formerly named as stub.ko.
+
+    server:# usbipd -D
+        - Start usbip daemon.
+
+    server:# usbip_bind_driver --list
+        - List driver assignments for usb devices.
+
+    server:# usbip_bind_driver --usbip 1-2
+        - Bind usbip.ko to the device of busid 1-2.
+        - A usb device 1-2 is now exportable to other hosts!
+        - Use 'usbip_bind_driver --other 1-2' when you want to shutdown exporting
+          and use the device locally. 
+
+
+    client:# insmod usbip_common_mod.ko
+    client:# insmod vhci-hcd.ko
+        - It was formerly named as vhci.ko.
+
+    client:# usbip --list server
+        - List exportable usb devices on the server.
+
+    client:# usbip --attach server 1-2
+        - Connect the remote USB device.
+
+    client:# usbip --port
+        - Show virtual port status.
+
+    client:# usbip --detach 0
+        - Detach the usb device.
+
+
+[Output Example]
+--------------------------------------------------------------------------------------------------------
+- SERVER SIDE (physically attach your USB devices to this host) ----------------------------------------
+--------------------------------------------------------------------------------------------------------
+trois:# insmod (somewhere)/usbip_common_mod.ko
+trois:# insmod (somewhere)/usbip.ko
+trois:# usbipd -D
+
+--------------------------------------------------------------------------------------------------------
+In another terminal, let's look up what usb devices are physically attached to
+this host.  We can see a usb storage device of busid 3-3.2 is now bound to
+usb-storage driver. To export this device, we first mark the device as
+"exportable"; the device is bound to usbip driver. Please remember you can not
+export a usb hub.
+
+   trois:# usbip_bind_driver --list
+   List USB devices
+   - busid 3-3.2 (04bb:0206)
+       3-3.2:1.0 -> usb-storage
+   
+   - busid 3-3.1 (08bb:2702)
+       3-3.1:1.0 -> snd-usb-audio
+       3-3.1:1.1 -> snd-usb-audio
+   
+   - busid 3-3 (0409:0058)
+       3-3:1.0 -> hub
+   
+   - busid 3-2 (0711:0902)
+       3-2:1.0 -> none
+   
+   - busid 1-1 (05a9:a511)
+       1-1:1.0 -> ov511
+   
+   - busid 4-1 (046d:08b2)
+       4-1:1.0 -> none
+       4-1:1.1 -> none
+       4-1:1.2 -> none
+   
+   - busid 5-2 (058f:9254)
+       5-2:1.0 -> hub
+   
+--------------------------------------------------------------------------------------------------------
+Mark the device of busid 3-3.2 as exportable.
+
+   trois:# usbip_bind_driver --usbip 3-3.2
+   ** (process:24621): DEBUG:  3-3.2:1.0   -> none 
+   ** (process:24621): DEBUG: write "add 3-3.2" to /sys/bus/usb/drivers/usbip/match_busid
+   ** Message: bind 3-3.2 to usbip, complete!
+   
+   trois:# usbip_bind_driver --list
+   List USB devices
+   - busid 3-3.2 (04bb:0206)
+           3-3.2:1.0 -> usbip
+   (snip)
+
+Iterate the above operation for other devices if you like.
+
+
+--------------------------------------------------------------------------------------------------------
+- CLIENT SIDE ------------------------------------------------------------------------------------------
+--------------------------------------------------------------------------------------------------------
+First, let's list available remote devices which are marked as exportable in
+the server host.
+
+   deux:# insmod (somewhere)/usbip_common_mod.ko
+   deux:# insmod (somewhere)/vhci_hcd.ko
+
+   deux:# usbip --list 10.0.0.3
+   - 10.0.0.3
+          1-1: Prolific Technology, Inc. : unknown product (067b:3507)
+             : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-1
+             : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
+             :  0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
+    
+      1-2.2.1: Apple Computer, Inc. : unknown product (05ac:0203)
+             : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.1
+             : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
+             :  0 - Human Interface Devices / Boot Interface Subclass / Keyboard (03/01/01)
+    
+      1-2.2.3: OmniVision Technologies, Inc. : OV511+ WebCam (05a9:a511)
+             : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.3
+             : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
+             :  0 - Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00)
+    
+          3-1: Logitech, Inc. : QuickCam Pro 4000 (046d:08b2)
+             : /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.0/usb3/3-1
+             : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
+             :  0 - Data / unknown subclass / unknown protocol (0a/ff/00)
+             :  1 - Audio / Control Device / unknown protocol (01/01/00)
+             :  2 - Audio / Streaming / unknown protocol (01/02/00)
+    
+          4-1: Logitech, Inc. : QuickCam Express (046d:0870)
+             : /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-1
+             : Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
+             :  0 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
+    
+          4-2: Texas Instruments Japan : unknown product (08bb:2702)
+             : /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-2
+             : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
+             :  0 - Audio / Control Device / unknown protocol (01/01/00)
+             :  1 - Audio / Streaming / unknown protocol (01/02/00)
+    
+--------------------------------------------------------------------------------------------------------
+Attach a remote usb device!
+
+   deux:# usbip --attach 10.0.0.3 1-1
+   port 0 attached
+   
+--------------------------------------------------------------------------------------------------------
+Show what devices are attached to this client.
+
+   deux:# usbip --port
+   Port 00: <Port in Use> at Full Speed(12Mbps)
+          Prolific Technology, Inc. : unknown product (067b:3507)
+          6-1 -> usbip://10.0.0.3:3240/1-1  (remote bus/dev 001/004)
+          6-1:1.0 used by usb-storage      
+                         /sys/class/scsi_device/0:0:0:0/device
+                         /sys/class/scsi_host/host0/device
+                         /sys/block/sda/device
+   
+--------------------------------------------------------------------------------------------------------
+Detach the imported device.
+
+   deux:# usbip --detach 0
+   port 0 detached
+   
+--------------------------------------------------------------------------------------------------------
+
+
+[Check List]
+    - See Debug Tips in the project wiki.
+        - http://usbip.wiki.sourceforge.net/how-to-debug-usbip
+    - usbip.ko must be bound to the target device.
+        - See /proc/bus/usb/devices and find "Driver=..." lines of the device.
+    - Shutdown firewall.
+        - usbip now uses TCP port 3240.
+    - Disable SELinux.
+    - If possible, compile your kernel with CONFIG_USB_DEBUG flag and try
+      again.
+    - Check your kernel and daemon messages.
+        ex. /var/log/{messages, kern.log, daemon.log, syslog}
+
+
+[Contact]
+    Mailing List: usbip-devel _at_ lists.sourceforge.net
diff --git a/drivers/staging/usbip/userspace/autogen.sh b/drivers/staging/usbip/userspace/autogen.sh
new file mode 100755 (executable)
index 0000000..e1112d3
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh -x
+
+#aclocal
+#autoheader
+#libtoolize --copy --force
+#automake-1.9 -acf
+#autoconf
+
+autoreconf -i -f -v
diff --git a/drivers/staging/usbip/userspace/cleanup.sh b/drivers/staging/usbip/userspace/cleanup.sh
new file mode 100755 (executable)
index 0000000..da2f89b
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh -x
+
+
+if [ -r Makefile ]; then
+       make distclean
+fi
+
+FILES="configure cscope.out Makefile.in depcomp compile config.guess config.sub config.h.in~ config.log config.status ltmain.sh libtool config.h.in autom4te.cache missing aclocal.m4 install-sh cmd/Makefile.in lib/Makefile.in Makefile lib/Makefile cmd/Makefile"
+
+rm -Rf $FILES
diff --git a/drivers/staging/usbip/userspace/cmd/Makefile.am b/drivers/staging/usbip/userspace/cmd/Makefile.am
new file mode 100644 (file)
index 0000000..c923e49
--- /dev/null
@@ -0,0 +1,21 @@
+# $Id$
+
+sbin_PROGRAMS = usbip usbipd usbip_bind_driver
+
+usbip_SOURCES = usbip.c usbip_network.c usbip_network.h
+usbipd_SOURCES = usbipd.c usbip_network.c usbip_network.h
+usbip_bind_driver_SOURCES = bind-driver.c \
+               utils.c utils.h \
+               usbip_network.h usbip_network.c
+
+dist_man_MANS = usbip.8 usbipd.8 usbip_bind_driver.8
+
+#usbip_bind_driver_CFLAGS = -Wall -W -Wstrict-prototypes @PACKAGE_CFLAGS@
+#usbip_bind_driver_LDADD = @PACKAGE_LIBS@
+
+#AM_CPPFLAGS = -I../include -Wall -std=gnu99
+INCLUDES = -I$(top_srcdir)/lib
+LDADD = ../lib/libusbip.la @PACKAGE_LIBS@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+AM_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) @PACKAGE_CFLAGS@ -DUSBIDS_FILE='"@USBIDS_DIR@/usb.ids"'
+
diff --git a/drivers/staging/usbip/userspace/cmd/bind-driver.c b/drivers/staging/usbip/userspace/cmd/bind-driver.c
new file mode 100644 (file)
index 0000000..5226751
--- /dev/null
@@ -0,0 +1,644 @@
+/*
+ * $Id$
+ *
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#include "utils.h"
+
+#define _GNU_SOURCE
+#include <getopt.h>
+#include <glib.h>
+
+
+
+static const struct option longopts[] = {
+       {"usbip",       required_argument,      NULL, 'u'},
+       {"other",       required_argument,      NULL, 'o'},
+       {"list",        no_argument,            NULL, 'l'},
+       {"list2",       no_argument,            NULL, 'L'},
+       {"help",        no_argument,            NULL, 'h'},
+#if 0
+       {"allusbip",    no_argument,            NULL, 'a'},
+       {"export-to",   required_argument,      NULL, 'e'},
+       {"unexport",    required_argument,      NULL, 'x'},
+       {"busid",       required_argument,      NULL, 'b'},
+#endif
+
+       {NULL,          0,                      NULL,  0}
+};
+
+static const char match_busid_path[] = "/sys/bus/usb/drivers/usbip/match_busid";
+
+
+static void show_help(void)
+{
+       printf("Usage: usbip_bind_driver [OPTION]\n");
+       printf("Change driver binding for USB/IP.\n");
+       printf("  --usbip busid        make a device exportable\n");
+       printf("  --other busid        use a device by a local driver\n");
+       printf("  --list               print usb devices and their drivers\n");
+       printf("  --list2              print usb devices and their drivers in parseable mode\n");
+#if 0
+       printf("  --allusbip           make all devices exportable\n");
+       printf("  --export-to host     export the device to 'host'\n");
+       printf("  --unexport host      unexport a device previously exported to 'host'\n");
+       printf("  --busid busid        the busid used for --export-to\n");
+#endif
+}
+
+static int modify_match_busid(char *busid, int add)
+{
+       int fd;
+       int ret;
+       char buff[BUS_ID_SIZE + 4];
+
+       /* BUS_IS_SIZE includes NULL termination? */
+       if (strnlen(busid, BUS_ID_SIZE) > BUS_ID_SIZE - 1) {
+               g_warning("too long busid");
+               return -1;
+       }
+
+       fd = open(match_busid_path, O_WRONLY);
+       if (fd < 0)
+               return -1;
+
+       if (add)
+               snprintf(buff, BUS_ID_SIZE + 4, "add %s", busid);
+       else
+               snprintf(buff, BUS_ID_SIZE + 4, "del %s", busid);
+
+       g_debug("write \"%s\" to %s", buff, match_busid_path);
+
+       ret = write(fd, buff, sizeof(buff));
+       if (ret < 0) {
+               close(fd);
+               return -1;
+       }
+
+       close(fd);
+
+       return 0;
+}
+
+static const char unbind_path_format[] = "/sys/bus/usb/devices/%s/driver/unbind";
+
+/* buggy driver may cause dead lock */
+static int unbind_interface_busid(char *busid)
+{
+       char unbind_path[PATH_MAX];
+       int fd;
+       int ret;
+
+       snprintf(unbind_path, sizeof(unbind_path), unbind_path_format, busid);
+
+       fd = open(unbind_path, O_WRONLY);
+       if (fd < 0) {
+               g_warning("opening unbind_path failed: %d", fd);
+               return -1;
+       }
+
+       ret = write(fd, busid, strnlen(busid, BUS_ID_SIZE));
+       if (ret < 0) {
+               g_warning("write to unbind_path failed: %d", ret);
+               close(fd);
+               return -1;
+       }
+
+       close(fd);
+
+       return 0;
+}
+
+static int unbind_interface(char *busid, int configvalue, int interface)
+{
+       char inf_busid[BUS_ID_SIZE];
+       g_debug("unbinding interface");
+
+       snprintf(inf_busid, BUS_ID_SIZE, "%s:%d.%d", busid, configvalue, interface);
+
+       return unbind_interface_busid(inf_busid);
+}
+
+
+static const char bind_path_format[] = "/sys/bus/usb/drivers/%s/bind";
+
+static int bind_interface_busid(char *busid, char *driver)
+{
+       char bind_path[PATH_MAX];
+       int fd;
+       int ret;
+
+       snprintf(bind_path, sizeof(bind_path), bind_path_format, driver);
+
+       fd = open(bind_path, O_WRONLY);
+       if (fd < 0)
+               return -1;
+
+       ret = write(fd, busid, strnlen(busid, BUS_ID_SIZE));
+       if (ret < 0) {
+               close(fd);
+               return -1;
+       }
+
+       close(fd);
+
+       return 0;
+}
+
+static int bind_interface(char *busid, int configvalue, int interface, char *driver)
+{
+       char inf_busid[BUS_ID_SIZE];
+
+       snprintf(inf_busid, BUS_ID_SIZE, "%s:%d.%d", busid, configvalue, interface);
+
+       return bind_interface_busid(inf_busid, driver);
+}
+
+static int unbind(char *busid)
+{
+       int configvalue = 0;
+       int ninterface = 0;
+       int devclass = 0;
+       int i;
+       int failed = 0;
+
+       configvalue = read_bConfigurationValue(busid);
+       ninterface  = read_bNumInterfaces(busid);
+       devclass  = read_bDeviceClass(busid);
+
+       if (configvalue < 0 || ninterface < 0 || devclass < 0) {
+               g_warning("read config and ninf value, removed?");
+               return -1;
+       }
+
+       if (devclass == 0x09) {
+               g_message("skip unbinding of hub");
+               return -1;
+       }
+
+       for (i = 0; i < ninterface; i++) {
+               char driver[PATH_MAX];
+               int ret;
+
+               bzero(&driver, sizeof(driver));
+
+               getdriver(busid, configvalue, i, driver, PATH_MAX-1);
+
+               g_debug(" %s:%d.%d      -> %s ", busid, configvalue, i, driver);
+
+               if (!strncmp("none", driver, PATH_MAX))
+                       continue; /* unbound interface */
+
+#if 0
+               if (!strncmp("usbip", driver, PATH_MAX))
+                       continue; /* already bound to usbip */
+#endif
+
+               /* unbinding */
+               ret = unbind_interface(busid, configvalue, i);
+               if (ret < 0) {
+                       g_warning("unbind driver at %s:%d.%d failed",
+                                       busid, configvalue, i);
+                       failed = 1;
+               }
+       }
+
+       if (failed)
+               return -1;
+       else
+               return 0;
+}
+
+/* call at unbound state */
+static int bind_to_usbip(char *busid)
+{
+       int configvalue = 0;
+       int ninterface = 0;
+       int i;
+       int failed = 0;
+
+       configvalue = read_bConfigurationValue(busid);
+       ninterface  = read_bNumInterfaces(busid);
+
+       if (configvalue < 0 || ninterface < 0) {
+               g_warning("read config and ninf value, removed?");
+               return -1;
+       }
+
+       for (i = 0; i < ninterface; i++) {
+               int ret;
+
+               ret = bind_interface(busid, configvalue, i, "usbip");
+               if (ret < 0) {
+                       g_warning("bind usbip at %s:%d.%d, failed",
+                                       busid, configvalue, i);
+                       failed = 1;
+                       /* need to contine binding at other interfaces */
+               }
+       }
+
+       if (failed)
+               return -1;
+       else
+               return 0;
+}
+
+
+static int use_device_by_usbip(char *busid)
+{
+       int ret;
+
+       ret = unbind(busid);
+       if (ret < 0) {
+               g_warning("unbind drivers of %s, failed", busid);
+               return -1;
+       }
+
+       ret = modify_match_busid(busid, 1);
+       if (ret < 0) {
+               g_warning("add %s to match_busid, failed", busid);
+               return -1;
+       }
+
+       ret = bind_to_usbip(busid);
+       if (ret < 0) {
+               g_warning("bind usbip to %s, failed", busid);
+               modify_match_busid(busid, 0);
+               return -1;
+       }
+
+       g_message("bind %s to usbip, complete!", busid);
+
+       return 0;
+}
+
+
+
+static int use_device_by_other(char *busid)
+{
+       int ret;
+       int config;
+
+       /* read and write the same config value to kick probing */
+       config = read_bConfigurationValue(busid);
+       if (config < 0) {
+               g_warning("read bConfigurationValue of %s, failed", busid);
+               return -1;
+       }
+
+       ret = modify_match_busid(busid, 0);
+       if (ret < 0) {
+               g_warning("del %s to match_busid, failed", busid);
+               return -1;
+       }
+
+       ret = write_bConfigurationValue(busid, config);
+       if (ret < 0) {
+               g_warning("read bConfigurationValue of %s, failed", busid);
+               return -1;
+       }
+
+       g_message("bind %s to other drivers than usbip, complete!", busid);
+
+       return 0;
+}
+
+
+#include <sys/types.h>
+#include <regex.h>
+
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+
+
+
+static int is_usb_device(char *busid)
+{
+       int ret;
+
+       regex_t regex;
+       regmatch_t pmatch[1];
+
+       ret = regcomp(&regex, "^[0-9]+-[0-9]+(\\.[0-9]+)*$", REG_NOSUB|REG_EXTENDED);
+       if (ret < 0)
+               g_error("regcomp: %s\n", strerror(errno));
+
+       ret = regexec(&regex, busid, 0, pmatch, 0);
+       if (ret)
+               return 0;       /* not matched */
+
+       return 1;
+}
+
+
+#include <dirent.h>
+static int show_devices(void)
+{
+       DIR *dir;
+
+       dir = opendir("/sys/bus/usb/devices/");
+       if (!dir)
+               g_error("opendir: %s", strerror(errno));
+
+       printf("List USB devices\n");
+       for (;;) {
+               struct dirent *dirent;
+               char *busid;
+
+               dirent = readdir(dir);
+               if (!dirent)
+                       break;
+
+               busid = dirent->d_name;
+
+               if (is_usb_device(busid)) {
+                       char name[100] = {'\0'};
+                       char driver[100] =  {'\0'};
+                       int conf, ninf = 0;
+                       int i;
+
+                       conf = read_bConfigurationValue(busid);
+                       ninf = read_bNumInterfaces(busid);
+
+                       getdevicename(busid, name, sizeof(name));
+
+                       printf(" - busid %s (%s)\n", busid, name);
+
+                       for (i = 0; i < ninf; i++) {
+                               getdriver(busid, conf, i, driver, sizeof(driver));
+                               printf("         %s:%d.%d -> %s\n", busid, conf, i, driver);
+                       }
+                       printf("\n");
+               }
+       }
+
+       closedir(dir);
+
+       return 0;
+}
+
+static int show_devices2(void)
+{
+       DIR *dir;
+
+       dir = opendir("/sys/bus/usb/devices/");
+       if (!dir)
+               g_error("opendir: %s", strerror(errno));
+
+       for (;;) {
+               struct dirent *dirent;
+               char *busid;
+
+               dirent = readdir(dir);
+               if (!dirent)
+                       break;
+
+               busid = dirent->d_name;
+
+               if (is_usb_device(busid)) {
+                       char name[100] = {'\0'};
+                       char driver[100] =  {'\0'};
+                       int conf, ninf = 0;
+                       int i;
+
+                       conf = read_bConfigurationValue(busid);
+                       ninf = read_bNumInterfaces(busid);
+
+                       getdevicename(busid, name, sizeof(name));
+
+                       printf("busid=%s#usbid=%s#", busid, name);
+
+                       for (i = 0; i < ninf; i++) {
+                               getdriver(busid, conf, i, driver, sizeof(driver));
+                               printf("%s:%d.%d=%s#", busid, conf, i, driver);
+                       }
+                       printf("\n");
+               }
+       }
+
+       closedir(dir);
+
+       return 0;
+}
+
+
+#if 0
+static int export_to(char *host, char *busid) {
+
+       int ret;
+
+       if( host == NULL ) {
+               printf( "no host given\n\n");
+               show_help();
+               return -1;
+       }
+       if( busid == NULL ) {
+               /* XXX print device list and ask for busnumber, if none is
+                * given */
+               printf( "no busid given, use --busid switch\n\n");
+               show_help();
+               return -1;
+       }
+
+
+       ret = use_device_by_usbip(busid);
+       if( ret != 0 ) {
+               printf( "could not bind driver to usbip\n");
+               return -1;
+       }
+
+       printf( "DEBUG: exporting device '%s' to '%s'\n", busid, host );
+       ret = export_busid_to_host(host, busid); /* usbip_export.[ch] */
+       if( ret != 0 ) {
+               printf( "could not export device to host\n" );
+               printf( "   host: %s, device: %s\n", host, busid );
+               use_device_by_other(busid);
+               return -1;
+       }
+
+       return 0;
+}
+
+static int unexport_from(char *host, char *busid) {
+
+       int ret;
+
+       if (!host || !busid)
+               g_error("no host or no busid\n");
+
+       g_message("unexport_from: host: '%s', busid: '%s'", host, busid);
+
+       ret = unexport_busid_from_host(host, busid); /* usbip_export.[ch] */
+       if( ret != 0 ) {
+               err( "could not unexport device from host\n" );
+               err( "   host: %s, device: %s\n", host, busid );
+       }
+
+       ret = use_device_by_other(busid);
+       if (ret < 0)
+               g_error("could not unbind device from usbip\n");
+
+       return 0;
+}
+
+
+static int allusbip(void)
+{
+       DIR *dir;
+
+       dir = opendir("/sys/bus/usb/devices/");
+       if (!dir)
+               g_error("opendir: %s", strerror(errno));
+
+       for (;;) {
+               struct dirent *dirent;
+               char *busid;
+
+               dirent = readdir(dir);
+               if (!dirent)
+                       break;
+
+               busid = dirent->d_name;
+
+               if (!is_usb_device(busid))
+                       continue;
+
+               {
+                       char name[PATH_MAX];
+                       int conf, ninf = 0;
+                       int i;
+                       int be_local = 0;
+
+                       conf = read_bConfigurationValue(busid);
+                       ninf = read_bNumInterfaces(busid);
+
+                       getdevicename(busid, name, sizeof(name));
+
+                       for (i = 0; i < ninf; i++) {
+                               char driver[PATH_MAX];
+
+                               getdriver(busid, conf, i, driver, sizeof(driver));
+#if 0
+                               if (strncmp(driver, "usbhid", 6) == 0 || strncmp(driver, "usb-storage", 11) == 0) {
+                                       be_local = 1;
+                                       break;
+                               }
+#endif
+                       }
+                       
+                       if (be_local == 0)
+                               use_device_by_usbip(busid);
+               }
+       }
+
+       closedir(dir);
+
+       return 0;
+}
+#endif
+
+int main(int argc, char **argv)
+{
+       char *busid = NULL;
+       char *remote_host = NULL;
+
+       enum {
+               cmd_unknown = 0,
+               cmd_use_by_usbip,
+               cmd_use_by_other,
+               cmd_list,
+               cmd_list2,
+               cmd_allusbip,
+               cmd_export_to,
+               cmd_unexport,
+               cmd_help,
+       } cmd = cmd_unknown;
+
+       if (geteuid() != 0)
+               g_warning("running non-root?");
+
+       for (;;) {
+               int c;
+               int index = 0;
+
+               c = getopt_long(argc, argv, "u:o:hlLae:x:b:", longopts, &index);
+               if (c == -1)
+                       break;
+
+               switch (c) {
+                       case 'u':
+                               cmd = cmd_use_by_usbip;
+                               busid = optarg;
+                               break;
+                       case 'o' :
+                               cmd = cmd_use_by_other;
+                               busid = optarg;
+                               break;
+                       case 'l' :
+                               cmd = cmd_list;
+                               break;
+                       case 'L' :
+                               cmd = cmd_list2;
+                               break;
+                       case 'a' :
+                               cmd = cmd_allusbip;
+                               break;
+                       case 'b':
+                               busid = optarg;
+                               break;
+                       case 'e':
+                               cmd = cmd_export_to;
+                               remote_host = optarg;
+                               break;
+                       case 'x':
+                               cmd = cmd_unexport;
+                               remote_host = optarg;
+                               break;
+                       case 'h': /* fallthrough */
+                       case '?':
+                               cmd = cmd_help;
+                               break;
+                       default:
+                               g_error("getopt");
+               }
+
+               //if (cmd)
+               //      break;
+       }
+
+       switch (cmd) {
+               case cmd_use_by_usbip:
+                       use_device_by_usbip(busid);
+                       break;
+               case cmd_use_by_other:
+                       use_device_by_other(busid);
+                       break;
+               case cmd_list:
+                       show_devices();
+                       break;
+               case cmd_list2:
+                       show_devices2();
+                       break;
+#if 0
+               case cmd_allusbip:
+                       allusbip();
+                       break;
+               case cmd_export_to:
+                       export_to(remote_host, busid);
+                       break;
+               case cmd_unexport:
+                       unexport_from(remote_host, busid);
+                       break;
+#endif
+               case cmd_help: /* fallthrough */
+               case cmd_unknown:
+                       show_help();
+                       break;
+               default:
+                       g_error("NOT REACHED");
+       }
+
+       return 0;
+}
diff --git a/drivers/staging/usbip/userspace/cmd/usbip.8 b/drivers/staging/usbip/userspace/cmd/usbip.8
new file mode 100644 (file)
index 0000000..1653bb2
--- /dev/null
@@ -0,0 +1,71 @@
+.TH USBIP "8" "February 2009" "usbip" "System Administration Utilities"
+.SH NAME
+usbip \- manage USB/IP devices
+.SH SYNOPSIS
+.B usbip
+[\fIoptions\fR]
+
+.SH DESCRIPTION
+Devices exported by USB/IP servers can be listed, attached and
+detached using this program.
+
+.SH OPTIONS
+.HP
+\fB\-a\fR, \fB\-\-attach\fR <host> <bus_id>
+.IP
+Attach a remote USB device.
+.PP
+
+.HP
+\fB\-x\fR, \fB\-\-attachall\fR <host>
+.IP
+Attach all remote USB devices on the specific host.
+.PP
+
+.HP
+\fB\-d\fR, \fB\-\-detach\fR <ports>
+.IP
+Detach an imported USB device.
+.PP
+
+.HP
+\fB\-l\fR, \fB\-\-list\fR <hosts>
+.IP
+List exported USB devices.
+.PP
+
+.HP
+\fB\-p\fR, \fB\-\-port\fR
+.IP
+List virtual USB port status.
+.PP
+
+.HP
+\fB\-D\fR, \fB\-\-debug\fR
+.IP
+Print debugging information.
+.PP
+
+.HP
+\fB\-v\fR, \fB\-\-version\fR
+.IP
+Show version.
+.PP
+
+.SH EXAMPLES
+
+    client:# usbip --list server
+        - List exportable usb devices on the server.
+
+    client:# usbip --attach server 1-2
+        - Connect the remote USB device.
+
+    client:# usbip --port
+        - Show virtual port status.
+
+    client:# usbip --detach 0
+        - Detach the usb device.
+
+.SH "SEE ALSO"
+\fBusbipd\fP\fB(8)\fB\fP,
+\fBusbip_attach_driver\fP\fB(8)\fB\fP
diff --git a/drivers/staging/usbip/userspace/cmd/usbip.c b/drivers/staging/usbip/userspace/cmd/usbip.c
new file mode 100644 (file)
index 0000000..8775394
--- /dev/null
@@ -0,0 +1,725 @@
+/*
+ * $Id$
+ *
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "../config.h"
+#endif
+
+#include "usbip.h"
+#include "usbip_network.h"
+#include <ctype.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <glib.h>
+
+static const char version[] = PACKAGE_STRING
+       " ($Id$)";
+
+
+/* /sys/devices/platform/vhci_hcd/usb6/6-1/6-1:1.1  -> 1 */
+static int get_interface_number(char *path)
+{
+       char *c;
+
+       c = strstr(path, vhci_driver->hc_device->bus_id);
+       if (!c)
+               return -1;      /* hc exist? */
+       c++;
+       /* -> usb6/6-1/6-1:1.1 */
+
+       c = strchr(c, '/');
+       if (!c)
+               return -1;      /* hc exist? */
+       c++;
+       /* -> 6-1/6-1:1.1 */
+
+       c = strchr(c, '/');
+       if (!c)
+               return -1;      /* no interface path */
+       c++;
+       /* -> 6-1:1.1 */
+
+       c = strchr(c, ':');
+       if (!c)
+               return -1;      /* no configuration? */
+       c++;
+       /* -> 1.1 */
+
+       c = strchr(c, '.');
+       if (!c)
+               return -1;      /* no interface? */
+       c++;
+       /* -> 1 */
+
+
+       return atoi(c);
+}
+
+
+static struct sysfs_device *open_usb_interface(struct usb_device *udev, int i)
+{
+       struct sysfs_device *suinf;
+       char busid[SYSFS_BUS_ID_SIZE];
+
+       snprintf(busid, SYSFS_BUS_ID_SIZE, "%s:%d.%d",
+                       udev->busid, udev->bConfigurationValue, i);
+
+       suinf = sysfs_open_device("usb", busid);
+       if (!suinf)
+               err("sysfs_open_device %s", busid);
+
+       return suinf;
+}
+
+
+#define MAX_BUFF 100
+static int record_connection(char *host, char *port, char *busid, int rhport)
+{
+       int fd;
+       char path[PATH_MAX+1];
+       char buff[MAX_BUFF+1];
+       int ret;
+
+       mkdir(VHCI_STATE_PATH, 0700);
+
+       snprintf(path, PATH_MAX, VHCI_STATE_PATH"/port%d", rhport);
+
+       fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, S_IRWXU);
+       if (fd < 0)
+               return -1;
+
+       snprintf(buff, MAX_BUFF, "%s %s %s\n",
+                       host, port, busid);
+
+       ret = write(fd, buff, strlen(buff));
+       if (ret != (ssize_t) strlen(buff)) {
+               close(fd);
+               return -1;
+       }
+
+       close(fd);
+
+       return 0;
+}
+
+static int read_record(int rhport, char *host, char *port, char *busid)
+{
+       FILE *file;
+       char path[PATH_MAX+1];
+
+       snprintf(path, PATH_MAX, VHCI_STATE_PATH"/port%d", rhport);
+
+       file = fopen(path, "r");
+       if (!file) {
+               err("fopen");
+               return -1;
+       }
+
+       if (fscanf(file, "%s %s %s\n", host, port, busid) != 3) {
+               err("fscanf");
+               fclose(file);
+               return -1;
+       }
+
+       fclose(file);
+
+       return 0;
+}
+
+
+int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev)
+{
+       char product_name[100];
+       char host[NI_MAXHOST] = "unknown host";
+       char serv[NI_MAXSERV] = "unknown port";
+       char remote_busid[SYSFS_BUS_ID_SIZE];
+       int ret;
+
+       if (idev->status == VDEV_ST_NULL || idev->status == VDEV_ST_NOTASSIGNED) {
+               info("Port %02d: <%s>", idev->port, usbip_status_string(idev->status));
+               return 0;
+       }
+
+       ret = read_record(idev->port, host, serv, remote_busid);
+       if (ret) {
+               err("read_record");
+               return -1;
+       }
+
+       info("Port %02d: <%s> at %s", idev->port,
+                       usbip_status_string(idev->status), usbip_speed_string(idev->udev.speed));
+
+       usbip_names_get_product(product_name, sizeof(product_name),
+                       idev->udev.idVendor, idev->udev.idProduct);
+
+       info("       %s",  product_name);
+
+       info("%10s -> usbip://%s:%s/%s  (remote devid %08x (bus/dev %03d/%03d))",
+                       idev->udev.busid, host, serv, remote_busid,
+                       idev->devid,
+                       idev->busnum, idev->devnum);
+
+       for (int i=0; i < idev->udev.bNumInterfaces; i++) {
+               /* show interface information */
+               struct sysfs_device *suinf;
+
+               suinf = open_usb_interface(&idev->udev, i);
+               if (!suinf)
+                       continue;
+
+               info("       %6s used by %-17s", suinf->bus_id, suinf->driver_name);
+               sysfs_close_device(suinf);
+
+               /* show class device information */
+               struct class_device *cdev;
+
+               dlist_for_each_data(idev->cdev_list, cdev, struct class_device) {
+                       int ifnum = get_interface_number(cdev->devpath);
+                       if (ifnum == i) {
+                               info("           %s", cdev->clspath);
+                       }
+               }
+       }
+
+       return 0;
+}
+
+
+
+
+static int query_exported_devices(int sockfd)
+{
+       int ret;
+       struct op_devlist_reply rep;
+       uint16_t code = OP_REP_DEVLIST;
+
+       bzero(&rep, sizeof(rep));
+
+       ret = usbip_send_op_common(sockfd, OP_REQ_DEVLIST, 0);
+       if (ret < 0) {
+               err("send op_common");
+               return -1;
+       }
+
+       ret = usbip_recv_op_common(sockfd, &code);
+       if (ret < 0) {
+               err("recv op_common");
+               return -1;
+       }
+
+       ret = usbip_recv(sockfd, (void *) &rep, sizeof(rep));
+       if (ret < 0) {
+               err("recv op_devlist");
+               return -1;
+       }
+
+       PACK_OP_DEVLIST_REPLY(0, &rep);
+       dbg("exportable %d devices", rep.ndev);
+
+       for (unsigned int i=0; i < rep.ndev; i++) {
+               char product_name[100];
+               char class_name[100];
+               struct usb_device udev;
+
+               bzero(&udev, sizeof(udev));
+
+               ret = usbip_recv(sockfd, (void *) &udev, sizeof(udev));
+               if (ret < 0) {
+                       err("recv usb_device[%d]", i);
+                       return -1;
+               }
+               pack_usb_device(0, &udev);
+
+               usbip_names_get_product(product_name, sizeof(product_name),
+                               udev.idVendor, udev.idProduct);
+               usbip_names_get_class(class_name, sizeof(class_name), udev.bDeviceClass,
+                               udev.bDeviceSubClass, udev.bDeviceProtocol);
+
+               info("%8s: %s", udev.busid, product_name);
+               info("%8s: %s", " ", udev.path);
+               info("%8s: %s", " ", class_name);
+
+               for (int j=0; j < udev.bNumInterfaces; j++) {
+                       struct usb_interface uinf;
+
+                       ret = usbip_recv(sockfd, (void *) &uinf, sizeof(uinf));
+                       if (ret < 0) {
+                               err("recv usb_interface[%d]", j);
+                               return -1;
+                       }
+
+                       pack_usb_interface(0, &uinf);
+                       usbip_names_get_class(class_name, sizeof(class_name), uinf.bInterfaceClass,
+                                       uinf.bInterfaceSubClass, uinf.bInterfaceProtocol);
+
+                       info("%8s: %2d - %s", " ", j, class_name);
+               }
+
+               info(" ");
+       }
+
+       return rep.ndev;
+}
+
+static int import_device(int sockfd, struct usb_device *udev)
+{
+       int ret;
+       int port;
+
+       ret = usbip_vhci_driver_open();
+       if (ret < 0) {
+               err("open vhci_driver");
+               return -1;
+       }
+
+       port = usbip_vhci_get_free_port();
+       if (port < 0) {
+               err("no free port");
+               usbip_vhci_driver_close();
+               return -1;
+       }
+
+       ret = usbip_vhci_attach_device(port, sockfd, udev->busnum,
+                       udev->devnum, udev->speed);
+       if (ret < 0) {
+               err("import device");
+               usbip_vhci_driver_close();
+               return -1;
+       }
+
+       usbip_vhci_driver_close();
+
+       return port;
+}
+
+
+static int query_import_device(int sockfd, char *busid)
+{
+       int ret;
+       struct op_import_request request;
+       struct op_import_reply   reply;
+       uint16_t code = OP_REP_IMPORT;
+
+       bzero(&request, sizeof(request));
+       bzero(&reply, sizeof(reply));
+
+
+       /* send a request */
+       ret = usbip_send_op_common(sockfd, OP_REQ_IMPORT, 0);
+       if (ret < 0) {
+               err("send op_common");
+               return -1;
+       }
+
+       strncpy(request.busid, busid, SYSFS_BUS_ID_SIZE-1);
+
+       PACK_OP_IMPORT_REQUEST(0, &request);
+
+       ret = usbip_send(sockfd, (void *) &request, sizeof(request));
+       if (ret < 0) {
+               err("send op_import_request");
+               return -1;
+       }
+
+
+       /* recieve a reply */
+       ret = usbip_recv_op_common(sockfd, &code);
+       if (ret < 0) {
+               err("recv op_common");
+               return -1;
+       }
+
+       ret = usbip_recv(sockfd, (void *) &reply, sizeof(reply));
+       if (ret < 0) {
+               err("recv op_import_reply");
+               return -1;
+       }
+
+       PACK_OP_IMPORT_REPLY(0, &reply);
+
+
+       /* check the reply */
+       if (strncmp(reply.udev.busid, busid, SYSFS_BUS_ID_SIZE)) {
+               err("recv different busid %s", reply.udev.busid);
+               return -1;
+       }
+
+
+       /* import a device */
+       return import_device(sockfd, &reply.udev);
+}
+
+static int attach_device(char *host, char *busid)
+{
+       int sockfd;
+       int ret;
+       int rhport;
+
+       sockfd = tcp_connect(host, USBIP_PORT_STRING);
+       if (sockfd < 0) {
+               err("tcp connect");
+               return -1;
+       }
+
+       rhport = query_import_device(sockfd, busid);
+       if (rhport < 0) {
+               err("query");
+               return -1;
+       }
+
+       close(sockfd);
+
+       ret = record_connection(host, USBIP_PORT_STRING,
+                       busid, rhport);
+       if (ret < 0) {
+               err("record connection");
+               return -1;
+       }
+
+       return 0;
+}
+
+static int detach_port(char *port)
+{
+       int ret;
+       uint8_t portnum;
+
+       for (unsigned int i=0; i < strlen(port); i++)
+               if (!isdigit(port[i])) {
+                       err("invalid port %s", port);
+                       return -1;
+               }
+
+       /* check max port */
+
+       portnum = atoi(port);
+
+       ret = usbip_vhci_driver_open();
+       if (ret < 0) {
+               err("open vhci_driver");
+               return -1;
+       }
+
+       ret = usbip_vhci_detach_device(portnum);
+       if (ret < 0)
+               return -1;
+
+       usbip_vhci_driver_close();
+
+       return ret;
+}
+
+static int show_exported_devices(char *host)
+{
+       int ret;
+       int sockfd;
+
+       sockfd = tcp_connect(host, USBIP_PORT_STRING);
+       if (sockfd < 0) {
+               err("- %s failed", host);
+               return -1;
+       }
+
+       info("- %s", host);
+
+       ret = query_exported_devices(sockfd);
+       if (ret < 0) {
+               err("query");
+               return -1;
+       }
+
+       close(sockfd);
+       return 0;
+}
+
+static int attach_exported_devices(char *host, int sockfd)
+{
+       int ret;
+       struct op_devlist_reply rep;
+       uint16_t code = OP_REP_DEVLIST;
+
+       bzero(&rep, sizeof(rep));
+
+       ret = usbip_send_op_common(sockfd, OP_REQ_DEVLIST, 0);
+       if(ret < 0) {
+               err("send op_common");
+               return -1;
+       }
+
+       ret = usbip_recv_op_common(sockfd, &code);
+       if(ret < 0) {
+               err("recv op_common");
+               return -1;
+       }
+
+       ret = usbip_recv(sockfd, (void *) &rep, sizeof(rep));
+       if(ret < 0) {
+               err("recv op_devlist");
+               return -1;
+       }
+
+       PACK_OP_DEVLIST_REPLY(0, &rep);
+       dbg("exportable %d devices", rep.ndev);
+
+       for(unsigned int i=0; i < rep.ndev; i++) {
+               char product_name[100];
+               char class_name[100];
+               struct usb_device udev;
+
+               bzero(&udev, sizeof(udev));
+
+               ret = usbip_recv(sockfd, (void *) &udev, sizeof(udev));
+               if(ret < 0) {
+                       err("recv usb_device[%d]", i);
+                       return -1;
+               }
+               pack_usb_device(0, &udev);
+
+               usbip_names_get_product(product_name, sizeof(product_name),
+                               udev.idVendor, udev.idProduct);
+               usbip_names_get_class(class_name, sizeof(class_name), udev.bDeviceClass,
+                               udev.bDeviceSubClass, udev.bDeviceProtocol);
+
+               dbg("Attaching usb port %s from host %s on usbip, with deviceid: %s", udev.busid, host, product_name);
+
+               for (int j=0; j < udev.bNumInterfaces; j++) {
+                       struct usb_interface uinf;
+
+                       ret = usbip_recv(sockfd, (void *) &uinf, sizeof(uinf));
+                       if (ret < 0) {
+                               err("recv usb_interface[%d]", j);
+                               return -1;
+                       }
+
+                       pack_usb_interface(0, &uinf);
+                       usbip_names_get_class(class_name, sizeof(class_name), uinf.bInterfaceClass,
+                                       uinf.bInterfaceSubClass, uinf.bInterfaceProtocol);
+
+                       dbg("interface %2d - %s", j, class_name);
+               }
+
+               attach_device(host, udev.busid);
+       }
+
+       return rep.ndev;
+}
+
+static int attach_devices_all(char *host)
+{
+       int ret;
+       int sockfd;
+
+       sockfd = tcp_connect(host, USBIP_PORT_STRING);
+       if(sockfd < 0) {
+               err("- %s failed", host);
+               return -1;
+       }
+
+       info("- %s", host);
+
+       ret = attach_exported_devices(host, sockfd);
+       if(ret < 0) {
+               err("query");
+               return -1;
+       }
+
+       close(sockfd);
+       return 0;
+}
+
+
+const char help_message[] = "\
+Usage: usbip [options]                         \n\
+       -a, --attach [host] [bus_id]            \n\
+               Attach a remote USB device.     \n\
+                                               \n\
+       -x, --attachall [host]          \n\
+               Attach all remote USB devices on the specific host.     \n\
+                                               \n\
+       -d, --detach [ports]                    \n\
+               Detach an imported USB device.  \n\
+                                               \n\
+       -l, --list [hosts]                      \n\
+               List exported USB devices.      \n\
+                                               \n\
+       -p, --port                              \n\
+               List virtual USB port status.   \n\
+                                               \n\
+       -D, --debug                             \n\
+               Print debugging information.    \n\
+                                               \n\
+       -v, --version                           \n\
+               Show version.                   \n\
+                                               \n\
+       -h, --help                              \n\
+               Print this help.                \n";
+
+static void show_help(void)
+{
+       printf("%s", help_message);
+}
+
+static int show_port_status(void)
+{
+       int ret;
+       struct usbip_imported_device *idev;
+
+       ret = usbip_vhci_driver_open();
+       if (ret < 0)
+               return ret;
+
+       for (int i = 0; i < vhci_driver->nports; i++) {
+               idev = &vhci_driver->idev[i];
+
+               if (usbip_vhci_imported_device_dump(idev) < 0)
+                       ret = -1;
+       }
+
+       usbip_vhci_driver_close();
+
+       return ret;
+}
+
+#define _GNU_SOURCE
+#include <getopt.h>
+static const struct option longopts[] = {
+       {"attach",      no_argument,    NULL, 'a'},
+       {"attachall",   no_argument,    NULL, 'x'},
+       {"detach",      no_argument,    NULL, 'd'},
+       {"port",        no_argument,    NULL, 'p'},
+       {"list",        no_argument,    NULL, 'l'},
+       {"version",     no_argument,    NULL, 'v'},
+       {"help",        no_argument,    NULL, 'h'},
+       {"debug",       no_argument,    NULL, 'D'},
+       {"syslog",      no_argument,    NULL, 'S'},
+       {NULL,          0,              NULL,  0}
+};
+
+int main(int argc, char *argv[])
+{
+       int ret;
+
+       enum {
+               cmd_attach = 1,
+               cmd_attachall,
+               cmd_detach,
+               cmd_port,
+               cmd_list,
+               cmd_help,
+               cmd_version
+       } cmd = 0;
+
+       usbip_use_stderr = 1;
+
+       if (geteuid() != 0)
+               g_warning("running non-root?");
+
+       ret = usbip_names_init(USBIDS_FILE);
+       if (ret)
+               notice("failed to open %s", USBIDS_FILE);
+
+       for (;;) {
+               int c;
+               int index = 0;
+
+               c = getopt_long(argc, argv, "adplvhDSx", longopts, &index);
+
+               if (c == -1)
+                       break;
+
+               switch(c) {
+                       case 'a':
+                               if (!cmd)
+                                       cmd = cmd_attach;
+                               else
+                                       cmd = cmd_help;
+                               break;
+                       case 'd':
+                               if (!cmd)
+                                       cmd = cmd_detach;
+                               else
+                                       cmd = cmd_help;
+                               break;
+                       case 'p':
+                               if (!cmd)
+                                       cmd = cmd_port;
+                               else cmd = cmd_help;
+                               break;
+                       case 'l':
+                               if (!cmd)
+                                       cmd = cmd_list;
+                               else
+                                       cmd = cmd_help;
+                               break;
+                       case 'v':
+                               if (!cmd)
+                                       cmd = cmd_version;
+                               else
+                                       cmd = cmd_help;
+                               break;
+                       case 'x':
+                               if(!cmd)
+                                       cmd = cmd_attachall;
+                               else
+                                       cmd = cmd_help;
+                               break;
+                       case 'h':
+                               cmd = cmd_help;
+                               break;
+                       case 'D':
+                               usbip_use_debug = 1;
+                               break;
+                       case 'S':
+                               usbip_use_syslog = 1;
+                               break;
+                       case '?':
+                               break;
+
+                       default:
+                               err("getopt");
+               }
+       }
+
+       ret = 0;
+       switch(cmd) {
+               case cmd_attach:
+                       if (optind == argc - 2)
+                               ret = attach_device(argv[optind], argv[optind+1]);
+                       else
+                               show_help();
+                       break;
+               case cmd_detach:
+                       while (optind < argc)
+                               ret = detach_port(argv[optind++]);
+                       break;
+               case cmd_port:
+                       ret = show_port_status();
+                       break;
+               case cmd_list:
+                       while (optind < argc)
+                               ret = show_exported_devices(argv[optind++]);
+                       break;
+               case cmd_attachall:
+                       while(optind < argc)
+                               ret = attach_devices_all(argv[optind++]);
+                       break;
+               case cmd_version:
+                       printf("%s\n", version);
+                       break;
+               case cmd_help:
+                       show_help();
+                       break;
+               default:
+                       show_help();
+       }
+
+
+       usbip_names_free();
+
+       exit((ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE);
+}
diff --git a/drivers/staging/usbip/userspace/cmd/usbip_bind_driver.8 b/drivers/staging/usbip/userspace/cmd/usbip_bind_driver.8
new file mode 100644 (file)
index 0000000..8a8972d
--- /dev/null
@@ -0,0 +1,42 @@
+.TH USBIP_BIND_DRIVER "8" "February 2009" "usbip" "System Administration Utilities"
+.SH NAME
+usbip_bind_driver \- change driver binding for USB/IP
+
+.SH SYNOPSIS
+.B usbip_bind_driver
+[\fIoptions\fR]
+
+.SH DESCRIPTION
+Driver bindings for USB devices can be changed using 
+this program. It is used to export and unexport USB 
+devices over USB/IP.
+
+.SH OPTIONS
+.TP
+\fB\-u\fR, \fB\-\-usbip\fR <busid>
+Make a device exportable
+.TP
+\fB\-o\fR, \fB\-\-other\fR <busid>
+Use a device by a local driver
+.TP
+\fB\-l\fR, \fB\-\-list\fR
+Print usb devices and their drivers
+.TP
+\fB\-L\fR, \fB\-\-list2\fR
+Print usb devices and their drivers in parseable mode
+
+.SH EXAMPLES
+
+    server:# usbip_bind_driver --list
+        - List driver assignments for usb devices.
+
+    server:# usbip_bind_driver --usbip 1-2
+        - Bind usbip.ko to the device of busid 1-2.
+        - A usb device 1-2 is now exportable to other hosts!
+
+    server:# usbip_bind_driver --other 1-2 
+        - Shutdown exporting and use the device locally.
+
+.SH "SEE ALSO"
+\fBusbip\fP\fB(8)\fB\fP,
+\fBusbipd\fP\fB(8)\fB\fP
diff --git a/drivers/staging/usbip/userspace/cmd/usbip_network.c b/drivers/staging/usbip/userspace/cmd/usbip_network.c
new file mode 100644 (file)
index 0000000..a3a955b
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * $Id$
+ *
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#include "usbip_network.h"
+
+void pack_uint32_t(int pack, uint32_t *num)
+{
+       uint32_t i;
+
+       if (pack)
+               i = htonl(*num);
+       else
+               i = ntohl(*num);
+
+       *num = i;
+}
+
+void pack_uint16_t(int pack, uint16_t *num)
+{
+       uint16_t i;
+
+       if (pack)
+               i = htons(*num);
+       else
+               i = ntohs(*num);
+
+       *num = i;
+}
+
+void pack_usb_device(int pack, struct usb_device *udev)
+{
+       pack_uint32_t(pack, &udev->busnum);
+       pack_uint32_t(pack, &udev->devnum);
+       pack_uint32_t(pack, &udev->speed );
+
+       pack_uint16_t(pack, &udev->idVendor );
+       pack_uint16_t(pack, &udev->idProduct);
+       pack_uint16_t(pack, &udev->bcdDevice);
+}
+
+void pack_usb_interface(int pack, struct usb_interface *udev)
+{
+       /* uint8_t members need nothing */
+}
+
+
+static ssize_t usbip_xmit(int sockfd, void *buff, size_t bufflen, int sending)
+{
+       ssize_t total = 0;
+
+       if (!bufflen)
+               return 0;
+
+       do {
+               ssize_t nbytes;
+
+               if (sending)
+                       nbytes = send(sockfd, buff, bufflen, 0);
+               else
+                       nbytes = recv(sockfd, buff, bufflen, MSG_WAITALL);
+
+               if (nbytes <= 0)
+                       return -1;
+
+               buff    = (void *) ((intptr_t) buff + nbytes);
+               bufflen -= nbytes;
+               total   += nbytes;
+
+       } while (bufflen > 0);
+
+
+       return total;
+}
+
+ssize_t usbip_recv(int sockfd, void *buff, size_t bufflen)
+{
+       return usbip_xmit(sockfd, buff, bufflen, 0);
+}
+
+ssize_t usbip_send(int sockfd, void *buff, size_t bufflen)
+{
+       return usbip_xmit(sockfd, buff, bufflen, 1);
+}
+
+int usbip_send_op_common(int sockfd, uint32_t code, uint32_t status)
+{
+       int ret;
+       struct op_common op_common;
+
+       bzero(&op_common, sizeof(op_common));
+
+       op_common.version       = USBIP_VERSION;
+       op_common.code          = code;
+       op_common.status        = status;
+
+       PACK_OP_COMMON(1, &op_common);
+
+       ret = usbip_send(sockfd, (void *) &op_common, sizeof(op_common));
+       if (ret < 0) {
+               err("send op_common");
+               return -1;
+       }
+
+       return 0;
+}
+
+int usbip_recv_op_common(int sockfd, uint16_t *code)
+{
+       int ret;
+       struct op_common op_common;
+
+       bzero(&op_common, sizeof(op_common));
+
+       ret = usbip_recv(sockfd, (void *) &op_common, sizeof(op_common));
+       if (ret < 0) {
+               err("recv op_common, %d", ret);
+               goto err;
+       }
+
+       PACK_OP_COMMON(0, &op_common);
+
+       if (op_common.version != USBIP_VERSION) {
+               err("version mismatch, %d %d", op_common.version, USBIP_VERSION);
+               goto err;
+       }
+
+       switch(*code) {
+               case OP_UNSPEC:
+                       break;
+               default:
+                       if (op_common.code != *code) {
+                               info("unexpected pdu %d for %d", op_common.code, *code);
+                               goto err;
+                       }
+       }
+
+       if (op_common.status != ST_OK) {
+               info("request failed at peer, %d", op_common.status);
+               goto err;
+       }
+
+       *code = op_common.code;
+
+       return 0;
+err:
+       return -1;
+}
+
+
+int usbip_set_reuseaddr(int sockfd)
+{
+       const int val = 1;
+       int ret;
+
+       ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
+       if (ret < 0)
+               err("setsockopt SO_REUSEADDR");
+
+       return ret;
+}
+
+int usbip_set_nodelay(int sockfd)
+{
+       const int val = 1;
+       int ret;
+
+       ret = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val));
+       if (ret < 0)
+               err("setsockopt TCP_NODELAY");
+
+       return ret;
+}
+
+int usbip_set_keepalive(int sockfd)
+{
+       const int val = 1;
+       int ret;
+
+       ret = setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &val, sizeof(val));
+       if (ret < 0)
+               err("setsockopt SO_KEEPALIVE");
+
+       return ret;
+}
+
+/* IPv6 Ready */
+/*
+ * moved here from vhci_attach.c
+ */
+int tcp_connect(char *hostname, char *service)
+{
+       struct addrinfo hints, *res, *res0;
+       int sockfd;
+       int err;
+
+
+       memset(&hints, 0, sizeof(hints));
+       hints.ai_socktype = SOCK_STREAM;
+
+       /* get all possible addresses */
+       err = getaddrinfo(hostname, service, &hints, &res0);
+       if (err) {
+               err("%s %s: %s", hostname, service, gai_strerror(err));
+               return -1;
+       }
+
+       /* try all the addresses */
+       for (res = res0; res; res = res->ai_next) {
+               char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
+
+               err = getnameinfo(res->ai_addr, res->ai_addrlen,
+                               hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV);
+               if (err) {
+                       err("%s %s: %s", hostname, service, gai_strerror(err));
+                       continue;
+               }
+
+               dbg("trying %s port %s\n", hbuf, sbuf);
+
+               sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+               if (sockfd < 0) {
+                       err("socket");
+                       continue;
+               }
+
+               /* should set TCP_NODELAY for usbip */
+               usbip_set_nodelay(sockfd);
+               /* TODO: write code for heatbeat */
+               usbip_set_keepalive(sockfd);
+
+               err = connect(sockfd, res->ai_addr, res->ai_addrlen);
+               if (err < 0) {
+                       close(sockfd);
+                       continue;
+               }
+
+               /* connected */
+               dbg("connected to %s:%s", hbuf, sbuf);
+               freeaddrinfo(res0);
+               return sockfd;
+       }
+
+
+       dbg("%s:%s, %s", hostname, service, "no destination to connect to");
+       freeaddrinfo(res0);
+
+       return -1;
+}
diff --git a/drivers/staging/usbip/userspace/cmd/usbip_network.h b/drivers/staging/usbip/userspace/cmd/usbip_network.h
new file mode 100644 (file)
index 0000000..804f83d
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifndef _USBIP_NETWORK_H
+#define _USBIP_NETWORK_H
+
+#include "usbip.h"
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/tcp.h>
+
+
+/* -------------------------------------------------- */
+/* Define Protocol Format                             */
+/* -------------------------------------------------- */
+
+
+/* ---------------------------------------------------------------------- */
+/* Common header for all the kinds of PDUs. */
+struct op_common {
+       uint16_t version;
+
+#define OP_REQUEST     (0x80 << 8)
+#define OP_REPLY       (0x00 << 8)
+       uint16_t code;
+
+       /* add more error code */
+#define ST_OK  0x00
+#define ST_NA  0x01
+       uint32_t status; /* op_code status (for reply) */
+
+} __attribute__((packed));
+
+#define PACK_OP_COMMON(pack, op_common)  do {\
+       pack_uint16_t(pack, &(op_common)->version);\
+       pack_uint16_t(pack, &(op_common)->code   );\
+       pack_uint32_t(pack, &(op_common)->status );\
+} while (0)
+
+
+/* ---------------------------------------------------------------------- */
+/* Dummy Code */
+#define OP_UNSPEC      0x00
+#define OP_REQ_UNSPEC  OP_UNSPEC
+#define OP_REP_UNSPEC  OP_UNSPEC
+
+/* ---------------------------------------------------------------------- */
+/* Retrieve USB device information. (still not used) */
+#define OP_DEVINFO     0x02
+#define OP_REQ_DEVINFO (OP_REQUEST | OP_DEVINFO)
+#define OP_REP_DEVINFO (OP_REPLY   | OP_DEVINFO)
+
+struct op_devinfo_request {
+       char busid[SYSFS_BUS_ID_SIZE];
+} __attribute__((packed));
+
+struct op_devinfo_reply {
+       struct usb_device udev;
+       struct usb_interface uinf[];
+} __attribute__((packed));
+
+
+/* ---------------------------------------------------------------------- */
+/* Import a remote USB device. */
+#define OP_IMPORT      0x03
+#define OP_REQ_IMPORT  (OP_REQUEST | OP_IMPORT)
+#define OP_REP_IMPORT   (OP_REPLY   | OP_IMPORT)
+
+struct op_import_request {
+       char busid[SYSFS_BUS_ID_SIZE];
+} __attribute__((packed));
+
+struct op_import_reply {
+       struct usb_device udev;
+//     struct usb_interface uinf[];
+} __attribute__((packed));
+
+#define PACK_OP_IMPORT_REQUEST(pack, request)  do {\
+} while (0)
+
+#define PACK_OP_IMPORT_REPLY(pack, reply)  do {\
+       pack_usb_device(pack, &(reply)->udev);\
+} while (0)
+
+
+
+/* ---------------------------------------------------------------------- */
+/* Export a USB device to a remote host. */
+#define OP_EXPORT      0x06
+#define OP_REQ_EXPORT  (OP_REQUEST | OP_EXPORT)
+#define OP_REP_EXPORT  (OP_REPLY   | OP_EXPORT)
+
+struct op_export_request {
+       struct usb_device udev;
+} __attribute__((packed));
+
+struct op_export_reply {
+       int returncode; 
+} __attribute__((packed));
+
+
+#define PACK_OP_EXPORT_REQUEST(pack, request)  do {\
+       pack_usb_device(pack, &(request)->udev);\
+} while (0)
+
+#define PACK_OP_EXPORT_REPLY(pack, reply)  do {\
+} while (0)
+
+/* ---------------------------------------------------------------------- */
+/* un-Export a USB device from a remote host. */
+#define OP_UNEXPORT    0x07
+#define OP_REQ_UNEXPORT        (OP_REQUEST | OP_UNEXPORT)
+#define OP_REP_UNEXPORT        (OP_REPLY   | OP_UNEXPORT)
+
+struct op_unexport_request {
+       struct usb_device udev;
+} __attribute__((packed));
+
+struct op_unexport_reply {
+       int returncode; 
+} __attribute__((packed));
+
+#define PACK_OP_UNEXPORT_REQUEST(pack, request)  do {\
+       pack_usb_device(pack, &(request)->udev);\
+} while (0)
+
+#define PACK_OP_UNEXPORT_REPLY(pack, reply)  do {\
+} while (0)
+
+
+
+/* ---------------------------------------------------------------------- */
+/* Negotiate IPSec encryption key. (still not used) */
+#define OP_CRYPKEY     0x04
+#define OP_REQ_CRYPKEY (OP_REQUEST | OP_CRYPKEY)
+#define OP_REP_CRYPKEY (OP_REPLY   | OP_CRYPKEY)
+
+struct op_crypkey_request {
+       /* 128bit key */
+       uint32_t key[4];
+} __attribute__((packed));
+
+struct op_crypkey_reply {
+       uint32_t __reserved;
+} __attribute__((packed));
+
+
+/* ---------------------------------------------------------------------- */
+/* Retrieve the list of exported USB devices. */
+#define OP_DEVLIST     0x05
+#define OP_REQ_DEVLIST (OP_REQUEST | OP_DEVLIST)
+#define OP_REP_DEVLIST (OP_REPLY   | OP_DEVLIST)
+
+struct op_devlist_request {
+} __attribute__((packed));
+
+struct op_devlist_reply {
+       uint32_t ndev;
+       /* followed by reply_extra[] */
+} __attribute__((packed));
+
+struct op_devlist_reply_extra {
+       struct usb_device    udev;
+       struct usb_interface uinf[];
+} __attribute__((packed));
+
+#define PACK_OP_DEVLIST_REQUEST(pack, request)  do {\
+} while (0)
+
+#define PACK_OP_DEVLIST_REPLY(pack, reply)  do {\
+       pack_uint32_t(pack, &(reply)->ndev);\
+} while (0)
+
+
+/* -------------------------------------------------- */
+/* Declare Prototype Function                         */
+/* -------------------------------------------------- */
+
+void pack_uint32_t(int pack, uint32_t *num);
+void pack_uint16_t(int pack, uint16_t *num);
+void pack_usb_device(int pack, struct usb_device *udev);
+void pack_usb_interface(int pack, struct usb_interface *uinf);
+
+ssize_t usbip_recv(int sockfd, void *buff, size_t bufflen);
+ssize_t usbip_send(int sockfd, void *buff, size_t bufflen);
+int usbip_send_op_common(int sockfd, uint32_t code, uint32_t status);
+int usbip_recv_op_common(int sockfd, uint16_t *code);
+int usbip_set_reuseaddr(int sockfd);
+int usbip_set_nodelay(int sockfd);
+int usbip_set_keepalive(int sockfd);
+
+int tcp_connect(char *hostname, char *service);
+
+#define USBIP_PORT 3240
+#define USBIP_PORT_STRING "3240"
+
+#endif
diff --git a/drivers/staging/usbip/userspace/cmd/usbipd.8 b/drivers/staging/usbip/userspace/cmd/usbipd.8
new file mode 100644 (file)
index 0000000..3c39520
--- /dev/null
@@ -0,0 +1,62 @@
+.TH USBIP "8" "February 2009" "usbip" "System Administration Utilities"
+.SH NAME
+usbipd \- USB/IP server daemon
+.SH SYNOPSIS
+.B usbipd
+[\fIoptions\fR]
+
+.SH DESCRIPTION
+.B usbipd
+provides USB/IP clients access to exported USB devices.
+
+Devices have to explicitly be exported using
+.B usbip_bind_driver
+before usbipd makes them available to other hosts.
+
+The daemon accepts connections from USB/IP clients
+on TCP port 3240.
+
+.SH OPTIONS
+.HP
+\fB\-D\fR, \fB\-\-daemon\fR
+.IP
+Run as a daemon process.
+.PP
+
+.HP
+\fB\-d\fR, \fB\-\-debug\fR
+.IP
+Print debugging information.
+.PP
+
+.HP
+\fB\-v\fR, \fB\-\-version\fR
+.IP
+Show version.
+.PP
+
+.SH LIMITATIONS
+
+.B usbipd
+offers no authentication or authorization for USB/IP. Any
+USB/IP client can connect and use exported devices.
+
+.SH EXAMPLES
+
+    server:# modprobe usbip
+
+    server:# usbipd -D
+        - Start usbip daemon.
+
+    server:# usbip_bind_driver --list
+        - List driver assignments for usb devices.
+
+    server:# usbip_bind_driver --usbip 1-2
+        - Bind usbip.ko to the device of busid 1-2.
+        - A usb device 1-2 is now exportable to other hosts!
+        - Use 'usbip_bind_driver --other 1-2' when you want to shutdown exporting and use the device locally.
+
+.SH "SEE ALSO"
+\fBusbip\fP\fB(8)\fB\fP,
+\fBusbip_attach_driver\fP\fB(8)\fB\fP
+
diff --git a/drivers/staging/usbip/userspace/cmd/usbipd.c b/drivers/staging/usbip/userspace/cmd/usbipd.c
new file mode 100644 (file)
index 0000000..441dcde
--- /dev/null
@@ -0,0 +1,571 @@
+/*
+ * $Id$
+ *
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "../config.h"
+#endif
+
+#include <unistd.h>
+#include <netdb.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <arpa/inet.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#ifdef HAVE_LIBWRAP
+#include <tcpd.h>
+#endif
+
+#define _GNU_SOURCE
+#include <getopt.h>
+#include <signal.h>
+
+#include "usbip.h"
+#include "usbip_network.h"
+
+#include <glib.h>
+
+static const char version[] = PACKAGE_STRING
+       " ($Id$)";
+
+
+static int send_reply_devlist(int sockfd)
+{
+       int ret;
+       struct usbip_exported_device *edev;
+       struct op_devlist_reply reply;
+
+
+       reply.ndev = 0;
+
+       /* how many devices are exported ? */
+       dlist_for_each_data(stub_driver->edev_list, edev, struct usbip_exported_device) {
+               reply.ndev += 1;
+       }
+
+       dbg("%d devices are exported", reply.ndev);
+
+       ret = usbip_send_op_common(sockfd, OP_REP_DEVLIST,  ST_OK);
+       if (ret < 0) {
+               err("send op_common");
+               return ret;
+       }
+
+       PACK_OP_DEVLIST_REPLY(1, &reply);
+
+       ret = usbip_send(sockfd, (void *) &reply, sizeof(reply));
+       if (ret < 0) {
+               err("send op_devlist_reply");
+               return ret;
+       }
+
+       dlist_for_each_data(stub_driver->edev_list, edev, struct usbip_exported_device) {
+               struct usb_device pdu_udev;
+
+               dump_usb_device(&edev->udev);
+               memcpy(&pdu_udev, &edev->udev, sizeof(pdu_udev));
+               pack_usb_device(1, &pdu_udev);
+
+               ret = usbip_send(sockfd, (void *) &pdu_udev, sizeof(pdu_udev));
+               if (ret < 0) {
+                       err("send pdu_udev");
+                       return ret;
+               }
+
+               for (int i=0; i < edev->udev.bNumInterfaces; i++) {
+                       struct usb_interface pdu_uinf;
+
+                       dump_usb_interface(&edev->uinf[i]);
+                       memcpy(&pdu_uinf, &edev->uinf[i], sizeof(pdu_uinf));
+                       pack_usb_interface(1, &pdu_uinf);
+
+                       ret = usbip_send(sockfd, (void *) &pdu_uinf, sizeof(pdu_uinf));
+                       if (ret < 0) {
+                               err("send pdu_uinf");
+                               return ret;
+                       }
+               }
+       }
+
+       return 0;
+}
+
+
+static int recv_request_devlist(int sockfd)
+{
+       int ret;
+       struct op_devlist_request req;
+
+       bzero(&req, sizeof(req));
+
+       ret = usbip_recv(sockfd, (void *) &req, sizeof(req));
+       if (ret < 0) {
+               err("recv devlist request");
+               return -1;
+       }
+
+       ret = send_reply_devlist(sockfd);
+       if (ret < 0) {
+               err("send devlist reply");
+               return -1;
+       }
+
+       return 0;
+}
+
+
+static int recv_request_import(int sockfd)
+{
+       int ret;
+       struct op_import_request req;
+       struct op_common reply;
+       struct usbip_exported_device *edev;
+       int found = 0;
+       int error = 0;
+
+       bzero(&req, sizeof(req));
+       bzero(&reply, sizeof(reply));
+
+       ret = usbip_recv(sockfd, (void *) &req, sizeof(req));
+       if (ret < 0) {
+               err("recv import request");
+               return -1;
+       }
+
+       PACK_OP_IMPORT_REQUEST(0, &req);
+
+       dlist_for_each_data(stub_driver->edev_list, edev, struct usbip_exported_device) {
+               if (!strncmp(req.busid, edev->udev.busid, SYSFS_BUS_ID_SIZE)) {
+                       dbg("found requested device %s", req.busid);
+                       found = 1;
+                       break;
+               }
+       }
+
+       if (found) {
+               /* should set TCP_NODELAY for usbip */
+               usbip_set_nodelay(sockfd);
+
+               /* export_device needs a TCP/IP socket descriptor */
+               ret = usbip_stub_export_device(edev, sockfd);
+               if (ret < 0)
+                       error = 1;
+       } else {
+               info("not found requested device %s", req.busid);
+               error = 1;
+       }
+
+
+       ret = usbip_send_op_common(sockfd, OP_REP_IMPORT, (!error ? ST_OK : ST_NA));
+       if (ret < 0) {
+               err("send import reply");
+               return -1;
+       }
+
+       if (!error) {
+               struct usb_device pdu_udev;
+
+               memcpy(&pdu_udev, &edev->udev, sizeof(pdu_udev));
+               pack_usb_device(1, &pdu_udev);
+
+               ret = usbip_send(sockfd, (void *) &pdu_udev, sizeof(pdu_udev));
+               if (ret < 0) {
+                       err("send devinfo");
+                       return -1;
+               }
+       }
+
+       return 0;
+}
+
+
+
+static int recv_pdu(int sockfd)
+{
+       int ret;
+       uint16_t code = OP_UNSPEC;
+
+
+       ret = usbip_recv_op_common(sockfd, &code);
+       if (ret < 0) {
+               err("recv op_common, %d", ret);
+               return ret;
+       }
+
+
+       ret = usbip_stub_refresh_device_list();
+       if (ret < 0)
+               return -1;
+
+       switch(code) {
+               case OP_REQ_DEVLIST:
+                       ret = recv_request_devlist(sockfd);
+                       break;
+
+               case OP_REQ_IMPORT:
+                       ret = recv_request_import(sockfd);
+                       break;
+
+               case OP_REQ_DEVINFO:
+               case OP_REQ_CRYPKEY:
+
+               default:
+                       err("unknown op_code, %d", code);
+                       ret = -1;
+       }
+
+
+       return ret;
+}
+
+
+
+
+static void log_addrinfo(struct addrinfo *ai)
+{
+       int ret;
+       char hbuf[NI_MAXHOST];
+       char sbuf[NI_MAXSERV];
+
+       ret = getnameinfo(ai->ai_addr, ai->ai_addrlen, hbuf, sizeof(hbuf),
+                       sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV);
+       if (ret)
+               err("getnameinfo, %s", gai_strerror(ret));
+
+       info("listen at [%s]:%s", hbuf, sbuf);
+}
+
+static struct addrinfo *my_getaddrinfo(char *host, int ai_family)
+{
+       int ret;
+       struct addrinfo hints, *ai_head;
+
+       bzero(&hints, sizeof(hints));
+
+       hints.ai_family   = ai_family;
+       hints.ai_socktype = SOCK_STREAM;
+       hints.ai_flags    = AI_PASSIVE;
+
+       ret = getaddrinfo(host, USBIP_PORT_STRING, &hints, &ai_head);
+       if (ret) {
+               err("%s: %s", USBIP_PORT_STRING, gai_strerror(ret));
+               return NULL;
+       }
+
+       return ai_head;
+}
+
+#define MAXSOCK 20
+static int listen_all_addrinfo(struct addrinfo *ai_head, int lsock[])
+{
+       struct addrinfo *ai;
+       int n = 0;              /* number of sockets */
+
+       for (ai = ai_head; ai && n < MAXSOCK; ai = ai->ai_next) {
+               int ret;
+
+               lsock[n] = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+               if (lsock[n] < 0)
+                       continue;
+
+               usbip_set_reuseaddr(lsock[n]);
+               usbip_set_nodelay(lsock[n]);
+
+               if (lsock[n] >= FD_SETSIZE) {
+                       close(lsock[n]);
+                       lsock[n] = -1;
+                       continue;
+               }
+
+               ret = bind(lsock[n], ai->ai_addr, ai->ai_addrlen);
+               if (ret < 0) {
+                       close(lsock[n]);
+                       lsock[n] = -1;
+                       continue;
+               }
+
+               ret = listen(lsock[n], SOMAXCONN);
+               if (ret < 0) {
+                       close(lsock[n]);
+                       lsock[n] = -1;
+                       continue;
+               }
+
+               log_addrinfo(ai);
+
+               /* next if succeed */
+               n++;
+       }
+
+       if (n == 0) {
+               err("no socket to listen to");
+               return -1;
+       }
+
+       dbg("listen %d address%s", n, (n==1)?"":"es");
+
+       return n;
+}
+
+#ifdef HAVE_LIBWRAP
+static int tcpd_auth(int csock)
+{
+       int ret;
+       struct request_info request;
+
+       request_init(&request, RQ_DAEMON, "usbipd", RQ_FILE, csock, 0);
+
+       fromhost(&request);
+
+       ret = hosts_access(&request);
+       if (!ret)
+               return -1;
+
+       return 0;
+}
+#endif
+
+static int my_accept(int lsock)
+{
+       int csock;
+       struct sockaddr_storage ss;
+       socklen_t len = sizeof(ss);
+       char host[NI_MAXHOST], port[NI_MAXSERV];
+       int ret;
+
+       bzero(&ss, sizeof(ss));
+
+       csock = accept(lsock, (struct sockaddr *) &ss, &len);
+       if (csock < 0) {
+               err("accept");
+               return -1;
+       }
+
+       ret = getnameinfo((struct sockaddr *) &ss, len,
+                       host, sizeof(host), port, sizeof(port),
+                       (NI_NUMERICHOST | NI_NUMERICSERV));
+       if (ret)
+               err("getnameinfo, %s", gai_strerror(ret));
+
+#ifdef HAVE_LIBWRAP
+       ret = tcpd_auth(csock);
+       if (ret < 0) {
+               info("deny access from %s", host);
+               close(csock);
+               return -1;
+       }
+#endif
+
+       info("connected from %s:%s", host, port);
+
+       return csock;
+}
+
+
+GMainLoop *main_loop;
+
+static void signal_handler(int i)
+{
+       dbg("signal catched, code %d", i);
+
+       if (main_loop)
+               g_main_loop_quit(main_loop);
+}
+
+static void set_signal(void)
+{
+       struct sigaction act;
+
+       bzero(&act, sizeof(act));
+       act.sa_handler = signal_handler;
+       sigemptyset(&act.sa_mask);
+       sigaction(SIGTERM, &act, NULL);
+       sigaction(SIGINT, &act, NULL);
+}
+
+
+gboolean process_comming_request(GIOChannel *gio, GIOCondition condition, gpointer data)
+{
+       int ret;
+
+       if (condition & (G_IO_ERR | G_IO_HUP | G_IO_NVAL))
+               g_error("unknown condition");
+
+
+       if (condition & G_IO_IN) {
+               int lsock;
+               int csock;
+
+               lsock = g_io_channel_unix_get_fd(gio);
+
+               csock = my_accept(lsock);
+               if (csock < 0)
+                       return TRUE;
+
+               ret = recv_pdu(csock);
+               if (ret < 0)
+                       err("process recieved pdu");
+
+               close(csock);
+       }
+
+       return TRUE;
+}
+
+
+static void do_standalone_mode(gboolean daemonize)
+{
+       int ret;
+       int lsock[MAXSOCK];
+       struct addrinfo *ai_head;
+       int n;
+
+
+
+       ret = usbip_names_init(USBIDS_FILE);
+       if (ret)
+               err("open usb.ids");
+
+       ret = usbip_stub_driver_open();
+       if (ret < 0)
+               g_error("driver open failed");
+
+       if (daemonize) {
+               if (daemon(0,0) < 0)
+                       g_error("daemonizing failed: %s", g_strerror(errno));
+
+               usbip_use_syslog = 1;
+       }
+
+       set_signal();
+
+       ai_head = my_getaddrinfo(NULL, PF_UNSPEC);
+       if (!ai_head)
+               return;
+
+       n = listen_all_addrinfo(ai_head, lsock);
+       if (n <= 0)
+               g_error("no socket to listen to");
+
+       for (int i = 0; i < n; i++) {
+               GIOChannel *gio;
+
+               gio = g_io_channel_unix_new(lsock[i]);
+               g_io_add_watch(gio, (G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL),
+                               process_comming_request, NULL);
+       }
+
+
+       info("usbipd start (%s)", version);
+
+
+       main_loop = g_main_loop_new(FALSE, FALSE);
+       g_main_loop_run(main_loop);
+
+       info("shutdown");
+
+       freeaddrinfo(ai_head);
+       usbip_names_free();
+       usbip_stub_driver_close();
+
+       return;
+}
+
+
+static const char help_message[] = "\
+Usage: usbipd [options]                                \n\
+       -D, --daemon                            \n\
+               Run as a daemon process.        \n\
+                                               \n\
+       -d, --debug                             \n\
+               Print debugging information.    \n\
+                                               \n\
+       -v, --version                           \n\
+               Show version.                   \n\
+                                               \n\
+       -h, --help                              \n\
+               Print this help.                \n";
+
+static void show_help(void)
+{
+       printf("%s", help_message);
+}
+
+static const struct option longopts[] = {
+       {"daemon",      no_argument,    NULL, 'D'},
+       {"debug",       no_argument,    NULL, 'd'},
+       {"version",     no_argument,    NULL, 'v'},
+       {"help",        no_argument,    NULL, 'h'},
+       {NULL,          0,              NULL,  0}
+};
+
+int main(int argc, char *argv[])
+{
+       gboolean daemonize = FALSE;
+
+       enum {
+               cmd_standalone_mode = 1,
+               cmd_help,
+               cmd_version
+       } cmd = cmd_standalone_mode;
+
+
+       usbip_use_stderr = 1;
+       usbip_use_syslog = 0;
+
+       if (geteuid() != 0)
+               g_warning("running non-root?");
+
+       for (;;) {
+               int c;
+               int index = 0;
+
+               c = getopt_long(argc, argv, "vhdD", longopts, &index);
+
+               if (c == -1)
+                       break;
+
+               switch (c) {
+                       case 'd':
+                               usbip_use_debug = 1;
+                               continue;
+                       case 'v':
+                               cmd = cmd_version;
+                               break;
+                       case 'h':
+                               cmd = cmd_help;
+                               break;
+                       case 'D':
+                               daemonize = TRUE;
+                               break;
+                       case '?':
+                               show_help();
+                               exit(EXIT_FAILURE);
+                       default:
+                               err("getopt");
+               }
+       }
+
+       switch (cmd) {
+               case cmd_standalone_mode:
+                       do_standalone_mode(daemonize);
+                       break;
+               case cmd_version:
+                       printf("%s\n", version);
+                       break;
+               case cmd_help:
+                       show_help();
+                       break;
+               default:
+                       info("unknown cmd");
+                       show_help();
+       }
+
+       return 0;
+}
diff --git a/drivers/staging/usbip/userspace/cmd/utils.c b/drivers/staging/usbip/userspace/cmd/utils.c
new file mode 100644 (file)
index 0000000..403c30f
--- /dev/null
@@ -0,0 +1,256 @@
+/*
+ * $Id$
+ *
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#include "utils.h"
+
+int read_integer(char *path)
+{
+       char buff[100];
+       int fd;
+       int ret = 0;
+
+       bzero(buff, sizeof(buff));
+
+       fd = open(path, O_RDONLY);
+       if (fd < 0)
+               return -1;
+
+       ret = read(fd, buff, sizeof(buff));
+       if (ret < 0) {
+               close(fd);
+               return -1;
+       }
+
+       sscanf(buff, "%d", &ret);
+
+       close(fd);
+
+       return ret;
+}
+
+int read_string(char *path, char *string, size_t len)
+{
+       int fd;
+       int ret = 0;
+       char  *p;
+
+       bzero(string, len);
+
+       fd = open(path, O_RDONLY);
+       if (fd < 0) {
+               string = NULL;
+               return -1;
+       }
+
+       ret = read(fd, string, len-1);
+       if (ret < 0) {
+               string = NULL;
+               close(fd);
+               return -1;
+       }
+
+       p = strchr(string, '\n');
+       *p = '\0';
+
+       close(fd);
+
+       return 0;
+}
+
+int write_integer(char *path, int value)
+{
+       int fd;
+       int ret;
+       char buff[100];
+
+       snprintf(buff, sizeof(buff), "%d", value);
+
+       fd = open(path, O_WRONLY);
+       if (fd < 0)
+               return -1;
+
+       ret = write(fd, buff, strlen(buff));
+       if (ret < 0) {
+               close(fd);
+               return -1;
+       }
+
+       close(fd);
+
+       return 0;
+}
+
+int read_bConfigurationValue(char *busid)
+{
+       char path[PATH_MAX];
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/bConfigurationValue", busid);
+
+       return read_integer(path);
+}
+
+int write_bConfigurationValue(char *busid, int config)
+{
+       char path[PATH_MAX];
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/bConfigurationValue", busid);
+
+       return write_integer(path, config);
+}
+
+int read_bNumInterfaces(char *busid)
+{
+       char path[PATH_MAX];
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/bNumInterfaces", busid);
+
+       return read_integer(path);
+}
+
+int read_bDeviceClass(char *busid)
+{
+       char path[PATH_MAX];
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/bDeviceClass", busid);
+
+       return read_integer(path);
+}
+
+int getdriver(char *busid, int conf, int infnum, char *driver, size_t len)
+{
+       char path[PATH_MAX];
+       char linkto[PATH_MAX];
+       int ret;
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s:%d.%d/driver", busid, conf, infnum);
+
+       /* readlink does not add NULL */
+       bzero(linkto, sizeof(linkto));
+       ret = readlink(path, linkto, sizeof(linkto)-1);
+       if (ret < 0) {
+               strncpy(driver, "none", len);
+               return -1;
+       } else {
+               strncpy(driver, basename(linkto), len);
+               return 0;
+       }
+}
+
+int getdevicename(char *busid, char *name, size_t len)
+{
+       char path[PATH_MAX];
+       char idProduct[10], idVendor[10];
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/idVendor", busid);
+       read_string(path, idVendor, sizeof(idVendor));
+
+       snprintf(path, PATH_MAX, "/sys/bus/usb/devices/%s/idProduct", busid);
+       read_string(path, idProduct, sizeof(idProduct));
+
+       if (!idVendor[0] || !idProduct[0])
+               return -1;
+
+       snprintf(name, len, "%s:%s", idVendor, idProduct);
+
+       return 0;
+}
+
+#define MAXLINE 100
+
+/* if this cannot read a whole line, return -1 */
+int readline(int sockfd, char *buff, int bufflen)
+{
+       int ret;
+       char c;
+       int index = 0;
+
+
+       while (index < bufflen) {
+               ret = read(sockfd, &c, sizeof(c));
+               if (ret < 0 && errno == EINTR)
+                       continue;
+               if (ret <= 0) {
+                       return -1;
+               }
+
+               buff[index] = c;
+
+               if ( index > 0 && buff[index-1] == '\r'  && buff[index] == '\n') {
+                       /* end of line */
+                       buff[index-1] = '\0';   /* get rid of delimitor */
+                       return index;
+               } else
+                       index++;
+       }
+
+       return -1;
+}
+
+#if 0
+int writeline(int sockfd, char *str, int strlen)
+{
+       int ret;
+       int index = 0;
+       int len;
+       char buff[MAXLINE];
+
+       if (strlen + 3 > MAXLINE)
+               return -1;
+
+       strncpy(buff, str, strlen);
+       buff[strlen+1] = '\r';
+       buff[strlen+2] = '\n';
+       buff[strlen+3] = '\0';
+
+       len = strlen + 3;
+
+       while (len > 0) {
+               ret = write(sockfd, buff+index, len);
+               if (ret <= 0) {
+                       return -1;
+               }
+
+               len -= ret;
+               index += ret;
+       }
+
+       return index;
+}
+#endif
+
+int writeline(int sockfd, char *str, int strlen)
+{
+       int ret;
+       int index = 0;
+       int len;
+       char buff[MAXLINE];
+
+       len = strnlen(str, strlen);
+
+       if (strlen + 2 > MAXLINE)
+               return -1;
+
+       memcpy(buff, str, strlen);
+       buff[strlen] = '\r';
+       buff[strlen+1] = '\n';          /* strlen+1 <= MAXLINE-1 */
+
+       len = strlen + 2;
+
+       while (len > 0) {
+               ret = write(sockfd, buff+index, len);
+               if (ret < 0 && errno == EINTR)
+                       continue;
+               if (ret <= 0) {
+                       return -1;
+               }
+
+               len -= ret;
+               index += ret;
+       }
+
+       return index;
+}
+
diff --git a/drivers/staging/usbip/userspace/cmd/utils.h b/drivers/staging/usbip/userspace/cmd/utils.h
new file mode 100644 (file)
index 0000000..6c29ae9
--- /dev/null
@@ -0,0 +1,38 @@
+
+#ifdef HAVE_CONFIG_H
+#include "../config.h"
+#endif
+
+#define _GNU_SOURCE
+#include <string.h>
+#include <sys/un.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include <sysfs/libsysfs.h>
+#include <glib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <time.h>
+#include <errno.h>
+
+
+
+/* Be sync to kernel header */
+#define BUS_ID_SIZE 20
+
+int read_string(char *path, char *, size_t len);
+int read_integer(char *path);
+int getdevicename(char *busid, char *name, size_t len);
+int getdriver(char *busid, int conf, int infnum, char *driver, size_t len);
+int read_bNumInterfaces(char *busid);
+int read_bConfigurationValue(char *busid);
+int write_integer(char *path, int value);
+int write_bConfigurationValue(char *busid, int config);
+int read_bDeviceClass(char *busid);
+int readline(int sockfd, char *str, int strlen);
+int writeline(int sockfd, char *buff, int bufflen);
diff --git a/drivers/staging/usbip/userspace/configure.ac b/drivers/staging/usbip/userspace/configure.ac
new file mode 100644 (file)
index 0000000..6de5bc7
--- /dev/null
@@ -0,0 +1,105 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_REVISION($Id$)
+AC_INIT(usbip, 0.1.8, usbip-devel@lists.sourceforge.net)
+AC_DEFINE(USBIP_VERSION, 0x000106, Numeric version number)
+
+AC_CONFIG_SRCDIR([config.h.in])
+AM_INIT_AUTOMAKE([foreign])
+
+# Silent build for automake >= 1.11
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+AM_CONFIG_HEADER(config.h)
+
+
+AC_SUBST([EXTRA_CFLAGS])
+
+AC_PROG_LIBTOOL
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS([fcntl.h netdb.h stdint.h stdlib.h string.h strings.h sys/socket.h syslog.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([bzero memset strchr strerror strstr strtoul])
+
+AC_CHECK_HEADER(sysfs/libsysfs.h,
+       [AC_CHECK_LIB(sysfs, sysfs_open_directory_list,
+               [LIBS="$LIBS -lsysfs"],
+               [AC_MSG_ERROR([Missing sysfs2 library!])])],
+       [AC_MSG_ERROR([Missing /usr/include/sysfs/libsysfs.h])])
+
+
+# get from stunnel
+dnl Check for libwrap library.
+AC_MSG_CHECKING([whether to use the libwrap (TCP wrappers) library])
+
+AC_ARG_WITH(tcp-wrappers,
+[  --with-tcp-wrappers     Use the libwrap (TCP wrappers) library ],
+[saved_LIBS="$LIBS"
+ if test "$withval" = "yes"; then
+      AC_MSG_RESULT([yes])
+      AC_MSG_CHECKING([for hosts_access in -lwrap])
+      LIBS="-lwrap $LIBS"
+      AC_TRY_LINK(
+       [int hosts_access(); int allow_severity, deny_severity;],
+       [hosts_access()],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_LIBWRAP, 1, use tcp wrapper) wrap_LIB="-lwrap"],
+       [AC_MSG_RESULT([not found]); exit 1])
+ else
+            AC_MSG_RESULT([no])
+ fi
+ LIBS="$saved_LIBS"],
+[AC_MSG_RESULT([(default)])
+ AC_MSG_CHECKING([for hosts_access in -lwrap])
+ saved_LIBS="$LIBS"
+ LIBS="-lwrap $saved_LIBS"
+ AC_TRY_LINK(
+       [int hosts_access(); int allow_severity, deny_severity;],
+       [hosts_access()],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_LIBWRAP, 1, use tcp wrapper)],
+       [AC_MSG_RESULT([no]); LIBS="$saved_LIBS"])
+])
+
+
+
+USBIDS_DIR='${datadir}/usbip'
+AC_ARG_WITH(usbids-dir, [  --with-usbids-dir=DIR   where usb.ids is found (default ${datadir}/usbip)], [USBIDS_DIR=$withval])
+AC_SUBST(USBIDS_DIR)
+
+dnl FIXME: when disabled, empty directry is created
+usbids=install
+AC_ARG_ENABLE(usbids-install,
+[  --enable-usbids-install     install usb.ids (default)],
+[case "${enableval}" in
+ yes) usbids=install ;;
+ no)  usbids=notinstall ;;
+ *)   AC_MSG_ERROR(bad value ${enableval} for --enable-usbids-install) ;;
+ esac])
+AM_CONDITIONAL(INSTALL_USBIDS, test x$usbids = xinstall)
+       
+
+
+GLIB2_REQUIRED=2.6.0
+PKG_CHECK_MODULES(PACKAGE, glib-2.0 >= $GLIB2_REQUIRED)
+AC_SUBST(PACKAGE_CFLAGS)
+AC_SUBST(PACKAGE_LIBS)
+
+AC_CONFIG_FILES([Makefile lib/Makefile cmd/Makefile])
+AC_OUTPUT
diff --git a/drivers/staging/usbip/userspace/lib/Makefile.am b/drivers/staging/usbip/userspace/lib/Makefile.am
new file mode 100644 (file)
index 0000000..10b919d
--- /dev/null
@@ -0,0 +1,10 @@
+# AM_CFLAGS = -Wall -std=gnu99
+lib_LTLIBRARIES = libusbip.la
+libusbip_la_SOURCES = names.c names.h stub_driver.c stub_driver.h usbip.h usbip_common.c usbip_common.h vhci_driver.c vhci_driver.h
+#libusbip_la_SOURCES = names.c names.h stub_driver.c usbip_common.c vhci_driver.c
+#INCLUDES = -I../include
+#AM_CPPFLAGS = -I../include -Wall -std=gnu99
+libusbip_la_LDFLAGS = -version-info 0:1:0
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+libusbip_la_CFLAGS = -Wall -W -Wstrict-prototypes -std=gnu99 $(EXTRA_CFLAGS) -DUSBIDS_FILE='"@USBIDS_DIR@/usb.ids"'
+
diff --git a/drivers/staging/usbip/userspace/lib/names.c b/drivers/staging/usbip/userspace/lib/names.c
new file mode 100644 (file)
index 0000000..b4de18b
--- /dev/null
@@ -0,0 +1,793 @@
+/*****************************************************************************/
+/*
+ *      names.c  --  USB name database manipulation routines
+ *
+ *      Copyright (C) 1999, 2000  Thomas Sailer (sailer@ife.ee.ethz.ch)
+ *
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
+ *
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
+ *
+ *      You should have received a copy of the GNU General Public License
+ *      along with this program; if not, write to the Free Software
+ *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ */
+
+/*
+ *     Copyright (C) 2005 Takahiro Hirofuchi
+ *             - names_deinit() is added.
+ */
+
+/*****************************************************************************/
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <ctype.h>
+
+
+#include "names.h"
+
+
+/* ---------------------------------------------------------------------- */
+
+struct vendor {
+       struct vendor *next;
+       u_int16_t vendorid;
+       char name[1];
+};
+
+struct product {
+       struct product *next;
+       u_int16_t vendorid, productid;
+       char name[1];
+};
+
+struct class {
+       struct class *next;
+       u_int8_t classid;
+       char name[1];
+};
+
+struct subclass {
+       struct subclass *next;
+       u_int8_t classid, subclassid;
+       char name[1];
+};
+
+struct protocol {
+       struct protocol *next;
+       u_int8_t classid, subclassid, protocolid;
+       char name[1];
+};
+
+struct audioterminal {
+       struct audioterminal *next;
+       u_int16_t termt;
+       char name[1];
+};
+
+struct genericstrtable {
+        struct genericstrtable *next;
+        unsigned int num;
+        char name[1];
+};
+
+/* ---------------------------------------------------------------------- */
+
+#define HASH1  0x10
+#define HASH2  0x02
+#define HASHSZ 16
+
+static unsigned int hashnum(unsigned int num)
+{
+       unsigned int mask1 = HASH1 << 27, mask2 = HASH2 << 27;
+
+       for (; mask1 >= HASH1; mask1 >>= 1, mask2 >>= 1)
+               if (num & mask1)
+                       num ^= mask2;
+       return num & (HASHSZ-1);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct vendor *vendors[HASHSZ] = { NULL, };
+static struct product *products[HASHSZ] = { NULL, };
+static struct class *classes[HASHSZ] = { NULL, };
+static struct subclass *subclasses[HASHSZ] = { NULL, };
+static struct protocol *protocols[HASHSZ] = { NULL, };
+static struct audioterminal *audioterminals[HASHSZ] = { NULL, };
+static struct genericstrtable *hiddescriptors[HASHSZ] = { NULL, };
+static struct genericstrtable *reports[HASHSZ] = { NULL, };
+static struct genericstrtable *huts[HASHSZ] = { NULL, };
+static struct genericstrtable *biass[HASHSZ] = { NULL, };
+static struct genericstrtable *physdess[HASHSZ] = { NULL, };
+static struct genericstrtable *hutus[HASHSZ] = { NULL, };
+static struct genericstrtable *langids[HASHSZ] = { NULL, };
+static struct genericstrtable *countrycodes[HASHSZ] = { NULL, };
+
+/* ---------------------------------------------------------------------- */
+
+static const char *names_genericstrtable(struct genericstrtable *t[HASHSZ], unsigned int index)
+{
+        struct genericstrtable *h;
+
+        for (h = t[hashnum(index)]; h; h = h->next)
+                if (h->num == index)
+                        return h->name;
+        return NULL;
+}
+
+const char *names_hid(u_int8_t hidd)
+{
+       return names_genericstrtable(hiddescriptors, hidd);
+}
+
+const char *names_reporttag(u_int8_t rt)
+{
+       return names_genericstrtable(reports, rt);
+}
+
+const char *names_huts(unsigned int data)
+{
+       return names_genericstrtable(huts, data);
+}
+
+const char *names_hutus(unsigned int data)
+{
+       return names_genericstrtable(hutus, data);
+}
+
+const char *names_langid(u_int16_t langid)
+{
+       return names_genericstrtable(langids, langid);
+}
+
+const char *names_physdes(u_int8_t ph)
+{
+       return names_genericstrtable(physdess, ph);
+}
+
+const char *names_bias(u_int8_t b)
+{
+       return names_genericstrtable(biass, b);
+}
+
+const char *names_countrycode(unsigned int countrycode)
+{
+       return names_genericstrtable(countrycodes, countrycode);
+}
+
+const char *names_vendor(u_int16_t vendorid)
+{
+       struct vendor *v;
+
+       v = vendors[hashnum(vendorid)];
+       for (; v; v = v->next)
+               if (v->vendorid == vendorid)
+                       return v->name;
+       return NULL;
+}
+
+const char *names_product(u_int16_t vendorid, u_int16_t productid)
+{
+       struct product *p;
+
+       p = products[hashnum((vendorid << 16) | productid)];
+       for (; p; p = p->next)
+               if (p->vendorid == vendorid && p->productid == productid)
+                       return p->name;
+       return NULL;
+}
+
+const char *names_class(u_int8_t classid)
+{
+       struct class *c;
+
+       c = classes[hashnum(classid)];
+       for (; c; c = c->next)
+               if (c->classid == classid)
+                       return c->name;
+       return NULL;
+}
+
+const char *names_subclass(u_int8_t classid, u_int8_t subclassid)
+{
+       struct subclass *s;
+
+       s = subclasses[hashnum((classid << 8) | subclassid)];
+       for (; s; s = s->next)
+               if (s->classid == classid && s->subclassid == subclassid)
+                       return s->name;
+       return NULL;
+}
+
+const char *names_protocol(u_int8_t classid, u_int8_t subclassid, u_int8_t protocolid)
+{
+       struct protocol *p;
+
+       p = protocols[hashnum((classid << 16) | (subclassid << 8) | protocolid)];
+       for (; p; p = p->next)
+               if (p->classid == classid && p->subclassid == subclassid && p->protocolid == protocolid)
+                       return p->name;
+       return NULL;
+}
+
+const char *names_audioterminal(u_int16_t termt)
+{
+       struct audioterminal *at;
+
+       at = audioterminals[hashnum(termt)];
+       for (; at; at = at->next)
+               if (at->termt == termt)
+                       return at->name;
+       return NULL;
+}
+
+/* ---------------------------------------------------------------------- */
+/* add a cleanup function by takahiro */
+
+struct pool {
+       struct pool *next;
+       void *mem;
+};
+
+static struct pool *pool_head = NULL;
+
+static void *my_malloc(size_t size)
+{
+       struct pool *p;
+
+       p = calloc(1, sizeof(struct pool));
+       if (!p) {
+               free(p);
+               return NULL;
+       }
+
+       p->mem = calloc(1, size);
+       if (!p->mem)
+               return NULL;
+
+       p->next = pool_head;
+       pool_head = p;
+
+       return p->mem;
+}
+
+void names_free(void)
+{
+       struct pool *pool;
+
+       if (!pool_head)
+               return;
+
+       for (pool = pool_head; pool != NULL; ) {
+               struct pool *tmp;
+
+               if (pool->mem)
+                       free(pool->mem);
+
+               tmp = pool;
+               pool = pool->next;
+               free(tmp);
+       }
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int new_vendor(const char *name, u_int16_t vendorid)
+{
+       struct vendor *v;
+       unsigned int h = hashnum(vendorid);
+
+       v = vendors[h];
+       for (; v; v = v->next)
+               if (v->vendorid == vendorid)
+                       return -1;
+       v = my_malloc(sizeof(struct vendor) + strlen(name));
+       if (!v)
+               return -1;
+       strcpy(v->name, name);
+       v->vendorid = vendorid;
+       v->next = vendors[h];
+       vendors[h] = v;
+       return 0;
+}
+
+static int new_product(const char *name, u_int16_t vendorid, u_int16_t productid)
+{
+       struct product *p;
+       unsigned int h = hashnum((vendorid << 16) | productid);
+
+       p = products[h];
+       for (; p; p = p->next)
+               if (p->vendorid == vendorid && p->productid == productid)
+                       return -1;
+       p = my_malloc(sizeof(struct product) + strlen(name));
+       if (!p)
+               return -1;
+       strcpy(p->name, name);
+       p->vendorid = vendorid;
+       p->productid = productid;
+       p->next = products[h];
+       products[h] = p;
+       return 0;
+}
+
+static int new_class(const char *name, u_int8_t classid)
+{
+       struct class *c;
+       unsigned int h = hashnum(classid);
+
+       c = classes[h];
+       for (; c; c = c->next)
+               if (c->classid == classid)
+                       return -1;
+       c = my_malloc(sizeof(struct class) + strlen(name));
+       if (!c)
+               return -1;
+       strcpy(c->name, name);
+       c->classid = classid;
+       c->next = classes[h];
+       classes[h] = c;
+       return 0;
+}
+
+static int new_subclass(const char *name, u_int8_t classid, u_int8_t subclassid)
+{
+       struct subclass *s;
+       unsigned int h = hashnum((classid << 8) | subclassid);
+
+       s = subclasses[h];
+       for (; s; s = s->next)
+               if (s->classid == classid && s->subclassid == subclassid)
+                       return -1;
+       s = my_malloc(sizeof(struct subclass) + strlen(name));
+       if (!s)
+               return -1;
+       strcpy(s->name, name);
+       s->classid = classid;
+       s->subclassid = subclassid;
+       s->next = subclasses[h];
+       subclasses[h] = s;
+       return 0;
+}
+
+static int new_protocol(const char *name, u_int8_t classid, u_int8_t subclassid, u_int8_t protocolid)
+{
+       struct protocol *p;
+       unsigned int h = hashnum((classid << 16) | (subclassid << 8) | protocolid);
+
+       p = protocols[h];
+       for (; p; p = p->next)
+               if (p->classid == classid && p->subclassid == subclassid && p->protocolid == protocolid)
+                       return -1;
+       p = my_malloc(sizeof(struct protocol) + strlen(name));
+       if (!p)
+               return -1;
+       strcpy(p->name, name);
+       p->classid = classid;
+       p->subclassid = subclassid;
+       p->protocolid = protocolid;
+       p->next = protocols[h];
+       protocols[h] = p;
+       return 0;
+}
+
+static int new_audioterminal(const char *name, u_int16_t termt)
+{
+       struct audioterminal *at;
+       unsigned int h = hashnum(termt);
+
+       at = audioterminals[h];
+       for (; at; at = at->next)
+               if (at->termt == termt)
+                       return -1;
+       at = my_malloc(sizeof(struct audioterminal) + strlen(name));
+       if (!at)
+               return -1;
+       strcpy(at->name, name);
+       at->termt = termt;
+       at->next = audioterminals[h];
+       audioterminals[h] = at;
+       return 0;
+}
+
+static int new_genericstrtable(struct genericstrtable *t[HASHSZ], const char *name, unsigned int index)
+{
+        struct genericstrtable *g;
+       unsigned int h = hashnum(index);
+
+        for (g = t[h]; g; g = g->next)
+                if (g->num == index)
+                        return -1;
+        g = my_malloc(sizeof(struct genericstrtable) + strlen(name));
+        if (!g)
+                return -1;
+        strcpy(g->name, name);
+        g->num = index;
+        g->next = t[h];
+        t[h] = g;
+        return 0;
+}
+
+static int new_hid(const char *name, u_int8_t hidd)
+{
+       return new_genericstrtable(hiddescriptors, name, hidd);
+}
+
+static int new_reporttag(const char *name, u_int8_t rt)
+{
+       return new_genericstrtable(reports, name, rt);
+}
+
+static int new_huts(const char *name, unsigned int data)
+{
+       return new_genericstrtable(huts, name, data);
+}
+
+static int new_hutus(const char *name, unsigned int data)
+{
+       return new_genericstrtable(hutus, name, data);
+}
+
+static int new_langid(const char *name, u_int16_t langid)
+{
+       return new_genericstrtable(langids, name, langid);
+}
+
+static int new_physdes(const char *name, u_int8_t ph)
+{
+       return new_genericstrtable(physdess, name, ph);
+}
+static int new_bias(const char *name, u_int8_t b)
+{
+       return new_genericstrtable(biass, name, b);
+}
+
+static int new_countrycode(const char *name, unsigned int countrycode)
+{
+       return new_genericstrtable(countrycodes, name, countrycode);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define DBG(x)
+
+static void parse(FILE *f)
+{
+       char buf[512], *cp;
+       unsigned int linectr = 0;
+       int lastvendor = -1, lastclass = -1, lastsubclass = -1, lasthut=-1, lastlang=-1;
+       unsigned int u;
+
+       while (fgets(buf, sizeof(buf), f)) {
+               linectr++;
+               /* remove line ends */
+               if ((cp = strchr(buf, 13)))
+                       *cp = 0;
+               if ((cp = strchr(buf, 10)))
+                       *cp = 0;
+               if (buf[0] == '#' || !buf[0])
+                       continue;
+               cp = buf;
+                if (buf[0] == 'P' && buf[1] == 'H' && buf[2] == 'Y' && buf[3] == 'S' && buf[4] == 'D' &&
+                    buf[5] == 'E' && buf[6] == 'S' && /*isspace(buf[7])*/ buf[7] == ' ') {
+                        cp = buf + 8;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid Physdes type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid Physdes type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_physdes(cp, u))
+                                fprintf(stderr, "Duplicate Physdes  type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u physdes type %02x %s\n", linectr, u, cp));
+                        continue;
+
+                }
+                if (buf[0] == 'P' && buf[1] == 'H' && buf[2] == 'Y' && /*isspace(buf[3])*/ buf[3] == ' ') {
+                        cp = buf + 4;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid PHY type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid PHY type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_physdes(cp, u))
+                                fprintf(stderr, "Duplicate PHY type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u PHY type %02x %s\n", linectr, u, cp));
+                        continue;
+
+                }
+                if (buf[0] == 'B' && buf[1] == 'I' && buf[2] == 'A' && buf[3] == 'S' && /*isspace(buf[4])*/ buf[4] == ' ') {
+                        cp = buf + 5;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid BIAS type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid BIAS type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_bias(cp, u))
+                                fprintf(stderr, "Duplicate BIAS  type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u BIAS type %02x %s\n", linectr, u, cp));
+                        continue;
+
+                }
+                if (buf[0] == 'L' && /*isspace(buf[1])*/ buf[1] == ' ') {
+                        cp =  buf+2;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid LANGID spec at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid LANGID spec at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_langid(cp, u))
+                                fprintf(stderr, "Duplicate LANGID spec at line %u language-id %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u LANGID %02x %s\n", linectr, u, cp));
+                        lasthut = lastclass = lastvendor = lastsubclass = -1;
+                        lastlang = u;
+                        continue;
+                }
+               if (buf[0] == 'C' && /*isspace(buf[1])*/ buf[1] == ' ') {
+                       /* class spec */
+                       cp = buf+2;
+                       while (isspace(*cp))
+                               cp++;
+                       if (!isxdigit(*cp)) {
+                               fprintf(stderr, "Invalid class spec at line %u\n", linectr);
+                               continue;
+                       }
+                       u = strtoul(cp, &cp, 16);
+                       while (isspace(*cp))
+                               cp++;
+                       if (!*cp) {
+                               fprintf(stderr, "Invalid class spec at line %u\n", linectr);
+                               continue;
+                       }
+                       if (new_class(cp, u))
+                               fprintf(stderr, "Duplicate class spec at line %u class %04x %s\n", linectr, u, cp);
+                       DBG(printf("line %5u class %02x %s\n", linectr, u, cp));
+                       lasthut = lastlang = lastvendor = lastsubclass = -1;
+                       lastclass = u;
+                       continue;
+               }
+               if (buf[0] == 'A' && buf[1] == 'T' && isspace(buf[2])) {
+                       /* audio terminal type spec */
+                       cp = buf+3;
+                       while (isspace(*cp))
+                               cp++;
+                       if (!isxdigit(*cp)) {
+                               fprintf(stderr, "Invalid audio terminal type at line %u\n", linectr);
+                               continue;
+                       }
+                       u = strtoul(cp, &cp, 16);
+                       while (isspace(*cp))
+                               cp++;
+                       if (!*cp) {
+                               fprintf(stderr, "Invalid audio terminal type at line %u\n", linectr);
+                               continue;
+                       }
+                       if (new_audioterminal(cp, u))
+                               fprintf(stderr, "Duplicate audio terminal type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                       DBG(printf("line %5u audio terminal type %02x %s\n", linectr, u, cp));
+                       continue;
+               }
+               if (buf[0] == 'H' && buf[1] == 'C' && buf[2] == 'C' && isspace(buf[3])) {
+                       /* HID Descriptor bCountryCode */
+                        cp =  buf+3;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid HID country code at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 10);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid HID country code at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_countrycode(cp, u))
+                                fprintf(stderr, "Duplicate HID country code at line %u country %02u %s\n", linectr, u, cp);
+                        DBG(printf("line %5u keyboard country code %02u %s\n", linectr, u, cp));
+                        continue;
+               }
+               if (isxdigit(*cp)) {
+                       /* vendor */
+                       u = strtoul(cp, &cp, 16);
+                       while (isspace(*cp))
+                               cp++;
+                       if (!*cp) {
+                               fprintf(stderr, "Invalid vendor spec at line %u\n", linectr);
+                               continue;
+                       }
+                       if (new_vendor(cp, u))
+                               fprintf(stderr, "Duplicate vendor spec at line %u vendor %04x %s\n", linectr, u, cp);
+                       DBG(printf("line %5u vendor %04x %s\n", linectr, u, cp));
+                       lastvendor = u;
+                       lasthut = lastlang = lastclass = lastsubclass = -1;
+                       continue;
+               }
+               if (buf[0] == '\t' && isxdigit(buf[1])) {
+                       /* product or subclass spec */
+                       u = strtoul(buf+1, &cp, 16);
+                       while (isspace(*cp))
+                               cp++;
+                       if (!*cp) {
+                               fprintf(stderr, "Invalid product/subclass spec at line %u\n", linectr);
+                               continue;
+                       }
+                       if (lastvendor != -1) {
+                               if (new_product(cp, lastvendor, u))
+                                       fprintf(stderr, "Duplicate product spec at line %u product %04x:%04x %s\n", linectr, lastvendor, u, cp);
+                               DBG(printf("line %5u product %04x:%04x %s\n", linectr, lastvendor, u, cp));
+                               continue;
+                       }
+                       if (lastclass != -1) {
+                               if (new_subclass(cp, lastclass, u))
+                                       fprintf(stderr, "Duplicate subclass spec at line %u class %02x:%02x %s\n", linectr, lastclass, u, cp);
+                               DBG(printf("line %5u subclass %02x:%02x %s\n", linectr, lastclass, u, cp));
+                               lastsubclass = u;
+                               continue;
+                       }
+                       if (lasthut != -1) {
+                               if (new_hutus(cp, (lasthut << 16)+u))
+                                       fprintf(stderr, "Duplicate HUT Usage Spec at line %u\n", linectr);
+                               continue;
+                       }
+                       if (lastlang != -1) {
+                                if (new_langid(cp, lastlang+(u<<10)))
+                                        fprintf(stderr, "Duplicate LANGID Usage Spec at line %u\n", linectr);
+                                continue;
+                        }
+                       fprintf(stderr, "Product/Subclass spec without prior Vendor/Class spec at line %u\n", linectr);
+                       continue;
+               }
+               if (buf[0] == '\t' && buf[1] == '\t' && isxdigit(buf[2])) {
+                       /* protocol spec */
+                       u = strtoul(buf+2, &cp, 16);
+                       while (isspace(*cp))
+                               cp++;
+                       if (!*cp) {
+                               fprintf(stderr, "Invalid protocol spec at line %u\n", linectr);
+                               continue;
+                       }
+                       if (lastclass != -1 && lastsubclass != -1) {
+                               if (new_protocol(cp, lastclass, lastsubclass, u))
+                                       fprintf(stderr, "Duplicate protocol spec at line %u class %02x:%02x:%02x %s\n", linectr, lastclass, lastsubclass, u, cp);
+                               DBG(printf("line %5u protocol %02x:%02x:%02x %s\n", linectr, lastclass, lastsubclass, u, cp));
+                               continue;
+                       }
+                       fprintf(stderr, "Protocol spec without prior Class and Subclass spec at line %u\n", linectr);
+                       continue;
+               }
+               if (buf[0] == 'H' && buf[1] == 'I' && buf[2] == 'D' && /*isspace(buf[3])*/ buf[3] == ' ') {
+                       cp = buf + 4;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid HID type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid HID type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_hid(cp, u))
+                                fprintf(stderr, "Duplicate HID type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u HID type %02x %s\n", linectr, u, cp));
+                        continue;
+
+               }
+                if (buf[0] == 'H' && buf[1] == 'U' && buf[2] == 'T' && /*isspace(buf[3])*/ buf[3] == ' ') {
+                        cp = buf + 4;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid HUT type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid HUT type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_huts(cp, u))
+                                fprintf(stderr, "Duplicate HUT type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                       lastlang = lastclass = lastvendor = lastsubclass = -1;
+                       lasthut = u;
+                        DBG(printf("line %5u HUT type %02x %s\n", linectr, u, cp));
+                        continue;
+
+                }
+                if (buf[0] == 'R' && buf[1] == ' ') {
+                        cp = buf + 2;
+                        while (isspace(*cp))
+                                cp++;
+                        if (!isxdigit(*cp)) {
+                                fprintf(stderr, "Invalid Report type at line %u\n", linectr);
+                                continue;
+                        }
+                        u = strtoul(cp, &cp, 16);
+                        while (isspace(*cp))
+                                cp++;
+                        if (!*cp) {
+                                fprintf(stderr, "Invalid Report type at line %u\n", linectr);
+                                continue;
+                        }
+                        if (new_reporttag(cp, u))
+                                fprintf(stderr, "Duplicate Report type spec at line %u terminal type %04x %s\n", linectr, u, cp);
+                        DBG(printf("line %5u Report type %02x %s\n", linectr, u, cp));
+                        continue;
+
+                }
+                if (buf[0] == 'V' && buf[1] == 'T') {
+                       /* add here */
+                       continue;
+               }
+               fprintf(stderr, "Unknown line at line %u\n", linectr);
+       }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int names_init(char *n)
+{
+       FILE *f;
+
+       if (!(f = fopen(n, "r"))) {
+               return errno;
+       }
+       parse(f);
+       fclose(f);
+       return 0;
+}
diff --git a/drivers/staging/usbip/userspace/lib/names.h b/drivers/staging/usbip/userspace/lib/names.h
new file mode 100644 (file)
index 0000000..3a269fe
--- /dev/null
@@ -0,0 +1,57 @@
+/*****************************************************************************/
+
+/*
+ *      names.h  --  USB name database manipulation routines
+ *
+ *      Copyright (C) 1999, 2000  Thomas Sailer (sailer@ife.ee.ethz.ch)
+ *
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
+ *
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
+ *
+ *      You should have received a copy of the GNU General Public License
+ *      along with this program; if not, write to the Free Software
+ *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ */
+
+/*
+ *     Copyright (C) 2005 Takahiro Hirofuchi
+ *            - names_free() is added.
+ */
+
+/*****************************************************************************/
+
+#ifndef _NAMES_H
+#define _NAMES_H
+
+#include <sys/types.h>
+
+/* ---------------------------------------------------------------------- */
+
+extern const char *names_vendor(u_int16_t vendorid);
+extern const char *names_product(u_int16_t vendorid, u_int16_t productid);
+extern const char *names_class(u_int8_t classid);
+extern const char *names_subclass(u_int8_t classid, u_int8_t subclassid);
+extern const char *names_protocol(u_int8_t classid, u_int8_t subclassid, u_int8_t protocolid);
+extern const char *names_audioterminal(u_int16_t termt);
+extern const char *names_hid(u_int8_t hidd);
+extern const char *names_reporttag(u_int8_t rt);
+extern const char *names_huts(unsigned int data);
+extern const char *names_hutus(unsigned int data);
+extern const char *names_langid(u_int16_t langid);
+extern const char *names_physdes(u_int8_t ph);
+extern const char *names_bias(u_int8_t b);
+extern const char *names_countrycode(unsigned int countrycode);
+extern int  names_init(char *n);
+extern void names_free(void);
+
+/* ---------------------------------------------------------------------- */
+#endif /* _NAMES_H */
diff --git a/drivers/staging/usbip/userspace/lib/stub_driver.c b/drivers/staging/usbip/userspace/lib/stub_driver.c
new file mode 100644 (file)
index 0000000..bfe6748
--- /dev/null
@@ -0,0 +1,390 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "usbip.h"
+
+static const char *usbip_stub_driver_name = "usbip";
+
+
+struct usbip_stub_driver *stub_driver;
+
+static struct sysfs_driver *open_sysfs_stub_driver(void)
+{
+       int ret;
+
+       char sysfs_mntpath[SYSFS_PATH_MAX];
+       char stub_driver_path[SYSFS_PATH_MAX];
+       struct sysfs_driver *stub_driver;
+
+
+       ret = sysfs_get_mnt_path(sysfs_mntpath, SYSFS_PATH_MAX);
+       if (ret < 0) {
+               err("sysfs must be mounted");
+               return NULL;
+       }
+
+       snprintf(stub_driver_path, SYSFS_PATH_MAX, "%s/%s/usb/%s/%s",
+                       sysfs_mntpath, SYSFS_BUS_NAME, SYSFS_DRIVERS_NAME,
+                       usbip_stub_driver_name);
+
+       stub_driver = sysfs_open_driver_path(stub_driver_path);
+       if (!stub_driver) {
+               err("usbip_common_mod.ko and usbip.ko must be loaded");
+               return NULL;
+       }
+
+       return stub_driver;
+}
+
+
+#define SYSFS_OPEN_RETRIES 100
+
+/* only the first interface value is true! */
+static int32_t read_attr_usbip_status(struct usb_device *udev)
+{
+       char attrpath[SYSFS_PATH_MAX];
+       struct sysfs_attribute *attr;
+       int value = 0;
+       int  ret;
+       struct stat s;
+       int retries = SYSFS_OPEN_RETRIES;
+
+       /* This access is racy!
+        *
+        * Just after detach, our driver removes the sysfs
+        * files and recreates them.
+        *
+        * We may try and fail to open the usbip_status of
+        * an exported device in the (short) window where
+        * it has been removed and not yet recreated.
+        *
+        * This is a bug in the interface. Nothing we can do
+        * except work around it here by polling for the sysfs
+        * usbip_status to reappear.
+        */
+
+       snprintf(attrpath, SYSFS_PATH_MAX, "%s/%s:%d.%d/usbip_status",
+                       udev->path, udev->busid,
+                       udev->bConfigurationValue,
+                       0);
+
+       while (retries > 0) {
+               if (stat(attrpath, &s) == 0)
+                       break;
+
+               if (errno != ENOENT) {
+                       err("error stat'ing %s", attrpath);
+                       return -1;
+               }
+
+               usleep(10000); /* 10ms */
+               retries--;
+       }
+
+       if (retries == 0)
+               err("usbip_status not ready after %d retries", 
+                       SYSFS_OPEN_RETRIES);
+       else if (retries < SYSFS_OPEN_RETRIES)
+               info("warning: usbip_status ready after %d retries",
+                        SYSFS_OPEN_RETRIES - retries);
+
+       attr = sysfs_open_attribute(attrpath);
+       if (!attr) {
+               err("open %s", attrpath);
+               return -1;
+       }
+
+       ret = sysfs_read_attribute(attr);
+       if (ret) {
+               err("read %s", attrpath);
+               sysfs_close_attribute(attr);
+               return -1;
+       }
+
+       value = atoi(attr->value);
+
+       sysfs_close_attribute(attr);
+
+       return value;
+}
+
+
+static void usbip_exported_device_delete(void *dev)
+{
+       struct usbip_exported_device *edev =
+               (struct usbip_exported_device *) dev;
+
+       sysfs_close_device(edev->sudev);
+       free(dev);
+}
+
+
+static struct usbip_exported_device *usbip_exported_device_new(char *sdevpath)
+{
+       struct usbip_exported_device *edev = NULL;
+
+       edev = (struct usbip_exported_device *) calloc(1, sizeof(*edev));
+       if (!edev) {
+               err("alloc device");
+               return NULL;
+       }
+
+       edev->sudev = sysfs_open_device_path(sdevpath);
+       if (!edev->sudev) {
+               err("open %s", sdevpath);
+               goto err;
+       }
+
+       read_usb_device(edev->sudev, &edev->udev);
+
+       edev->status = read_attr_usbip_status(&edev->udev);
+       if (edev->status < 0)
+               goto err;
+
+       /* reallocate buffer to include usb interface data */
+       size_t size = sizeof(*edev) + edev->udev.bNumInterfaces * sizeof(struct usb_interface);
+       edev = (struct usbip_exported_device *) realloc(edev, size);
+       if (!edev) {
+               err("alloc device");
+               goto err;
+       }
+
+       for (int i=0; i < edev->udev.bNumInterfaces; i++)
+               read_usb_interface(&edev->udev, i, &edev->uinf[i]);
+
+       return edev;
+
+err:
+       if (edev && edev->sudev)
+               sysfs_close_device(edev->sudev);
+       if (edev)
+               free(edev);
+       return NULL;
+}
+
+
+static int check_new(struct dlist *dlist, struct sysfs_device *target)
+{
+       struct sysfs_device *dev;
+
+       dlist_for_each_data(dlist, dev, struct sysfs_device) {
+               if (!strncmp(dev->bus_id, target->bus_id, SYSFS_BUS_ID_SIZE))
+                       /* found. not new */
+                       return 0;
+       }
+
+       return 1;
+}
+
+static void delete_nothing(void *dev)
+{
+       /* do not delete anything. but, its container will be deleted. */
+}
+
+static int refresh_exported_devices(void)
+{
+       struct sysfs_device     *suinf;  /* sysfs_device of usb_interface */
+       struct dlist            *suinf_list;
+
+       struct sysfs_device     *sudev;  /* sysfs_device of usb_device */
+       struct dlist            *sudev_list;
+
+
+       sudev_list = dlist_new_with_delete(sizeof(struct sysfs_device), delete_nothing);
+
+       suinf_list = sysfs_get_driver_devices(stub_driver->sysfs_driver);
+       if (!suinf_list) {
+               printf("Bind usbip.ko to a usb device to be exportable!\n");
+               goto bye;
+       }
+
+       /* collect unique USB devices (not interfaces) */
+       dlist_for_each_data(suinf_list, suinf, struct sysfs_device) {
+
+               /* get usb device of this usb interface */
+               sudev = sysfs_get_device_parent(suinf);
+               if (!sudev) {
+                       err("get parent dev of %s", suinf->name);
+                       continue;
+               }
+
+               if (check_new(sudev_list, sudev)) {
+                       dlist_unshift(sudev_list, sudev);
+               }
+       }
+
+       dlist_for_each_data(sudev_list, sudev, struct sysfs_device) {
+               struct usbip_exported_device *edev;
+
+               edev = usbip_exported_device_new(sudev->path);
+               if (!edev) {
+                       err("usbip_exported_device new");
+                       continue;
+               }
+
+               dlist_unshift(stub_driver->edev_list, (void *) edev);
+               stub_driver->ndevs++;
+       }
+
+
+       dlist_destroy(sudev_list);
+
+bye:
+
+       return 0;
+}
+
+int usbip_stub_refresh_device_list(void)
+{
+       int ret;
+
+       if (stub_driver->edev_list)
+               dlist_destroy(stub_driver->edev_list);
+
+       stub_driver->ndevs = 0;
+
+       stub_driver->edev_list = dlist_new_with_delete(sizeof(struct usbip_exported_device),
+                       usbip_exported_device_delete);
+       if (!stub_driver->edev_list) {
+               err("alloc dlist");
+               return -1;
+       }
+
+       ret = refresh_exported_devices();
+       if (ret < 0)
+               return ret;
+
+       return 0;
+}
+
+int usbip_stub_driver_open(void)
+{
+       int ret;
+
+
+       stub_driver = (struct usbip_stub_driver *) calloc(1, sizeof(*stub_driver));
+       if (!stub_driver) {
+               err("alloc stub_driver");
+               return -1;
+       }
+
+       stub_driver->ndevs = 0;
+
+       stub_driver->edev_list = dlist_new_with_delete(sizeof(struct usbip_exported_device),
+                       usbip_exported_device_delete);
+       if (!stub_driver->edev_list) {
+               err("alloc dlist");
+               goto err;
+       }
+
+       stub_driver->sysfs_driver = open_sysfs_stub_driver();
+       if (!stub_driver->sysfs_driver)
+               goto err;
+
+       ret = refresh_exported_devices();
+       if (ret < 0)
+               goto err;
+
+       return 0;
+
+
+err:
+       if (stub_driver->sysfs_driver)
+               sysfs_close_driver(stub_driver->sysfs_driver);
+       if (stub_driver->edev_list)
+               dlist_destroy(stub_driver->edev_list);
+       free(stub_driver);
+
+       stub_driver = NULL;
+       return -1;
+}
+
+
+void usbip_stub_driver_close(void)
+{
+       if (!stub_driver)
+               return;
+
+       if (stub_driver->edev_list)
+               dlist_destroy(stub_driver->edev_list);
+       if (stub_driver->sysfs_driver)
+               sysfs_close_driver(stub_driver->sysfs_driver);
+       free(stub_driver);
+
+       stub_driver = NULL;
+}
+
+int usbip_stub_export_device(struct usbip_exported_device *edev, int sockfd)
+{
+       char attrpath[SYSFS_PATH_MAX];
+       struct sysfs_attribute *attr;
+       char sockfd_buff[30];
+       int ret;
+
+
+       if (edev->status != SDEV_ST_AVAILABLE) {
+               info("device not available, %s", edev->udev.busid);
+               switch( edev->status ) {
+                       case SDEV_ST_ERROR:
+                               info("     status SDEV_ST_ERROR");
+                               break;
+                       case SDEV_ST_USED:
+                               info("     status SDEV_ST_USED");
+                               break;
+                       default:
+                               info("     status unknown: 0x%x", edev->status);
+               }
+               return -1;
+       }
+
+       /* only the first interface is true */
+       snprintf(attrpath, sizeof(attrpath), "%s/%s:%d.%d/%s",
+                       edev->udev.path,
+                       edev->udev.busid,
+                       edev->udev.bConfigurationValue, 0,
+                       "usbip_sockfd");
+
+       attr = sysfs_open_attribute(attrpath);
+       if (!attr) {
+               err("open %s", attrpath);
+               return -1;
+       }
+
+       snprintf(sockfd_buff, sizeof(sockfd_buff), "%d\n", sockfd);
+
+       dbg("write: %s", sockfd_buff);
+
+       ret = sysfs_write_attribute(attr, sockfd_buff, strlen(sockfd_buff));
+       if (ret < 0) {
+               err("write sockfd %s to %s", sockfd_buff, attrpath);
+               goto err_write_sockfd;
+       }
+
+       info("connect %s", edev->udev.busid);
+
+err_write_sockfd:
+       sysfs_close_attribute(attr);
+
+       return ret;
+}
+
+struct usbip_exported_device *usbip_stub_get_device(int num)
+{
+       struct usbip_exported_device *edev;
+       struct dlist            *dlist = stub_driver->edev_list;
+       int count = 0;
+
+       dlist_for_each_data(dlist, edev, struct usbip_exported_device) {
+               if (num == count)
+                       return edev;
+               else
+                       count++ ;
+       }
+
+       return NULL;
+}
diff --git a/drivers/staging/usbip/userspace/lib/stub_driver.h b/drivers/staging/usbip/userspace/lib/stub_driver.h
new file mode 100644 (file)
index 0000000..3107d18
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifndef _USBIP_STUB_DRIVER_H
+#define _USBIP_STUB_DRIVER_H
+
+#include "usbip.h"
+
+
+struct usbip_stub_driver {
+       int ndevs;
+       struct sysfs_driver *sysfs_driver;
+
+       struct dlist *edev_list;        /* list of exported device */
+};
+
+struct usbip_exported_device {
+       struct sysfs_device *sudev;
+
+       int32_t status;
+       struct usb_device    udev;
+       struct usb_interface uinf[];
+};
+
+
+extern struct usbip_stub_driver *stub_driver;
+
+int usbip_stub_driver_open(void);
+void usbip_stub_driver_close(void);
+
+int usbip_stub_refresh_device_list(void);
+int usbip_stub_export_device(struct usbip_exported_device *edev, int sockfd);
+
+struct usbip_exported_device *usbip_stub_get_device(int num);
+#endif
diff --git a/drivers/staging/usbip/userspace/lib/usbip.h b/drivers/staging/usbip/userspace/lib/usbip.h
new file mode 100644 (file)
index 0000000..7cb8e6f
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifndef _USBIP_H
+#define _USBIP_H
+
+#ifdef HAVE_CONFIG_H
+#include "../config.h"
+#endif
+
+#include "usbip_common.h"
+#include "stub_driver.h"
+#include "vhci_driver.h"
+#ifdef DMALLOC
+#include <dmalloc.h>
+#endif
+
+#endif
diff --git a/drivers/staging/usbip/userspace/lib/usbip_common.c b/drivers/staging/usbip/userspace/lib/usbip_common.c
new file mode 100644 (file)
index 0000000..a128a92
--- /dev/null
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#include "usbip.h"
+#include "names.h"
+
+int usbip_use_syslog = 0;
+int usbip_use_stderr = 0;
+int usbip_use_debug  = 0;
+
+struct speed_string {
+       int num;
+       char *speed;
+       char *desc;
+};
+
+static const struct speed_string speed_strings[] = {
+       { USB_SPEED_UNKNOWN, "unknown", "Unknown Speed"},
+       { USB_SPEED_LOW,  "1.5", "Low Speed(1.5Mbps)"  },
+       { USB_SPEED_FULL, "12",  "Full Speed(12Mbps)" },
+       { USB_SPEED_HIGH, "480", "High Speed(480Mbps)" },
+       { 0, NULL, NULL }
+};
+
+struct portst_string {
+       int num;
+       char *desc;
+};
+
+static struct portst_string portst_strings[] = {
+       { SDEV_ST_AVAILABLE,    "Device Available" },
+       { SDEV_ST_USED,         "Device in Use" },
+       { SDEV_ST_ERROR,        "Device Error"},
+       { VDEV_ST_NULL,         "Port Available"},
+       { VDEV_ST_NOTASSIGNED,  "Port Initializing"},
+       { VDEV_ST_USED,         "Port in Use"},
+       { VDEV_ST_ERROR,        "Port Error"},
+       { 0, NULL}
+};
+
+const char *usbip_status_string(int32_t status)
+{
+       for (int i=0; portst_strings[i].desc != NULL; i++)
+               if (portst_strings[i].num == status)
+                       return portst_strings[i].desc;
+
+       return "Unknown Status";
+}
+
+const char *usbip_speed_string(int num)
+{
+       for (int i=0; speed_strings[i].speed != NULL; i++)
+               if (speed_strings[i].num == num)
+                       return speed_strings[i].desc;
+
+       return "Unknown Speed";
+}
+
+
+#define DBG_UDEV_INTEGER(name)\
+       dbg("%-20s = %x", to_string(name), (int) udev->name)
+
+#define DBG_UINF_INTEGER(name)\
+       dbg("%-20s = %x", to_string(name), (int) uinf->name)
+
+void dump_usb_interface(struct usb_interface *uinf)
+{
+       char buff[100];
+       usbip_names_get_class(buff, sizeof(buff),
+                       uinf->bInterfaceClass,
+                       uinf->bInterfaceSubClass,
+                       uinf->bInterfaceProtocol);
+       dbg("%-20s = %s", "Interface(C/SC/P)", buff);
+}
+
+void dump_usb_device(struct usb_device *udev)
+{
+       char buff[100];
+
+
+       dbg("%-20s = %s", "path",  udev->path);
+       dbg("%-20s = %s", "busid", udev->busid);
+
+       usbip_names_get_class(buff, sizeof(buff),
+                       udev->bDeviceClass,
+                       udev->bDeviceSubClass,
+                       udev->bDeviceProtocol);
+       dbg("%-20s = %s", "Device(C/SC/P)", buff);
+
+       DBG_UDEV_INTEGER(bcdDevice);
+
+       usbip_names_get_product(buff, sizeof(buff),
+                       udev->idVendor,
+                       udev->idProduct);
+       dbg("%-20s = %s", "Vendor/Product", buff);
+
+       DBG_UDEV_INTEGER(bNumConfigurations);
+       DBG_UDEV_INTEGER(bNumInterfaces);
+
+       dbg("%-20s = %s", "speed",
+                       usbip_speed_string(udev->speed));
+
+       DBG_UDEV_INTEGER(busnum);
+       DBG_UDEV_INTEGER(devnum);
+}
+
+
+int read_attr_value(struct sysfs_device *dev, const char *name, const char *format)
+{
+       char attrpath[SYSFS_PATH_MAX];
+       struct sysfs_attribute *attr;
+       int num = 0;
+       int ret;
+
+       snprintf(attrpath, sizeof(attrpath), "%s/%s", dev->path, name);
+
+       attr = sysfs_open_attribute(attrpath);
+       if (!attr) {
+               err("open attr %s", attrpath);
+               return 0;
+       }
+
+       ret = sysfs_read_attribute(attr);
+       if (ret < 0) {
+               err("read attr");
+               goto err;
+       }
+
+       ret = sscanf(attr->value, format, &num);
+       if (ret < 1) {
+               err("sscanf");
+               goto err;
+       }
+
+err:
+       sysfs_close_attribute(attr);
+
+       return num;
+}
+
+
+int read_attr_speed(struct sysfs_device *dev)
+{
+       char attrpath[SYSFS_PATH_MAX];
+       struct sysfs_attribute *attr;
+       char speed[100];
+       int ret;
+
+       snprintf(attrpath, sizeof(attrpath), "%s/%s", dev->path, "speed");
+
+       attr = sysfs_open_attribute(attrpath);
+       if (!attr) {
+               err("open attr");
+               return 0;
+       }
+
+       ret = sysfs_read_attribute(attr);
+       if (ret < 0) {
+               err("read attr");
+               goto err;
+       }
+
+       ret = sscanf(attr->value, "%s\n", speed);
+       if (ret < 1) {
+               err("sscanf");
+               goto err;
+       }
+err:
+       sysfs_close_attribute(attr);
+
+       for (int i=0; speed_strings[i].speed != NULL; i++) {
+               if (!strcmp(speed, speed_strings[i].speed))
+                       return speed_strings[i].num;
+       }
+
+       return USB_SPEED_UNKNOWN;
+}
+
+#define READ_ATTR(object, type, dev, name, format)\
+       do { (object)->name = (type) read_attr_value(dev, to_string(name), format); } while (0)
+
+
+int read_usb_device(struct sysfs_device *sdev, struct usb_device *udev)
+{
+       uint32_t busnum, devnum;
+
+       READ_ATTR(udev, uint8_t,  sdev, bDeviceClass,           "%02x\n");
+       READ_ATTR(udev, uint8_t,  sdev, bDeviceSubClass,        "%02x\n");
+       READ_ATTR(udev, uint8_t,  sdev, bDeviceProtocol,        "%02x\n");
+
+       READ_ATTR(udev, uint16_t, sdev, idVendor,               "%04x\n");
+       READ_ATTR(udev, uint16_t, sdev, idProduct,              "%04x\n");
+       READ_ATTR(udev, uint16_t, sdev, bcdDevice,              "%04x\n");
+
+       READ_ATTR(udev, uint8_t,  sdev, bConfigurationValue,    "%02x\n");
+       READ_ATTR(udev, uint8_t,  sdev, bNumConfigurations,     "%02x\n");
+       READ_ATTR(udev, uint8_t,  sdev, bNumInterfaces,         "%02x\n");
+
+       READ_ATTR(udev, uint8_t,  sdev, devnum,                 "%d\n");
+       udev->speed = read_attr_speed(sdev);
+
+       strncpy(udev->path,  sdev->path,  SYSFS_PATH_MAX);
+       strncpy(udev->busid, sdev->name, SYSFS_BUS_ID_SIZE);
+
+       sscanf(sdev->name, "%u-%u", &busnum, &devnum);
+       udev->busnum = busnum;
+
+       return 0;
+}
+
+int read_usb_interface(struct usb_device *udev, int i, struct usb_interface *uinf)
+{
+       char busid[SYSFS_BUS_ID_SIZE];
+       struct sysfs_device *sif;
+
+       sprintf(busid, "%s:%d.%d", udev->busid, udev->bConfigurationValue, i);
+
+       sif = sysfs_open_device("usb", busid);
+       if (!sif) {
+               err("open sif of %s", busid);
+               return -1;
+       }
+
+       READ_ATTR(uinf, uint8_t,  sif, bInterfaceClass,         "%02x\n");
+       READ_ATTR(uinf, uint8_t,  sif, bInterfaceSubClass,      "%02x\n");
+       READ_ATTR(uinf, uint8_t,  sif, bInterfaceProtocol,      "%02x\n");
+
+       sysfs_close_device(sif);
+
+       return 0;
+}
+
+int usbip_names_init(char *f)
+{
+       return names_init(f);
+}
+
+void usbip_names_free()
+{
+       names_free();
+}
+
+void usbip_names_get_product(char *buff, size_t size, uint16_t vendor, uint16_t product)
+{
+       const char *prod, *vend;
+
+       prod = names_product(vendor, product);
+       if (!prod)
+               prod = "unknown product";
+
+
+       vend = names_vendor(vendor);
+       if (!vend)
+               vend = "unknown vendor";
+
+       snprintf(buff, size, "%s : %s (%04x:%04x)", vend, prod, vendor, product);
+}
+
+void usbip_names_get_class(char *buff, size_t size, uint8_t class, uint8_t subclass, uint8_t protocol)
+{
+       const char *c, *s, *p;
+
+       if (class == 0 && subclass == 0 && protocol == 0) {
+               snprintf(buff, size, "(Defined at Interface level) (%02x/%02x/%02x)", class, subclass, protocol);
+               return;
+       }
+
+       p = names_protocol(class, subclass, protocol);
+       if (!p)
+               p = "unknown protocol";
+
+       s = names_subclass(class, subclass);
+       if (!s)
+               s = "unknown subclass";
+
+       c = names_class(class);
+       if (!c)
+               c = "unknown class";
+
+       snprintf(buff, size, "%s / %s / %s (%02x/%02x/%02x)", c, s, p, class, subclass, protocol);
+}
diff --git a/drivers/staging/usbip/userspace/lib/usbip_common.h b/drivers/staging/usbip/userspace/lib/usbip_common.h
new file mode 100644 (file)
index 0000000..c254b54
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifndef _USBIP_COMMON_H
+#define _USBIP_COMMON_H
+
+#include <unistd.h>
+#include <stdint.h>
+#include <syslog.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <strings.h>
+
+#include <sysfs/libsysfs.h>
+#include <netdb.h>
+#include <sys/socket.h>
+
+#ifndef USBIDS_FILE
+#define USBIDS_FILE "/usr/share/hwdata/usb.ids"
+#endif
+
+#ifndef VHCI_STATE_PATH
+#define VHCI_STATE_PATH "/var/run/vhci_hcd"
+#endif
+
+//#include <linux/usb_ch9.h>
+enum usb_device_speed {
+       USB_SPEED_UNKNOWN = 0,                  /* enumerating */
+       USB_SPEED_LOW, USB_SPEED_FULL,          /* usb 1.1 */
+       USB_SPEED_HIGH,                         /* usb 2.0 */
+       USB_SPEED_VARIABLE                      /* wireless (usb 2.5) */
+};
+
+/* FIXME: how to sync with drivers/usbip_common.h ? */
+enum usbip_device_status{
+       /* sdev is available. */
+       SDEV_ST_AVAILABLE = 0x01,
+       /* sdev is now used. */
+       SDEV_ST_USED,
+       /* sdev is unusable because of a fatal error. */
+       SDEV_ST_ERROR,
+
+       /* vdev does not connect a remote device. */
+       VDEV_ST_NULL,
+       /* vdev is used, but the USB address is not assigned yet */
+       VDEV_ST_NOTASSIGNED,
+       VDEV_ST_USED,
+       VDEV_ST_ERROR
+};
+
+extern int usbip_use_syslog;
+extern int usbip_use_stderr;
+extern int usbip_use_debug ;
+
+#define err(fmt, args...)      do { \
+       if (usbip_use_syslog) { \
+               syslog(LOG_ERR, "usbip err: %13s:%4d (%-12s) " fmt "\n", \
+                       __FILE__, __LINE__, __FUNCTION__,  ##args); \
+       } \
+       if (usbip_use_stderr) { \
+               fprintf(stderr, "usbip err: %13s:%4d (%-12s) " fmt "\n", \
+                       __FILE__, __LINE__, __FUNCTION__,  ##args); \
+       } \
+} while (0)
+
+#define notice(fmt, args...)   do { \
+       if (usbip_use_syslog) { \
+               syslog(LOG_DEBUG, "usbip: " fmt, ##args); \
+       } \
+       if (usbip_use_stderr) { \
+               fprintf(stderr, "usbip: " fmt "\n",  ##args); \
+       } \
+} while (0)
+
+#define info(fmt, args...)     do { \
+       if (usbip_use_syslog) { \
+               syslog(LOG_DEBUG, fmt, ##args); \
+       } \
+       if (usbip_use_stderr) { \
+               fprintf(stderr, fmt "\n",  ##args); \
+       } \
+} while (0)
+
+#define dbg(fmt, args...)      do { \
+       if (usbip_use_debug) { \
+               if (usbip_use_syslog) { \
+                       syslog(LOG_DEBUG, "usbip dbg: %13s:%4d (%-12s) " fmt, \
+                               __FILE__, __LINE__, __FUNCTION__,  ##args); \
+               } \
+               if (usbip_use_stderr) { \
+                       fprintf(stderr, "usbip dbg: %13s:%4d (%-12s) " fmt "\n", \
+                               __FILE__, __LINE__, __FUNCTION__,  ##args); \
+               } \
+       } \
+} while (0)
+
+
+#define BUG()  do { err("sorry, it's a bug"); abort(); } while (0)
+
+
+struct usb_interface {
+       uint8_t bInterfaceClass;
+       uint8_t bInterfaceSubClass;
+       uint8_t bInterfaceProtocol;
+       uint8_t padding;        /* alignment */
+} __attribute__((packed));
+
+
+
+struct usb_device {
+       char path[SYSFS_PATH_MAX];
+       char busid[SYSFS_BUS_ID_SIZE];
+
+       uint32_t busnum;
+       uint32_t devnum;
+       uint32_t speed;
+
+       uint16_t idVendor;
+       uint16_t idProduct;
+       uint16_t bcdDevice;
+
+       uint8_t bDeviceClass;
+       uint8_t bDeviceSubClass;
+       uint8_t bDeviceProtocol;
+       uint8_t bConfigurationValue;
+       uint8_t bNumConfigurations;
+       uint8_t bNumInterfaces;
+} __attribute__((packed));
+
+#define to_string(s)   #s
+
+void dump_usb_interface(struct usb_interface *);
+void dump_usb_device(struct usb_device *);
+int read_usb_device(struct sysfs_device *sdev, struct usb_device *udev);
+int read_attr_value(struct sysfs_device *dev, const char *name, const char *format);
+int read_usb_interface(struct usb_device *udev, int i, struct usb_interface *uinf);
+
+const char *usbip_speed_string(int num);
+const char *usbip_status_string(int32_t status);
+
+int usbip_names_init(char *);
+void usbip_names_free(void);
+void usbip_names_get_product(char *buff, size_t size, uint16_t vendor, uint16_t product);
+void usbip_names_get_class(char *buff, size_t size, uint8_t class, uint8_t subclass, uint8_t protocol);
+
+#endif
diff --git a/drivers/staging/usbip/userspace/lib/vhci_driver.c b/drivers/staging/usbip/userspace/lib/vhci_driver.c
new file mode 100644 (file)
index 0000000..5e54810
--- /dev/null
@@ -0,0 +1,506 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+
+#include "usbip.h"
+
+
+static const char vhci_driver_name[] = "vhci_hcd";
+
+struct usbip_vhci_driver *vhci_driver;
+
+static struct usbip_imported_device *imported_device_init(struct usbip_imported_device *idev, char *busid)
+{
+       struct sysfs_device *sudev;
+
+       sudev = sysfs_open_device("usb", busid);
+       if (!sudev) {
+               err("sysfs_open_device %s", busid);
+               goto err;
+       }
+       read_usb_device(sudev, &idev->udev);
+       sysfs_close_device(sudev);
+
+       /* add class devices of this imported device */
+       struct class_device *cdev;
+       dlist_for_each_data(vhci_driver->cdev_list, cdev, struct class_device) {
+               if (!strncmp(cdev->devpath, idev->udev.path, strlen(idev->udev.path))) {
+                       struct class_device *new_cdev;
+
+                       /* alloc and copy because dlist is linked from only one list */
+                       new_cdev = calloc(1, sizeof(*new_cdev));
+                       if (!new_cdev)
+                               goto err;
+
+                       memcpy(new_cdev, cdev, sizeof(*new_cdev));
+                       dlist_unshift(idev->cdev_list, (void*) new_cdev);
+               }
+       }
+
+       return idev;
+
+err:
+       return NULL;
+}
+
+
+
+static int parse_status(char *value)
+{
+       int ret = 0;
+       char *c;
+
+
+       for (int i = 0; i < vhci_driver->nports; i++)
+               bzero(&vhci_driver->idev[i], sizeof(struct usbip_imported_device));
+
+
+       /* skip a header line */
+       c = strchr(value, '\n') + 1;
+
+       while (*c != '\0') {
+               int port, status, speed, devid;
+               unsigned long socket;
+               char lbusid[SYSFS_BUS_ID_SIZE];
+
+               ret = sscanf(c, "%d %d %d %x %lx %s\n",
+                               &port, &status, &speed,
+                               &devid, &socket, lbusid);
+
+               if (ret < 5) {
+                       err("scanf %d", ret);
+                       BUG();
+               }
+
+               dbg("port %d status %d speed %d devid %x",
+                               port, status, speed, devid);
+               dbg("socket %lx lbusid %s", socket, lbusid);
+
+
+               /* if a device is connected, look at it */
+               {
+                       struct usbip_imported_device *idev = &vhci_driver->idev[port];
+
+                       idev->port      = port;
+                       idev->status    = status;
+
+                       idev->devid     = devid;
+
+                       idev->busnum    = (devid >> 16);
+                       idev->devnum    = (devid & 0x0000ffff);
+
+                       idev->cdev_list = dlist_new(sizeof(struct class_device));
+                       if (!idev->cdev_list) {
+                               err("init new device");
+                               return -1;
+                       }
+
+                       if (idev->status != VDEV_ST_NULL && idev->status != VDEV_ST_NOTASSIGNED) {
+                               idev = imported_device_init(idev, lbusid);
+                               if (!idev) {
+                                       err("init new device");
+                                       return -1;
+                               }
+                       }
+               }
+
+
+               /* go to the next line */
+               c = strchr(c, '\n') + 1;
+       }
+
+       dbg("exit");
+
+       return 0;
+}
+
+
+static int check_usbip_device(struct sysfs_class_device *cdev)
+{
+       char clspath[SYSFS_PATH_MAX];   /* /sys/class/video4linux/video0/device     */
+       char devpath[SYSFS_PATH_MAX];   /* /sys/devices/platform/vhci_hcd/usb6/6-1:1.1  */
+
+       int ret;
+
+       snprintf(clspath, sizeof(clspath), "%s/device", cdev->path);
+
+       ret = sysfs_get_link(clspath, devpath, SYSFS_PATH_MAX);
+       if (!ret) {
+               if (!strncmp(devpath, vhci_driver->hc_device->path,
+                                       strlen(vhci_driver->hc_device->path))) {
+                       /* found usbip device */
+                       struct class_device *cdev;
+
+                       cdev = calloc(1, sizeof(*cdev));
+                       if (!cdev) {
+                               err("calloc cdev");
+                               return -1;
+                       }
+                       dlist_unshift(vhci_driver->cdev_list, (void*) cdev);
+                       strncpy(cdev->clspath, clspath, sizeof(cdev->clspath));
+                       strncpy(cdev->devpath, devpath, sizeof(cdev->clspath));
+                       dbg("  found %s %s", clspath, devpath);
+               }
+       }
+
+       return 0;
+}
+
+
+static int search_class_for_usbip_device(char *cname)
+{
+       struct sysfs_class *class;
+       struct dlist *cdev_list;
+       struct sysfs_class_device *cdev;
+       int ret = 0;
+
+       class = sysfs_open_class(cname);
+       if (!class) {
+               err("open class");
+               return -1;
+       }
+
+       dbg("class %s", class->name);
+
+       cdev_list = sysfs_get_class_devices(class);
+       if (!cdev_list)
+               /* nothing */
+               goto out;
+
+       dlist_for_each_data(cdev_list, cdev, struct sysfs_class_device) {
+               dbg("   cdev %s", cdev->name);
+               ret = check_usbip_device(cdev);
+               if (ret < 0)
+                       goto out;
+       }
+
+out:
+       sysfs_close_class(class);
+
+       return ret;
+}
+
+
+static int refresh_class_device_list(void)
+{
+       int ret;
+       struct dlist *cname_list;
+       char *cname;
+
+       /* search under /sys/class */
+       cname_list = sysfs_open_directory_list("/sys/class");
+       if (!cname_list) {
+               err("open class directory");
+               return -1;
+       }
+
+       dlist_for_each_data(cname_list, cname, char) {
+               ret = search_class_for_usbip_device(cname);
+               if (ret < 0) {
+                       sysfs_close_list(cname_list);
+                       return -1;
+               }
+       }
+
+       sysfs_close_list(cname_list);
+
+       /* seach under /sys/block */
+       ret = search_class_for_usbip_device(SYSFS_BLOCK_NAME);
+       if (ret < 0)
+               return -1;
+
+       return 0;
+}
+
+
+static int refresh_imported_device_list(void)
+{
+       struct sysfs_attribute *attr_status;
+
+
+       attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
+       if (!attr_status) {
+               err("get attr %s of %s", "status", vhci_driver->hc_device->name);
+               return -1;
+       }
+
+       dbg("name %s, path %s, len %d, method %d\n", attr_status->name,
+                       attr_status->path, attr_status->len, attr_status->method);
+
+       dbg("%s", attr_status->value);
+
+       return parse_status(attr_status->value);
+}
+
+static int get_nports(void)
+{
+       int nports = 0;
+       struct sysfs_attribute *attr_status;
+
+       attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
+       if (!attr_status) {
+               err("get attr %s of %s", "status", vhci_driver->hc_device->name);
+               return -1;
+       }
+
+       dbg("name %s, path %s, len %d, method %d\n", attr_status->name,
+                       attr_status->path, attr_status->len, attr_status->method);
+
+       dbg("%s", attr_status->value);
+
+       {
+               char *c;
+
+               /* skip a header line */
+               c = strchr(attr_status->value, '\n') + 1;
+
+               while (*c != '\0') {
+                       /* go to the next line */
+                       c = strchr(c, '\n') + 1;
+                       nports += 1;
+               }
+       }
+
+       return nports;
+}
+
+static int get_hc_busid(char *sysfs_mntpath, char *hc_busid)
+{
+        struct sysfs_driver *sdriver;
+        char sdriver_path[SYSFS_PATH_MAX];
+
+       struct sysfs_device *hc_dev;
+       struct dlist *hc_devs;
+
+       int found = 0;
+
+        snprintf(sdriver_path, SYSFS_PATH_MAX, "%s/%s/platform/%s/%s",
+                                sysfs_mntpath, SYSFS_BUS_NAME, SYSFS_DRIVERS_NAME,
+                                vhci_driver_name);
+
+        sdriver = sysfs_open_driver_path(sdriver_path);
+        if (!sdriver) {
+               info("%s is not found", sdriver_path);
+                info("load usbip_common_mod.ko and vhci-hcd.ko !");
+                return -1;
+        }
+
+       hc_devs = sysfs_get_driver_devices(sdriver);
+       if (!hc_devs) {
+               err("get hc list");
+               goto err;
+       }
+
+       /* assume only one vhci_hcd */
+       dlist_for_each_data(hc_devs, hc_dev, struct sysfs_device) {
+               strncpy(hc_busid, hc_dev->bus_id, SYSFS_BUS_ID_SIZE);
+               found = 1;
+       }
+
+err:
+       sysfs_close_driver(sdriver);
+
+       if (found)
+               return 0;
+
+       err("not found usbip hc");
+       return -1;
+}
+
+
+/* ---------------------------------------------------------------------- */
+
+int usbip_vhci_driver_open(void)
+{
+       int ret;
+       char hc_busid[SYSFS_BUS_ID_SIZE];
+
+       vhci_driver = (struct usbip_vhci_driver *) calloc(1, sizeof(*vhci_driver));
+       if (!vhci_driver) {
+               err("alloc vhci_driver");
+               return -1;
+       }
+
+       ret = sysfs_get_mnt_path(vhci_driver->sysfs_mntpath, SYSFS_PATH_MAX);
+       if (ret < 0) {
+               err("sysfs must be mounted");
+               goto err;
+       }
+
+       ret = get_hc_busid(vhci_driver->sysfs_mntpath, hc_busid);
+       if (ret < 0)
+               goto err;
+
+       /* will be freed in usbip_driver_close() */
+       vhci_driver->hc_device = sysfs_open_device("platform", hc_busid);
+       if (!vhci_driver->hc_device) {
+               err("get sysfs vhci_driver");
+               goto err;
+       }
+
+       vhci_driver->nports = get_nports();
+
+       info("%d ports available\n", vhci_driver->nports);
+
+       vhci_driver->cdev_list = dlist_new(sizeof(struct class_device));
+       if (!vhci_driver->cdev_list)
+               goto err;
+
+       if (refresh_class_device_list())
+               goto err;
+
+       if (refresh_imported_device_list())
+               goto err;
+
+
+       return 0;
+
+
+err:
+       if (vhci_driver->cdev_list)
+               dlist_destroy(vhci_driver->cdev_list);
+       if (vhci_driver->hc_device)
+               sysfs_close_device(vhci_driver->hc_device);
+       if (vhci_driver)
+               free(vhci_driver);
+
+       vhci_driver = NULL;
+       return -1;
+}
+
+
+void usbip_vhci_driver_close()
+{
+       if (!vhci_driver)
+               return;
+
+       if (vhci_driver->cdev_list)
+               dlist_destroy(vhci_driver->cdev_list);
+
+       for (int i = 0; i < vhci_driver->nports; i++) {
+               if (vhci_driver->idev[i].cdev_list)
+                       dlist_destroy(vhci_driver->idev[i].cdev_list);
+       }
+
+       if (vhci_driver->hc_device)
+               sysfs_close_device(vhci_driver->hc_device);
+       free(vhci_driver);
+
+       vhci_driver = NULL;
+}
+
+
+int usbip_vhci_refresh_device_list(void)
+{
+       if (vhci_driver->cdev_list)
+               dlist_destroy(vhci_driver->cdev_list);
+
+
+       for (int i = 0; i < vhci_driver->nports; i++) {
+               if (vhci_driver->idev[i].cdev_list)
+                       dlist_destroy(vhci_driver->idev[i].cdev_list);
+       }
+
+       vhci_driver->cdev_list = dlist_new(sizeof(struct class_device));
+       if (!vhci_driver->cdev_list)
+               goto err;
+
+       if (refresh_class_device_list())
+               goto err;
+
+       if (refresh_imported_device_list())
+               goto err;
+
+       return 0;
+err:
+       if (vhci_driver->cdev_list)
+               dlist_destroy(vhci_driver->cdev_list);
+
+       for (int i = 0; i < vhci_driver->nports; i++) {
+               if (vhci_driver->idev[i].cdev_list)
+                       dlist_destroy(vhci_driver->idev[i].cdev_list);
+       }
+
+       err("refresh device list");
+       return -1;
+}
+
+
+int usbip_vhci_get_free_port(void)
+{
+       for (int i = 0; i < vhci_driver->nports; i++) {
+               if (vhci_driver->idev[i].status == VDEV_ST_NULL)
+                       return i;
+       }
+
+       return -1;
+}
+
+int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,
+               uint32_t speed) {
+       struct sysfs_attribute *attr_attach;
+       char buff[200]; /* what size should be ? */
+       int ret;
+
+       attr_attach = sysfs_get_device_attr(vhci_driver->hc_device, "attach");
+       if (!attr_attach) {
+               err("get attach");
+               return -1;
+       }
+
+       snprintf(buff, sizeof(buff), "%u %u %u %u",
+                       port, sockfd, devid, speed);
+       dbg("writing: %s", buff);
+
+       ret = sysfs_write_attribute(attr_attach, buff, strlen(buff));
+       if (ret < 0) {
+               err("write to attach failed");
+               return -1;
+       }
+
+       info("port %d attached", port);
+
+       return 0;
+}
+
+static unsigned long get_devid(uint8_t busnum, uint8_t devnum)
+{
+       return (busnum << 16) | devnum;
+}
+
+/* will be removed */
+int usbip_vhci_attach_device(uint8_t port, int sockfd, uint8_t busnum,
+               uint8_t devnum, uint32_t speed)
+{
+       int devid = get_devid(busnum, devnum);
+
+       return usbip_vhci_attach_device2(port, sockfd, devid, speed);
+}
+
+int usbip_vhci_detach_device(uint8_t port)
+{
+       struct sysfs_attribute  *attr_detach;
+       char buff[200]; /* what size should be ? */
+       int ret;
+
+       attr_detach = sysfs_get_device_attr(vhci_driver->hc_device, "detach");
+       if (!attr_detach) {
+               err("get detach");
+               return -1;
+       }
+
+       snprintf(buff, sizeof(buff), "%u", port);
+       dbg("writing to detach");
+       dbg("writing: %s", buff);
+
+       ret = sysfs_write_attribute(attr_detach, buff, strlen(buff));
+       if (ret < 0) {
+               err("write to detach failed");
+               return -1;
+       }
+
+       info("port %d detached", port);
+
+       return 0;
+}
diff --git a/drivers/staging/usbip/userspace/lib/vhci_driver.h b/drivers/staging/usbip/userspace/lib/vhci_driver.h
new file mode 100644 (file)
index 0000000..cad8ad7
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2005-2007 Takahiro Hirofuchi
+ */
+
+#ifndef _VHCI_DRIVER_H
+#define _VHCI_DRIVER_H
+
+#include "usbip.h"
+
+
+
+#define MAXNPORT 128
+
+struct class_device {
+       char clspath[SYSFS_PATH_MAX];
+       char devpath[SYSFS_PATH_MAX];
+};
+
+struct usbip_imported_device {
+       uint8_t port;
+       uint32_t status;
+
+       uint32_t devid;
+
+       uint8_t busnum;
+       uint8_t devnum;
+
+
+       struct dlist *cdev_list;        /* list of class device */
+       struct usb_device udev;
+};
+
+struct usbip_vhci_driver {
+       char sysfs_mntpath[SYSFS_PATH_MAX];
+       struct sysfs_device *hc_device; /* /sys/devices/platform/vhci_hcd */
+
+       struct dlist *cdev_list;        /* list of class device */
+
+       int nports;
+       struct usbip_imported_device idev[MAXNPORT];
+};
+
+
+extern struct usbip_vhci_driver *vhci_driver;
+
+int usbip_vhci_driver_open(void);
+void usbip_vhci_driver_close(void);
+
+int  usbip_vhci_refresh_device_list(void);
+
+
+int usbip_vhci_get_free_port(void);
+int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,
+               uint32_t speed);
+
+/* will be removed */
+int usbip_vhci_attach_device(uint8_t port, int sockfd, uint8_t busnum,
+               uint8_t devnum, uint32_t speed);
+
+int usbip_vhci_detach_device(uint8_t port);
+#endif
diff --git a/drivers/staging/usbip/userspace/usb.ids b/drivers/staging/usbip/userspace/usb.ids
new file mode 100644 (file)
index 0000000..b1f8744
--- /dev/null
@@ -0,0 +1,13209 @@
+#
+#      List of USB ID's
+#
+#      Maintained by Stephen J. Gowdy <gowdy@slac.stanford.edu>
+#      If you have any new entries, send them to the maintainer.
+#      Send entries as patches (diff -u old new).
+#      The latest version can be obtained from
+#              http://www.linux-usb.org/usb.ids
+#
+# $Id: usb.ids,v 1.346 2008/04/23 13:51:46 gowdy Exp $
+#
+
+# Vendors, devices and interfaces. Please keep sorted.
+
+# Syntax:
+# vendor  vendor_name
+#      device  device_name                             <-- single tab
+#              interface  interface_name               <-- two tabs
+
+0001  Fry's Electronics
+0002  Ingram
+0003  Club Mac
+0004  Nebraska Furniture Mart
+0145  Unknown
+       0112  Card Reader
+0204  Chipsbank Microelectronics Co., Ltd
+       6025  CBM2080 Flash drive controller
+       6026  CBM1180 Flash drive controller
+02ad  HUMAX Co., Ltd.
+       138c  PVR Mass Storage
+0386  LTS
+       0001  PSX for USB Converter
+03e8  EndPoints, Inc.
+       0004  SE401 WebCam
+       0008  101 Ethernet [klsi]
+       0015  USB ATAPI Enclosure
+       2123  SiPix StyleCam Deluxe
+       8004  Aox 99001
+03e9  Thesys Microelectronics
+03ea  Data Broadcasting Corp.
+03eb  Atmel Corp.
+       2002  Mass Storage Device
+       2015  at90usbkey sample firmware (HID keyboard)
+       2018  at90usbkey sample firmware (CDC ACM)
+       2019  stk525 sample firmware (microphone)
+       201c  at90usbkey sample firmware (HID mouse)
+       201d  at90usbkey sample firmware (HID generic)
+       2022  at90usbkey sample firmware (composite device)
+       2103  JTAG ICE mkII
+       2104  AVR ISP mkII
+       2107  AVR Dragon
+       2ffb  at90usb AVR DFU bootloader
+       2ffd  at89c5130/c5131 DFU bootloader
+       2fff  at89c5132/c51snd1c DFU bootloader
+       3301  at43301 4-port Hub
+       3312  4-port Hub
+       5601  at76c510 Prism-II 802.11b Access Point
+       5603  Cisco 7920 WiFi IP Phone
+       6124  at91sam SAMBA bootloader
+       7603  at76c503a D-Link DWL-120 802.11b Adapter
+       7604  FastVNET
+       7605  at76c503a 802.11b Adapter
+       7606  at76c505 802.11b Adapter
+       7611  at76c510 rfmd2948 802.11b Access Point
+       7613  WL-1130 USB
+       7614  AT76c505a Wireless Adapter
+03ec  Iwatsu America, Inc.
+03ed  Mitel Corp.
+03ee  Mitsumi
+       0000  CD-R/RW Drive
+       2501  eHome Infrared Receiver
+       2502  eHome Infrared Receiver
+       5609  Japanese Keyboard
+       641f  WIF-0402C Bluetooth Adapter
+       6438  Bluetooth Device
+       6440  WML-C52APR Bluetooth Adapter
+       6901  SmartDisk FDD
+       6902  Floppy Disk Drive
+       7500  CD-R/RW
+       ffff  Dongle with BlueCore in DFU mode
+03f0  Hewlett-Packard
+       0004  DeskJet 895c
+       0011  OfficeJet G55
+       0012  DeskJet 1125C Printer Port
+       0024  KU-0316 Keyboard
+       0101  ScanJet 4100c
+       0102  PhotoSmart S20
+       0104  DeskJet 880c/970c
+       0105  ScanJet 4200c
+       0107  CD-Writer Plus
+       010c  Multimedia Keyboard Hub
+       0111  G55xi Printer/Scanner/Copier
+       0117  LaserJet 3200
+       011c  hn210w 802.11b Adapter
+       011d  Integrated Bluetooth Module
+       0121  HP49g+ Calculator
+       0122  HID Internet Keyboard
+       0201  ScanJet 6200c
+       0202  PhotoSmart S20
+       0204  DeskJet 815c
+       0205  ScanJet 3300c
+       0207  CD-Writer Plus 8200e
+       020c  Multimedia Keyboard
+       0211  OfficeJet G85
+       0212  DeskJet 1220C
+       0217  LaserJet 2200
+       0218  APOLLO P2500/2600
+       2624  Pole Display (HP522 2 x 20 Line Display)
+       0304  DeskJet 810c/812c
+       0305  ScanJet 4300c
+       0307  CD-Writer+ CD-4e
+       0311  OfficeJet G85xi
+       0312  Color Inkjet CP1700
+       0314  designjet 30/130 series
+       0317  LaserJet 1200
+       0401  ScanJet 5200c
+       0404  DeskJet 830c/832c
+       0405  ScanJet 3400cse
+       0411  OfficeJet G95
+       0412  Printing Support
+       0417  LaserJet 1200 series
+       0504  DeskJet 885c
+       0505  ScanJet 2100c
+       0507  DVD+RW
+       050c  5219 Wireless Keyboard
+       0511  OfficeJet K60
+       0512  DeckJet 450
+       0517  LaserJet 1000
+       051d  integrated module with Bluetooth wireless technology.
+       0601  ScanJet 6300c
+       0604  DeskJet 840c
+       0605  ScanJet 2200c
+       0611  OfficeJet K60xi
+       0612  business inkjet 3000
+       0624  Bluetooth Dongle
+       0701  ScanJet 5300c/5370c
+       0704  DeskJet 825c
+       0705  ScanJet 4400c
+       0711  OfficeJet K80
+       0712  DeskJet 1180c
+       0714  Printing Support
+       0801  ScanJet 7400c
+       0804  DeskJet 816c
+       0805  HP4470C
+       0811  OfficeJet K80xi
+       0817  LaserJet 3300
+       0901  ScanJet 2300c
+       0904  DeskJet 845c
+       0912  Printing Support
+       0917  LaserJet 3330
+       0924  Modular Smartcard Keyboard
+       0a01  ScanJet 2400c
+       0a17  color LaserJet 3700
+       0b01  Scanjet 82x0C
+       0b17  Laserjet 2300d
+       0c17  LaserJet 1010
+       0c24  Bluetooth Dongle
+       0d12  Officejet 9100 series
+       0d17  LaserJet 1012
+       0e17  LaserJet 1015
+       0f11  OfficeJet V40
+       0f12  Printing Support
+       0f17  LaserJet 1150
+       1001  Photo Scanner 1000
+       1002  photosmart 140 series
+       1004  DeskJet 970c/970cse
+       1005  ScanJet 5400c
+       1011  OfficeJet V40xi
+       1016  Jornada 548 / iPAQ HW6515 Pocket PC
+       1017  LaserJet 1300
+       1024  Smart Card Keyboard
+       1102  photosmart 240 series
+       1104  DeskJet 959c
+       1105  ScanJet 5470c
+       1111  officejet v60
+       1116  Jornada 568 Pocket PC
+       1117  LaserJet 1300n
+       1151  PSC-750xi Printer/Scanner/Copier
+       1202  Photosmart 320 Series
+       1204  DeskJet 930c
+       1205  ScanJet 4500C/5550C
+       1211  officejet v60xi
+       1217  LaserJet 2300L
+       1302  Photosmart 370 Series
+       1305  ScanJet 4570c
+       1311  OfficeJet V30
+       1312  Deskjet 460
+       1317  LaserJet 1005
+       1405  Scanjet 3670
+       1411  PSC 750
+       1424  f2105 Monitor Hub
+       1502  Photosmart 420 Series
+       1504  DeskJet 920c
+       1511  PSC 750xi
+       1512  Printing Support
+       1517  color LaserJet 3500
+       1524  Smart Card Keyboard - KR
+       1602  Photosmart 330 Series
+       1604  DeskJet 940c
+       1605  ScanJet 5530C Photosmart
+       1611  psc 780
+       1617  LaserJet 3015
+       161d  Wireless Rechargeable Optical Mouse (HID)
+       1624  Smart Card Keyboard - JP
+       1702  Photosmart 380 Series
+       1704  deskjet 948C
+       1705  ScanJet 5590
+       1711  psc 780xi
+       1712  Printing Support
+       1717  LaserJet 3020
+       171d  Wireless (Bluetooth + WLAN) Interface [Integrated Module]
+       1801  Inkjet P-2000U
+       1802  Photosmart 470 Series
+       1804  deskjet 916C
+       1805  ScanJet 7650
+       1811  PSC 720
+       1817  LaserJet 3030
+       181d  integrated module with Bluetooth 2.0 wireless technology.
+       1902  Photosmart A430 series
+       1904  DeskJet 3820
+       1911  OfficeJet V45
+       1917  LaserJet 3380
+       1a02  Photosmart A510 series
+       1a11  officejet 5100 series
+       1a17  color LaserJet 4650
+       1b02  Photosmart A610 series
+       1b04  deskjet 3810
+       1b05  ScanJet 4850C/4890C
+       1c02  Photosmart A710 series
+       1c17  Color LaserJet 2550l
+       1d02  Photosmart A310 series
+       1d17  LaserJet 1320
+       1e02  Photosmart A320 Printer series
+       1e11  PSC-950
+       1e17  LaserJet 1160 series
+       1f02  Photosmart A440 Printer series
+       1f11  PSC 920
+       1f12  Officejet Pro K5300
+       1f17  color LaserJet 5550
+       2001  Floppy
+       2002  Hub
+       2004  DeskJet 640c
+       2005  ScanJet 3570c
+       2012  Officejet Pro K5400
+       2102  photosmart 7345
+       2104  DeskJet 630c
+       2112  Officejet Pro L7500
+       2202  photosmart 7600 series
+       2205  ScanJet 3500c
+       2212  Officejet Pro L7600
+       2217  color LaserJet 9500 MFP
+       2302  photosmart 7600 series
+       2304  DeskJet 656c
+       2305  ScanJet 3970c
+       2311  officejet d series
+       2312  Officejet Pro L7700
+       2317  LaserJet 4350
+       2402  photosmart 7700 series
+       2405  ScanJet 4070 Photosmart
+       2417  LaserJet 4250
+       2424  LP1965 19" Monitor Hub
+       2502  photosmart 7700 series
+       2505  ScanJet 3770
+       2512  Officejet Pro L7300
+       2517  LaserJet 2410
+       2524  LP3065 30" Monitor Hub
+       2602  Photosmart A520 series
+       2605  ScanJet 3800c
+       2611  officejet 7100 series
+       2617  Color LaserJet 2820 Series
+       2702  Photosmart A620 series
+       2704  Deskjet 915
+       2717  Color LaserJet 2830
+       2811  PSC-2100
+       2817  Color LaserJet 2840
+       2902  Photosmart A820 series
+       2911  PSC 2200
+       2917  LaserJet 2420
+       2a11  PSC 2150 series
+       2a17  LaserJet 2430
+       2b11  PSC 2170 series
+       2b17  LaserJet 1020
+       2c17  Printing Support
+       2d11  OfficeJet 6110
+       2d17  Printing Support
+       2e11  PSC 1000
+       2e17  Printing Support
+       2f11  PSC 1200
+       2f17  EWS 2605dn
+       3002  photosmart P1000
+       3004  deskjet 980c
+       3005  ScanJet 4670v
+       3011  PSC 1100 series
+       3017  Printing Support
+       3102  PhotoSmart P1100 Printer w/ Card Reader
+       3104  DeskJet 960c
+       3111  officejet 4100 series
+       3117  EWS 2605dtn
+       3202  photosmart 1215
+       3211  officejet 4105 series
+       3217  LaserJet 3050
+       3302  photosmart 1218
+       3304  DeskJet 990c
+       3317  LaserJet 3052
+       3402  photosmart 1115
+       3404  DeskJet 6122
+       3417  LaserJet 3055
+       3502  photosmart 230
+       3504  DeskJet 6127c
+       3511  PSC 2300
+       3517  LaserJet 3390
+       3602  photosmart 1315
+       3611  PSC 2410 Photosmart
+       3617  EWS 2605
+       3711  PSC 2500
+       3717  EWS UPD
+       3802  photosmart 100
+       3817  LaserJet P2015 Series
+       3902  photosmart 130
+       3a02  photosmart 7150
+       3a11  OfficeJet 5500 series
+       3a17  Printing Support
+       3b02  photosmart 7150~
+       3b11  PSC 1300 series
+       3b17  LaserJet M1005 MFP
+       3c02  PhotoSmart 7350
+       3c11  PSC 1358
+       3c17  EWS UPD
+       3d02  photosmart 7350~
+       3d11  OfficeJet 4215
+       3e02  photosmart 7550
+       3f02  photosmart 7550~
+       3f11  PSC-1315/PSC-1317
+       4002  PhotoSmart 720 / PhotoSmart 935 (storage)
+       4004  cp1160
+       4102  PhotoSmart 618
+       4105  ScanJet 4370
+       4111  Officejet 7200 series
+       4117  Printing Support
+       4202  PhotoSmart 812
+       4205  Scanjet G3010
+       4211  Officejet 7300 series
+       4217  EWS CM1015
+       4302  PhotoSmart 850 (ptp)
+       4311  Officejet 7400 series
+       4317  Color LaserJet CM1017
+       4402  PhotoSmart 935 (ptp)
+       4417  EWS UPD
+       4502  PhotoSmart 945 (PTP mode)
+       4505  ScanJet G4010
+       4511  Photosmart 2600
+       4517  EWS UPD
+       4605  ScanJet G4050
+       4611  Photosmart 2700
+       4811  PSC 1600
+       4911  PSC 2350
+       4b11  Officejet 6200
+       4c11  PSC 1500 series
+       4c17  EWS UPD
+       4d11  PSC 1400
+       4d17  EWS UPD
+       4e11  Photosmart 2570 series
+       4f11  Officejet 5600 (USBHUB)
+       5004  DeskJet 995c
+       5011  Photosmart 3100 Series
+       5017  EWS UPD
+       5111  Photosmart 3200 Series
+       5211  Photosmart 3300 Series
+       5311  Officejet 6300
+       5411  Officejet 4300
+       5511  Deskjet F300 series
+       5611  PhotoSmart C3180
+       5617  LaserJet M1120 MFP
+       5711  Photosmart C4100 series
+       5717  LaserJet M1120n MFP
+       5811  Photosmart C5100 series
+       5817  LaserJet M1319f MFP
+       5911  PhotoSmart C6180
+       5a11  Photosmart C7100 series
+       5b11  Officejet J2100 Series
+       5c11  Photosmart C4200 Printer series
+       5d11  Photosmart C5200 series
+       5e11  Photosmart D7400 series
+       6004  DeskJet 5550
+       6102  Hewlett Packard Digital Camera
+       6104  DeskJet 5650c
+       6117  color LaserJet 3550
+       6202  PhotoSmart 215
+       6204  DeskJet 5150c
+       6217  Color LaserJet 4700
+       6302  PhotoSmart 318/612
+       6317  Color LaserJet 4730mfp
+       6402  PhotoSmart 715 (ptp)
+       6411  Photosmart C8100 series
+       6417  LaserJet 5200
+       6502  PhotoSmart 120 (ptp)
+       6511  Photosmart C7200 series
+       6602  PhotoSmart 320
+       6611  Photosmart C4380 series
+       6617  LaserJet 5200L
+       6702  PhotoSmart 720 (ptp)
+       6717  Color LaserJet 3000
+       6802  PhotoSmart 620 (ptp)
+       6811  Photosmart D5300 series
+       6817  Color LaserJet 3800
+       6911  Photosmart D7200 series
+       6917  Color LaserJet 3600
+       6a02  PhotoSmart 735 (ptp)
+       6a11  Photosmart C6200 series
+       6a17  LaserJet 4240
+       6b02  PhotoSmart R707 (PTP mode)
+       6c17  Color LaserJet 4610
+       6f17  Color LaserJet CP6015 series
+       7004  DeskJet 3320c
+       7102  PhotoSmart 635 (PTP mode)
+       7104  DeskJet 3420c
+       7117  CM8060 Color MFP with Edgeline Technology
+       7202  PhotoSmart 43x (ptp)
+       7204  DeskJet 36xx
+       7217  LaserJet M5035 MFP
+       7302  PhotoSmart M307 (PTP mode)
+       7304  DeskJet 35xx
+       7317  LaserJet P3005
+       7404  Printing Support
+       7417  LaserJet M4345 MFP
+       7504  Printing Support
+       7517  LaserJet M3035 MFP
+       7604  Deskjet 3940
+       7617  LaserJet P3004
+       7702  PhotoSmart R817 (PTP mode)
+       7704  Deskjet D4100
+       7717  CM8050 Color MFP with Edgeline Technology
+       7804  Deskjet D1360
+       7817  Color LaserJet CP3505
+       7917  LaserJet M5025 MFP
+       7a02  PhotoSmart M415 (PTP mode)
+       7a17  LaserJet M3027 MFP
+       7b02  PhotoSmart M23 (PTP mode)
+       7b17  Color LaserJet CP4005
+       7c17  Color LaserJet CM6040 Series
+       7d04  Deskjet F2100 Printer series
+       7d17  Color LaserJet CM4730 MFP
+       7e04  Deskjet F4100 Printer series
+       8017  LaserJet P4515
+       8104  Printing Support
+       8117  LaserJet P4015
+       811c  Ethernet HN210E
+       8204  Printing Support
+       8217  LaserJet P4014
+       8317  LaserJet M9050 MFP
+       8404  Deskjet 6800 Series
+       8417  LaserJet M9040 MFP
+       8504  Deskjet 6600 Series
+       8604  Deskjet 5440
+       8704  deskjet 5900 series
+       8804  Deskjet 6980 Series
+       8904  Deskjet 6940 Series
+       9002  Photosmart M437
+       9102  Photosmart M537
+       9302  Photosmart R930 series
+       9402  Photosmart R837
+       9502  Photosmart R840 series
+       9602  Photosmart M730 series
+       9702  Photosmart R740 series
+       9802  Photosmart Mz60 series
+       9902  Photosmart M630 series
+       9a02  Photosmart E330 series
+       9b02  Photosmart M540 series
+       9c02  Photosmart M440 series
+       a004  DeskJet 5850c
+       b002  photosmart 7200 series
+       b102  photosmart 7200 series
+       b202  photosmart 7600 series
+       b302  photosmart 7600 series
+       b402  photosmart 7700 series
+       b502  photosmart 7700 series
+       b602  photosmart 7900 series
+       b702  photosmart 7900 series
+       b802  Photosmart 7400 Series
+       b902  Photosmart 7800 Series
+       ba02  Photosmart 8100 Series
+       bb02  Photosmart 8400 Series
+       bc02  Photosmart 8700 Series
+       bd02  Photosmart Pro B9100 series
+       bef4  NEC Picty760
+       c002  Photosmart 7800 Series
+       c102  Photosmart 8000 Series
+       c202  Photosmart 8200 Series
+       c302  Deskjet D2300
+       c402  Photosmart D5100 series
+       c502  Photosmart D6100 series
+       c602  Photosmart D7100 series
+       c702  Photosmart D7300 series
+       c802  Photosmart D5060 Printer
+       d104  Bluetooth Dongle
+       efbe  NEC Picty900
+       f0be  NEC Picty920
+       f1be  NEC Picty800
+03f1  Genoa Technology
+03f2  Oak Technology, Inc.
+03f3  Adaptec, Inc.
+       0020  AWN-8020 WLAN
+       0080  AVC-1100 Audio Capture
+       0083  AVC-2200 Device
+       0087  AVC-2210 Loader
+       0088  AVC-2210 Device
+       008b  AVC-2310 Loader
+       008c  AVC-2310 Device
+       0094  eHome Infrared Receiver
+       009b  AVC-1410 GameBridge TV NTSC
+       2000  USBXchange
+       2001  USBXchange Adapter
+       2002  USB2-Xchange
+       2003  USB2-Xchange Adapter
+       adcc  Composite Device Support
+03f4  Diebold, Inc.
+03f5  Siemens Electromechanical
+03f8  Epson Imaging Technology Center
+03f9  KeyTronic Corp.
+       0100  Keyboard
+       0101  Keyboard
+       0102  Keyboard Mouse
+03fb  OPTi, Inc.
+03fc  Elitegroup Computer Systems
+03fd  Xilinx, Inc.
+03fe  Farallon Comunications
+0400  National Semiconductor Corp.
+       0807  Bluetooth Dongle
+       080a  Bluetooth Device
+       1000  Mustek BearPaw 1200 Scanner
+       1001  Mustek BearPaw 2400 Scanner
+       1237  Hub
+       a000  Smart Display Reference Device
+       c35b  Printing Support
+0401  National Registry, Inc.
+0402  ALi Corp.
+       5462  M5462 IDE Controller
+       5602  Video Camera Controller
+       5603  USB 2.0 Q-tec Webcam 300
+       5621  USB 2.0 Storage Device
+       5623  VistaScan Astra 3600
+       5627  Welland ME-740PS USB2 3.5" Power Saving Enclosure
+       5632  USB 2.0 Host-to-Host Link
+       5635  USB 2.0 Flash Card Reader
+       5636  USB 2.0 Storage Device
+       5637  M5637 IDE Controller
+0403  Future Technology Devices International, Ltd
+       0000  H4SMK 7 Port Hub
+       0232  Serial Converter
+       6001  FT232 USB-Serial (UART) IC
+       6007  Serial Converter
+       6008  Serial Converter
+       6009  Serial Converter
+       6010  FT2232C Dual USB-UART/FIFO IC
+       8040  4 Port Hub
+       8070  7 Port Hub
+       8370  7 Port Hub
+       8371  PS/2 Keyboard And Mouse
+       8372  FT8U100AX Serial Port
+       c630  lcd2usb interface
+       c7d0  RR-CirKits LocoBuffer-USB
+       cc48  product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi
+       cc49  product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru
+       cc4a  product FTDI TACTRIX_OPENPORT_13U 0xcc4a OpenPort 1.3 Universal
+       d010  SCS PTC-IIusb
+       d011  SCS Position-Tracker/TNC
+       d012  SCS DRAGON 1
+       d013  SCS DRAGON 1
+       d6f8  UNI Black BOX
+       e700  Elster Unicom III Optical Probe
+       e888  Expert ISDN Control USB
+       e889  USB-RS232 OptoBridge
+       e88a  Expert mouseCLOCK USB II
+       e88b  Precision Clock MSF USB
+       e88c  Expert mouseCLOCK USB II HBG
+       ea90  Eclo 1-Wire Adapter
+       f208  Papenmeier Braille-Display
+       f680  Suunto Sports Instrument
+       f918  Ant8 Logic Probe
+       fa00  Matrix Orbital USB Serial
+       fa01  Matrix Orbital MX2 or MX3
+       fa02  Matrix Orbital MX4 or MX5
+       fa03  Matrix Orbital VK/LK202 Family
+       fa04  Matrix Orbital VK/LK204 Family
+       fc08  Crystalfontz CFA-632 USB LCD
+       fc09  Crystalfontz CFA-634 USB LCD
+       fc0b  Crystalfontz CFA-633 USB LCD
+       fc0c  Crystalfontz CFA-631 USB LCD
+       fc0d  Crystalfontz CFA-635 USB LCD
+       fc82  SEMC DSS-20 SyncStation
+       fd48  ShipModul MiniPlex-4xUSB NMEA Multiplexer
+       ff08  ToolHouse LoopBack Adapter
+       ff18  Logbook Bus
+       ff19  Logbook Bus
+       ff1a  Logbook Bus
+       ff1b  Logbook Bus
+       ff1c  Logbook Bus
+       ff1d  Logbook Bus
+       ff1e  Logbook Bus
+       ff1f  Logbook Bus
+0404  NCR Corp.
+       0202  78XX Scanner
+       0203  78XX Scanner - Embedded System
+       0310  K590 Printer, Self-Service
+       0311  7167 Printer, Receipt/Slip
+       0312  7197 Printer Receipt
+       0320  5932-USB Keyboard
+       0321  5953-USB Dynakey
+       0322  5932-USB Enhanced Keyboard
+       0323  5932-USB Enhanced Keyboard, Flash-Recovery/Download
+       0324  5953-USB Enhanced Dynakey
+       0325  5953-USB Enhanced Dynakey Flash-Recovery/Download
+       0328  K016: USB-MSR ISO 3-track MSR: POS Standard (See HID pages)
+       0329  K018: USB-MSR JIS 2-Track MSR: POS Standard
+       032a  K016: USB-MSR ISO 3-Track MSR: HID Keyboard Mode
+       032b  K016/K018: USB-MSR Flash-Recovery/Download
+0405  Synopsys, Inc.
+0406  Fujitsu-ICL Computers
+0407  Fujitsu Personal Systems, Inc.
+0408  Quanta Computer, Inc.
+0409  NEC Corp.
+       0011  PC98 Series Layout Keyboard Mouse
+       0012  ATerm IT75DSU ISDN TA
+       0014  Japanese Keyboard
+       0019  109 Japanese Keyboard with Bus-Powered Hub
+       001a  PC98 Series Layout Keyboard with Bus-Powered Hub
+       0025  Mini Keyboard with Bus-Powered Hub
+       0027  MultiSync Monitor
+       002c  Clik!-USB Drive
+       0034  109 Japanese Keyboard with One-touch start buttons
+       003f  Wireless Keyboard with One-touch start buttons
+       0040  Floppy
+       004e  SuperScript 1400 Series
+       004f  Wireless Keyboard with One-touch start buttons
+       0058  HighSpeed Hub
+       0059  HighSpeed Hub
+       005a  HighSpeed Hub
+       006a  Conceptronic USB Harddisk Box
+       0081  SuperScript 1400 Series
+       0082  SuperScript 1400 Series
+       0094  Japanese Keyboard with One-touch start buttons
+       0095  Japanese Keyboard
+       00a9  AtermIT21L 128K Support Standard
+       00aa  AtermITX72 128K Support Standard
+       00ab  AtermITX62 128K Support Standard
+       00ac  AtermIT42 128K Support Standard
+       00ae  INSMATEV70G-MAX Standard
+       00af  AtermITX70 128K Support Standard
+       00b0  AtermITX80 128K Support Standard
+       00b2  AtermITX80D 128K Support Standard
+       00c0  Wireless Remocon
+       00f7  Smart Display PK-SD10
+       011d  e228 Mobile Phone
+       0203  HID Audio Controls
+       55aa  Hub
+       55ab  Hub [iMac/iTouch kbd]
+       8010  Intellibase Hub
+       8011  Intellibase Hub
+       efbe  P!cty 900 [HP DJ]
+       f0be  P!cty 920 [HP DJ 812c]
+040a  Kodak Co.
+       0001  DVC-323
+       0002  DVC-325
+       0100  DC-220
+       0110  DC-260
+       0111  DC-265
+       0112  DC-290
+       0120  DC-240
+       0121  DC-240 (PTP firmware)
+       0130  DC-280
+       0131  DC-5000
+       0132  DC-3400
+       0140  DC-4800
+       0160  DC4800
+       0170  DX3900
+       0200  Digital Camera
+       0300  EZ-200
+       0400  MC3
+       0402  Digital Camera
+       0403  Z7590
+       0500  DX3500
+       0510  DX3600
+       0525  DX3215
+       0530  DX3700
+       0535  EasyShare CX4230 Camera
+       0540  LS420
+       0550  DX4900
+       0555  DX4330
+       0560  CX4200
+       0565  CX4210
+       0566  CX4300
+       0567  LS753
+       0568  LS443
+       0569  LS663
+       0570  DX6340
+       0571  CX6330
+       0572  DX6440
+       0573  CX6230
+       0574  CX6200
+       0575  DX6490
+       0576  DX4530
+       0577  DX7630
+       0578  CX7300/CX7310
+       0579  CX7220
+       057a  CX7330
+       057b  CX7430
+       057c  CX7530
+       057d  DX7440
+       057e  C300
+       057f  DX7590
+       0580  Z730
+       0581  Digital Camera
+       0582  Digital Camera
+       0583  Digital Camera
+       0584  CX6445
+       0585  Digital Camera
+       0586  CX7525
+       0587  Digital Camera
+       0588  Digital Camera
+       0589  EasyShare C360
+       058a  C310
+       058b  Digital Camera
+       058c  C330
+       058d  C340
+       058e  V530
+       058f  V550
+       0590  Digital Camera
+       0591  Digital Camera
+       0592  Digital Camera
+       0593  Digital Camera
+       0594  Digital Camera
+       0595  Digital Camera
+       0596  Digital Camera
+       0597  Digital Camera
+       0598  Digital Camera
+       0599  Digital Camera
+       059a  Digital Camera
+       059b  Digital Camera
+       059c  Digital Camera
+       059d  Digital Camera
+       059e  Digital Camera
+       059f  Digital Camera
+       05a0  Digital Camera
+       05a1  Digital Camera
+       05a2  Digital Camera
+       05a3  Digital Camera
+       05a4  Digital Camera
+       05a5  Digital Camera
+       05a6  Digital Camera
+       05a7  Digital Camera
+       05a8  Digital Camera
+       05a9  Digital Camera
+       05aa  Digital Camera
+       05ab  Digital Camera
+       05ac  Digital Camera
+       05ad  Digital Camera
+       05ae  Digital Camera
+       05af  Digital Camera
+       05b0  Digital Camera
+       05b1  Digital Camera
+       05b2  Digital Camera
+       05b3  EasyShare Z710 Camera
+       05b4  Digital Camera
+       05b5  Digital Camera
+       05b6  Digital Camera
+       05b7  Digital Camera
+       05b8  Digital Camera
+       05b9  Digital Camera
+       05ba  Digital Camera
+       05bb  Digital Camera
+       05bc  Digital Camera
+       05bd  Digital Camera
+       05be  Digital Camera
+       05bf  Digital Camera
+       05c0  Digital Camera
+       05c1  Digital Camera
+       05c2  Digital Camera
+       05c3  Digital Camera
+       05c4  Digital Camera
+       05c5  Digital Camera
+       4000  InkJet Color Printer
+       410d  EasyShare G600 Printer Dock
+       5010  Wireless Adapter
+       5012  DBT-220 Bluetooth Adapter
+       6001  i30
+       6002  i40
+       6003  i50
+       6004  i60
+       6005  i80
+040b  Weltrend Semiconductor
+       6510  Weltrend Bar Code Reader
+       6520  XBOX Xploder
+040c  VTech Computers, Ltd
+040d  VIA Technologies, Inc.
+       3184  VNT VT6656 USB-802.11 Wireless LAN Adapter
+       6205  USB 2.0 Card Reader
+040e  MCCI
+040f  Echo Speech Corp.
+0411  MelCo., Inc.
+       0001  LUA-TX Ethernet [pegasus]
+       0005  LUA-TX Ethernet
+       0006  WLI-USB-L11 Wireless LAN Adapter
+       0009  LUA2-TX Ethernet
+       000b  WLI-USB-L11G-WR Wireless LAN Adapter
+       000d  WLI-USB-L11G Wireless LAN Adapter
+       0012  LUA-KTX Ethernet
+       0013  USB2-IDE Adapter
+       0016  WLI-USB-S11 802.11b Adapter
+       0018  USB2-IDE Adapter
+       001c  USB-IDE Bridge: DUB-PxxG
+       0027  WLI-USB-KS11G 802.11b Adapter
+       003d  LUA-U2-KTX Ethernet
+       0044  WLI-USB-KB11 Wireless LAN Adapter
+       004d  WLI-USB-B11 Wireless LAN Adapter
+       0050  WLI2-USB2-G54 Wireless LAN Adapter
+       005e  WLI-U2-KG54-YB WLAN
+       0065  Python2 WDM Encoder
+       0066  WLI-U2-KG54 WLAN
+       0067  WLI-U2-KG54-AI WLAN
+       008b  Nintendo Wi-Fi
+       0091  WLI-U2-KAMG54 Wireless LAN Adapter
+       0092  WLI-U2-KAMG54 Bootloader
+       0097  WLI-U2-KG54-BB
+       00a9  WLI-U2-AMG54HP Wireless LAN Adapter
+       00aa  WLI-U2-AMG54HP Bootloader
+       00b3  PC-OP-RS1 RemoteStation
+       00ca  802.11n Network Adapter
+       00cb  WLI-U2-G300N 802.11n Adapter
+       00d8  WLI-U2-SG54HP
+       00d9  WLI-U2-G54HP
+       00da  WLI-U2-KG54L
+0412  Award Software International
+0413  Leadtek Research, Inc.
+       1310  WinFast TV - NTSC + FM
+       1311  WinFast TV - NTSC + MTS + FM
+       1312  WinFast TV - PAL BG + FM
+       1313  WinFast TV - PAL BG+TXT + FM
+       1314  WinFast TV Audio - PHP PAL I
+       1315  WinFast TV Audio - PHP PAL I+TXT
+       1316  WinFast TV Audio - PHP PAL DK
+       1317  WinFast TV Audio - PHP PAL DK+TXT
+       1318  WinFast TV - PAL I/DK + FM
+       1319  WinFast TV - PAL N + FM
+       131a  WinFast TV Audio - PHP SECAM LL
+       131b  WinFast TV Audio - PHP SECAM LL+TXT
+       131c  WinFast TV Audio - PHP SECAM DK
+       131d  WinFast TV - SECAM DK + TXT + FM
+       131e  WinFast TV - NTSC Japan + FM
+       1320  WinFast TV - NTSC
+       1321  WinFast TV - NTSC + MTS
+       1322  WinFast TV - PAL BG
+       1323  WinFast TV - PAL BG+TXT
+       1324  WinFast TV Audio - PHP PAL I
+       1325  WinFast TV Audio - PHP PAL I+TXT
+       1326  WinFast TV Audio - PHP PAL DK
+       1327  WinFast TV Audio - PHP PAL DK+TXT
+       1328  WinFast TV - PAL I/DK
+       1329  WinFast TV - PAL N
+       132a  WinFast TV Audio - PHP SECAM LL
+       132b  WinFast TV Audio - PHP SECAM LL+TXT
+       132c  WinFast TV Audio - PHP SECAM DK
+       132d  WinFast TV - SECAM DK + TXT
+       132e  WinFast TV - NTSC Japan
+       6023  EMP Audio Device
+       6024  WinFast PalmTop/Novo TV Video
+       6025  WinFast DTV Dongle (cold state)
+       6026  WinFast DTV Dongle (warm state)
+       6125  WinFast DTV Dongle
+       6126  WinFast DTV Dongle BDA Driver
+       6f00  WinFast DTV Dongle (STK7700P based)
+0414  Giga-Byte Technology Co., Ltd
+0416  Winbond Electronics Corp.
+       0035  W89C35 802.11bg WLAN Adapter
+       0101  Hub
+       0961  AVL Flash Card Reader
+       3810  Smart Card Controller
+       3811  Generic Controller - Single interface
+       3812  Smart Card Controller_2Interface
+       3813  Panel Display
+       5518  4-Port Hub
+       551a  PC Sync Keypad
+       551b  PC Async Keypad
+       551c  Sync Tenkey
+       551d  Async Tenkey
+       551e  Keyboard
+       551f  Keyboard w/ Sys and Media
+       5521  Keyboard
+       6481  16-bit Scanner
+       7721  Memory Stick Reader/Writer
+       7722  Memory Stick Reader/Writer
+       7723  SD Card Reader
+0417  Symbios Logic
+0418  AST Research
+0419  Samsung Info. Systems America, Inc.
+       0001  IrDA Remote Controller
+       3001  Xerox P1202 Laser Printer
+       3003  Olivetti PG L12L
+       3201  Docuprint P8ex
+       3404  SCX-5x12 Series
+       3406  MFP 830 Series
+       3407  ML-912
+       3601  InkJet Color Printer
+       3602  InkJet Color Printer
+       4602  Remote NDIS Network Device
+       8001  Hub
+       8002  SyncMaster 757DFX HID Device
+041a  Phoenix Technologies, Ltd
+041b  d'TV
+041d  S3, Inc.
+041e  Creative Technology, Ltd
+       1002  Nomad II
+       1003  Blaster GamePad Cobra
+       1050  GamePad Cobra
+       3000  SoundBlaster Extigy
+       3002  SB External Composite Device
+       3010  SoundBlaster MP3+
+       3014  SB External Composite Device
+       3015  Sound Blaster Digital Music LX
+       3020  SoundBlaster Audigy 2 NX
+       3030  SB External Composite Device
+       3040  SoundBlaster Live! 24-bit External SB0490
+       3060  Sound Blaster Audigy 2 ZS External
+       3061  SoundBlaster Audigy 2 ZS Video Editor
+       3090  Sound Blaster Digital Music SX
+       3f02  E-Mu 0202
+       3f04  E-Mu 0404
+       4003  VideoBlaster WebCam Go Plus [W9967CF]
+       4004  Nomad II MG
+       4005  WebCam Blaster Go ES
+       4007  Go Mini
+       400a  PC-Cam 300
+       400b  PC-Cam 600
+       400c  WebCam 5 [pwc]
+       400d  WebCam PD1001
+       400f  PC-CAM 550 (Composite)
+       4011  WebCam PRO eX
+       4012  PC-CAM350
+       4013  PC-Cam 750
+       4015  CardCam Value
+       4016  CardCam
+       4017  WebCam Mobile
+       4018  WebCam Vista
+       4019  Audio Device
+       401c  WebCam NX [PD1110]
+       401d  WebCam NX Ultra
+       401e  WebCam NX Pro
+       401f  Webcam Notebook
+       4020  WebCam NX
+       4021  WebCam NX Ultra
+       4022  WebCam NX Pro
+       4028  Vista Plus cam [VF0090]
+       402f  DC-CAM 3000Z
+       4034  WebCam Instant
+       4035  WebCam Instant
+       4036  Webcam Live!/Live! Pro
+       4037  WebCam Live!
+       4038  ORITE CCD Webcam(PC370R)
+       4039  WebCam Live! Effects
+       403a  WebCam NX Pro 2
+       403c  WebCam Live! Ultra
+       403d  WebCam Notebook Ultra
+       403e  WebCam Vista Plus
+       4041  WebCam Live! Motion
+       4045  Live! Cam Voice
+       4049  Live! Cam Voice
+       4051  Live! Cam Notebook Pro
+       4052  Live! Cam Vista IM
+       4053  Live! Cam Video IM
+       4054  Live! Cam Video IM
+       4055  Live! Cam Video IM Pro
+       4056  Live! Cam Video IM Pro
+       4057  Live! Cam Optia
+       4058  Live! Cam Optia AF
+       4068  WebCam Live! Notebook
+       4100  Nomad Jukebox 2
+       4101  Nomad Jukebox 3
+       4102  NOMAD MuVo^2
+       4106  Nomad MuVo
+       4107  NOMAD MuVo
+       4108  Nomad Jukebox Zen
+       4109  Nomad Jukebox Zen NX
+       410b  Nomad Jukebox Zen USB 2.0
+       410c  Nomad MuVo NX
+       410f  NOMAD MuVo^2 (Flash)
+       4110  Nomad Jukebox Zen Xtra
+       4111  Dell Digital Jukebox
+       4116  MuVo^2
+       4117  Nomad MuVo TX
+       411b  Zen Touch
+       411c  Nomad MuVo USB 2.0
+       411d  Zen
+       411e  Zen Micro
+       4123  Zen Portable Media Center
+       4124  MuVo^2 FM (uHDD)
+       4126  Dell DJ (2nd gen)
+       4127  Dell DJ
+       4128  NOMAD Jukebox Zen Xtra (mtp)
+       412b  MuVo N200 with FM radio
+       4130  Zen Micro (mtp)
+       4131  Zen Touch (mtp)
+       4133  Mass Storage Device
+       4134  Zen Neeon
+       4136  Zen Sleek
+       4137  Zen Sleek (mtp)
+       4139  Zen Nano Plus
+       413c  Zen MicroPhoto
+       4151  Zen Vision:M (mtp)
+       4155  Zen Stone plus
+       500f  Broadband Blaster 8012U-V
+       5015  TECOM Bluetooth Device
+       ffff  WebCam Live! Ultra
+041f  LCS Telegraphics
+0420  Chips and Technologies
+       1307  Celly SIM Card Reader
+0421  Nokia Mobile Phones
+       0018  6288 GSM Smartphone
+       0019  6288 GSM Smartphone (imaging mode)
+       001a  6288 GSM Smartphone (file transfer mode)
+       0024  5610 XpressMusic (Storage mode)
+       0025  5610 XpressMusic (PC-Suite mode)
+       0028  5610 XpressMusic (Imaging mode)
+       0096  N810 Internet Tablet
+       0103  ADL Flashing Engine AVALON Parent
+       0104  ADL Re-Flashing Engine Parent
+       0105  E-61 (Firmware update mode)
+       0106  ROM Parent
+       0400  7600 Phone Parent
+       0401  6650 GSM Phone
+       0402  6255 Phone Parent
+       0404  5510
+       0405  9500 GSM Communicator
+       0407  Music Player HDR-1(tm)
+       040b  N-Gage GSM Phone
+       040d  6620 Phone Parent
+       040e  6651 Phone Parent
+       040f  6230 GSM Phone
+       0410  6630 Imaging Smartphone
+       0411  7610 Phone Parent
+       0413  6260 Phone Parent
+       0414  7370
+       0415  9300 GSM Smartphone
+       0416  6170 Phone Parent
+       0417  7270 Phone Parent
+       0418  E-70 (PC-Suite mode)
+       0419  E-60 (PC-Suite mode)
+       041a  9500 GSM Communicator (RNDIS)
+       041b  9300 GSM Smartphone (RNDIS)
+       041c  7710 Phone Parent
+       041d  6670 Phone Parent
+       041e  6680
+       041f  6235 Phone Parent
+       0421  3230 Phone Parent
+       0422  6681 Phone Parent
+       0423  6682 Phone Parent
+       0428  6230i Modem
+       0429  6230i MultiMedia Card
+       0431  770 Internet Tablet
+       0432  N90 Phone Parent
+       0435  E-70 (IP Passthrough/RNDIS mode)
+       0436  E-60 (IP Passthrough/RNDIS mode)
+       0437  6265 Phone Parent
+       043a  N70 USB Phone Parent
+       043b  3155 Phone Parent
+       043c  6155 Phone Parent
+       043d  6270 Phone Parent
+       0443  N70 Phone Parent
+       044c  NM850iG Phone Parent
+       044d  E-61 (PC Suite mode)
+       044e  E-61 (Data Exchange mode)
+       044f  E-61 (IP Passthrough/RNDIS mode)
+       0453  9300 Phone Parent
+       0456  6111 Phone Parent
+       045a  6280 Phone Parent
+       045d  6282 Phone Parent
+       046e  6110 Navigator
+       0485  MTP Device
+       04c3  N800 Internet Tablet
+       04ce  E90 Communicator (PC-Suite mode)
+       04cf  E90 Communicator (Storage mode)
+       04f9  6300 (PC-Suite mode)
+       0600  Digital Pen SU-1B
+       0800  Connectivity Cable DKU-5
+       0801  Data Cable DKU-6
+       0802  CA-42 Phone Parent
+0422  ADI Systems, Inc.
+0423  Computer Access Technology Corp.
+       000a  NetMate Ethernet
+       000c  NetMate2 Ethernet
+       000d  USB Chief Analyzer
+       0100  Generic Universal Protocol Analyzer
+       0101  UPA USBTracer
+       0200  Generic 10K Universal Protocol Analyzer
+       020a  PETracer ML
+       0300  Generic Universal Protocol Analyzer
+       0301  2500H Tracer Trainer
+       030a  PETracer x1
+       1237  Andromeda Hub
+0424  Standard Microsystems Corp.
+       0001  Integrated Hub
+       0acd  Sitecom Internal Multi Memory reader/writer MD-005
+       0fdc  Floppy
+       10cd  Sitecom Internal Multi Memory reader/writer MD-005
+       2020  USB Hub
+       20cd  Sitecom Internal Multi Memory reader/writer MD-005
+       20fc  6-in-1 Card Reader
+       2228  9-in-2 Card Reader
+       223a  8-in-1 Card Reader
+       2503  USB 2.0 Hub
+       2504  USB 2.0 Hub
+       2524  USB MultiSwitch Hub
+0425  Motorola Semiconductors HK, Ltd
+       0101  G-Tech Wireless Mouse & Keyboard
+0426  Integrated Device Technology, Inc.
+       0426  WDM Driver
+0427  Motorola Electronics Taiwan, Ltd
+0428  Advanced Gravis Computer Tech, Ltd
+       4001  GamePad Pro
+0429  Cirrus Logic
+042a  Ericsson Austrian, AG
+042b  Intel Corp.
+       9316  8x931Hx Customer Hub
+042c  Innovative Semiconductors, Inc.
+042d  Micronics
+042e  Acer, Inc.
+       0380  MP3 Player
+042f  Molex, Inc.
+0430  Sun Microsystems, Inc.
+       0002  109 Keyboard
+       0005  Type 6 Keyboard
+       000a  109 Japanese Keyboard
+       000b  109 Japanese Keyboard
+       0082  109 Japanese Keyboard
+       0083  109 Japanese Keyboard
+       0100  3-button Mouse
+       36ba  Bus Powered Hub
+0431  Itac Systems, Inc.
+       0100  Mouse-Trak 3-button Track Ball
+0432  Unisys Corp.
+0433  Alps Electric, Inc.
+       1101  IBM Game Controller
+       abab  Keyboard
+0434  Samsung Info. Systems America, Inc.
+0435  Hyundai Electronics America
+0436  Taugagreining HF
+       0005  CameraMate (DPCM_USB)
+0437  Framatome Connectors USA
+0438  Advanced Micro Devices, Inc.
+0439  Voice Technologies Group
+043d  Lexmark International, Inc.
+       0001  Laser Printer
+       0002  Optra E310 Printer
+       0003  Laser Printer
+       0004  Laser Printer
+       0005  Laser Printer
+       0006  Laser Printer
+       0007  Laser Printer
+       0008  Inkjet Color Printer
+       0009  Optra S2450 Printer
+       000a  Laser Printer
+       000b  Inkjet Color Printer
+       000c  Optra E312 Printer
+       000d  Laser Printer
+       000e  Laser Printer
+       000f  Laser Printer
+       0010  Laser Printer
+       0011  Laser Printer
+       0012  Inkjet Color Printer
+       0013  Inkjet Color Printer
+       0014  InkJet Color Printer
+       0015  InkJet Color Printer
+       0016  Z12 Color Jetprinter
+       0017  Z32 printer
+       0018  Z52 Printer
+       0019  Forms Printer
+       001a  Z65 Printer
+       001b  InkJet Photo Printer
+       001c  Kodak Personal Picture Maker 200 Printer
+       001d  InkJet Color Printer
+       001e  InkJet Photo Printer
+       001f  Kodak Personal Picture Maker 200 Card Reader
+       0020  Z51 Printer
+       0021  Z33 Printer
+       0022  InkJet Color Printer
+       0023  Laser Printer
+       0024  Laser Printer
+       0025  InkJet Color Printer
+       0026  InkJet Color Printer
+       0027  InkJet Color Printer
+       0028  InkJet Color Printer
+       0029  Scan Print Copy
+       002a  Scan Print Copy
+       002b  Scan Print Copy
+       002c  Scan Print Copy
+       002d  X70/X73 Scan/Print/Copy
+       002e  Scan Print Copy
+       002f  Scan Print Copy
+       0030  Scan Print Copy
+       0031  Scan Print Copy
+       0032  Scan Print Copy
+       0033  Scan Print Copy
+       0034  Scan Print Copy
+       0035  Scan Print Copy
+       0036  Scan Print Copy
+       0037  Scan Print Copy
+       0038  Scan Print Copy
+       0039  Scan Print Copy
+       003a  Scan Print Copy
+       003b  Scan Print Copy
+       003c  Scan Print Copy
+       003d  X83 Scan/Print/Copy
+       003e  Scan Print Copy
+       003f  Scan Print Copy
+       0040  Scan Print Copy
+       0041  Scan Print Copy
+       0042  Scan Print Copy
+       0043  Scan Print Copy
+       0044  Scan Print Copy
+       0045  Scan Print Copy
+       0046  Scan Print Copy
+       0047  Scan Print Copy
+       0048  Scan Print Copy
+       0049  Scan Print Copy
+       004a  Scan Print Copy
+       004b  Scan Print Copy
+       004c  Scan Print Copy
+       004d  Laser Printer
+       004e  Laser Printer
+       004f  InkJet Color Printer
+       0050  InkJet Color Printer
+       0051  Laser Printer
+       0052  Laser Printer
+       0053  InkJet Color Printer
+       0054  InkJet Color Printer
+       0057  Z35 Printer
+       0058  Laser Printer
+       005a  X63
+       005c  InkJet Color Printer
+       0060  X74/X75 Scanner
+       0061  X74 Hub
+       0065  X5130
+       0069  X74/X75 Printer
+       006d  X125
+       0072  X6170 Printer
+       0073  InkJet Color Printer
+       0078  InkJet Color Printer
+       0079  InkJet Color Printer
+       007a  Generic Hub
+       007b  InkJet Color Printer
+       007c  Lexmark X1110/X1130/X1140/X1150/X1170/X1180/X1185
+       007d  Photo 3150
+       008a  4200 Series
+       008b  InkJet Color Printer
+       008c  to CF/SM/SD/MS Card Reader
+       008e  InkJet Color Printer
+       008f  X422
+       0093  X5250
+       0095  E220 Printer
+       0096  2200 Series
+       0097  P6250
+       0098  7100 Series
+       009e  P910 Series Human Interface Device
+       009f  InkJet Color Printer
+       00a9  IBM Infoprint 1410 MFP
+       00ab  InkJet Color Printer
+       00b2  3300 Series
+       00b8  7300 Series
+       00b9  8300 Series
+       00ba  InkJet Color Printer
+       00bb  2300 Series
+       00bd  Printing Support
+       00be  Printing Support
+       00bf  Printing Support
+       00c0  6300 Series
+       00c1  4300 Series
+       00c7  Printing Support
+       00c8  Printing Support
+       00c9  Printing Support
+       00cb  Printing Support
+       00d0  9300 Series
+       00d3  X340 Scanner
+       00d4  X342n Scanner
+       00d5  Printing Support
+       00d6  X340 Scanner
+       00e8  X642e
+       00e9  2400 Series
+       00f6  3400 Series
+       00f7  InkJet Color Printer
+       00ff  InkJet Color Printer
+       010b  2500 Series
+       010d  3500-4500 Series
+       010f  6500 Series
+       4303  Xerox WorkCentre Pro 412
+043e  LG Electronics USA, Inc.
+       42bd  Flatron 795FT Plus Monitor
+       4a4d  Flatron 915FT Plus Monitor
+       7001  MF-PD100 Soul Digital MP3 Player
+       7013  MP3 Player
+       8484  LPC-U30 Webcam II
+       8585  LPC-UC35 Webcam
+       8888  Electronics VCS Camera II(LPC-U20)
+       9800  Remote Control Receiver_iMON
+       9803  eHome Infrared Receiver
+       9804  DMB Receiver Control
+       9c01  LGE Sync
+043f  RadiSys Corp.
+0440  Eizo Nanao Corp.
+0441  Winbond Systems Lab.
+       1456  Hub
+0442  Ericsson, Inc.
+       abba  Bluetooth Device
+0443  Gateway, Inc.
+       000e  Multimedia Keyboard
+       002e  Millennium Keyboard
+0445  Lucent Technologies, Inc.
+0446  NMB Technologies Corp.
+       6781  Keyboard with PS/2 Mouse Port
+       6782  Keyboard
+0447  Momentum Microsystems
+044a  Shamrock Tech. Co., Ltd
+044b  WSI
+044c  CCL/ITRI
+044d  Siemens Nixdorf AG
+044e  Alps Electric Co., Ltd
+       1104  Japanese Keyboard
+       2002  MD-5500 Printer
+       2014  Bluetooth Device
+       3001  UGTZ4 Bluetooth
+       3002  Bluetooth Device
+       3003  Bluetooth Device
+       3004  Bluetooth Adapter
+       3005  Integrated Bluetooth Device
+       3006  Bluetooth Adapter
+       3007  GlidePoint PS/2 TouchPad
+       300c  Bluetooth Controller (ALPS/UGPZ6)
+       300d  Bluetooth Controller (ALPS/UGPZ6)
+       ffff  Compaq Bluetooth Multiport Module
+044f  ThrustMaster, Inc.
+       0400  HOTAS Cougar
+       a003  Rage 3D Game Pad
+       a01b  PK-GP301 Driving Wheel
+       a0a0  Top Gun Joystick
+       a0a1  Top Gun Joystick (rev2)
+       a0a3  Fusion Digital GamePad
+       a201  PK-GP201 PlayStick
+       b203  360 Modena Pro Wheel
+       b300  Firestorm Dual Power
+       b304  Firestorm Dual Power
+       b307  vibrating Upad
+       b603  force feedback Wheel
+       b605  force feedback Racing Wheel
+       b700  Tacticalboard
+0450  DFI, Inc.
+0451  Texas Instruments, Inc.
+       1234  Bluetooth Device
+       1428  Hub
+       1446  TUSB2040/2070 Hub
+       2036  TUSB2036 Hub
+       2046  TUSB2046 Hub
+       2077  TUSB2077 Hub
+       3410  TUSB3410 Microcontroller
+       3f02  SMC WSKP100 Wi-Fi Phone
+       5409  Frontier Labs NEX IA+ Digital Audio Player
+       6000  AU5 ADSL Modem (pre-reenum)
+       6001  AU5 ADSL Modem
+       6060  RNDIS/BeWAN ADSL2+
+       6070  RNDIS/BeWAN ADSL2+
+       625f  Trekstor USB-Stick 12 CS-D 12 GB
+       dbc0  Device Bay Controller
+       e001  GraphLink
+       e004  TI-89 Titanium Calculator
+       e008  TI-84 Plus Silver Calculator
+       f430  MSP-FET430UIF JTAG Tool
+       ffff  Bluetooth Device
+0452  Mitsubishi Electronics America, Inc.
+       0021  HID Monitor Controls
+       0050  Diamond Pro 900u CRT Monitor
+       0051  Integrated Hub
+0453  CMD Technology
+       6781  NMB Keyboard
+       6783  Chicony Composite Keyboard
+0454  Vobis Microcomputer AG
+0455  Telematics International, Inc.
+0456  Analog Devices, Inc.
+0457  Silicon Integrated Systems Corp.
+       0150  Super Talent 1GB Flash Drive
+       0151  Super Flash 1GB / GXT  64MB Flash Drive
+       0162  SiS162 usb Wireless LAN Adapter
+       0163  802.11 Wireless LAN Adapter
+       5401  Wireless Adapter RO80211GS-USB
+0458  KYE Systems Corp. (Mouse Systems)
+       0001  Mouse
+       0002  Genius NetMouse Pro
+       0003  Genius NetScroll+
+       0006  Easy Mouse+ USB(USB\Vid_0458&Pid;_0006) Mouse
+       000b  NetMouse Wheel(P+U)
+       000c  TACOMA Fingerprint V1.06.01
+       000e  VideoCAM Web
+       0013  TACOMA Fingerprint Mouse V1.06.01
+       001a  Genius WebScroll+
+       0036  Pocket Mouse LE
+       004c  Slimstar Pro Keyboard
+       0056  Ergo 300 Mouse
+       0057  Enhanced Gaming Device
+       0059  Enhanced Laser Device
+       005a  Enhanced Device
+       005b  Enhanced Device
+       005c  Enhanced Laser Gaming Device
+       005d  Enhanced Device
+       0061  Bluetooth Dongle
+       0083  Bluetooth Dongle
+       0100  EasyPen Tablet
+       0101  CueCat
+       1001  Joystick
+       1002  Game Pad
+       1003  Genius VideoCam
+       1004  Flight2000 F-23 Joystick
+       100a  Aashima Technology Trust Sight Fighter Vibration Feedback Joystick
+       2001  ColorPage-Vivid Pro Scanner
+       2004  ColorPage-HR6 V1 Scanner
+       2005  ColorPage-HR6/Vivid3
+       2007  ColorPage-HR6 V2 Scanner
+       2008  ColorPage-HR6 V2 Scanner
+       2009  ColorPage-HR6A Scanner
+       2011  ColorPage-Vivid3x Scanner
+       2012  Plustek Scanner
+       2013  ColorPage-HR7 Scanner
+       2014  ColorPage-Vivid4
+       2015  ColorPage-HR7LE Scanner
+       2016  ColorPage-HR6X Scanner
+       2017  ColorPage-Vivid3xe
+       2018  ColorPage-HR7X
+       2019  ColorPage-HR6X Slim
+       201a  ColorPage-Vivid4xe
+       201b  ColorPage-Vivid4x
+       201c  ColorPage-HR8
+       201d  ColorPage-Vivid 1200 X
+       201e  ColorPage-Slim 1200
+       201f  ColorPage-Vivid 1200 XE
+       2020  ColorPage-Slim 1200 USB2
+       2021  ColorPage-SF600
+       301d  Genius MaxFire MiniPad
+       6001  GF3000F Ethernet Adapter
+       7004  VideoCAM Express
+       7007  VideoCAM Web
+       7009  G-Shot G312 Still Camera Device
+       700c  VideoCAM Web V3
+       700d  G-Shot G511 Composite Device
+       700f  VideoCAM Web V4
+       7012  WebCAM USB2.0
+       7014  VideoCAM Live V3
+       701c  G-Shot G512 Still Camera
+       7020  Sim 321C
+0459  Adobe Systems, Inc.
+045a  SONICblue, Inc.
+       07da  Supra Express 56K modem
+       0b4a  SupraMax 2890 56K Modem [Lucent Atlas]
+       0b68  SupraMax 56K Modem
+       5001  Rio 600 MP3 Player
+       5002  Rio 800 MP3 Player
+       5003  Nike Psa/Play MP3 Player
+       5005  Rio S10 MP3 Player
+       5006  Rio S50 MP3 Player
+       5007  Rio S35 MP3 Player
+       5008  Rio 900 MP3 Player
+       5009  Rio S30 MP3 Player
+       500d  Fuse MP3 Player
+       500e  Chiba MP3 Player
+       500f  Cali MP3 Player
+       5010  Rio S11 MP3 Player
+       501c  Virgin MPF-1000
+       501d  Rio Fuse
+       501e  Rio Chiba
+       501f  Rio Cali
+       503f  Cali256 MP3 Player
+       5202  Rio Riot MP3 Player
+       5210  Rio Karma Music Player
+       5220  Rio Nitrus MP3 Player
+       5221  Rio Eigen
+045b  Hitachi, Ltd
+045d  Nortel Networks, Ltd
+045e  Microsoft Corp.
+       0007  SideWinder Game Pad
+       0008  SideWinder Precision Pro
+       0009  IntelliMouse
+       000b  Natural Keyboard Elite
+       000e  SideWinder® Freestyle Pro
+       0014  Digital Sound System 80
+       001a  SideWinder Precision Racing Wheel
+       001b  SideWinder Force Feedback 2 Joystick
+       001c  Internet Keyboard Pro
+       001d  Natural Keyboard Pro
+       001e  IntelliMouse Explorer
+       0023  Trackball Optical
+       0024  Trackball Explorer
+       0025  IntelliEye Mouse
+       0026  SideWinder GamePad Pro
+       0027  SideWinder PnP GamePad
+       0028  SideWinder Dual Strike
+       0029  IntelliMouse Optical
+       002b  Internet Keyboard Pro
+       002d  Internet Keyboard
+       002f  Integrated Hub
+       0033  Sidewinder Strategic Commander
+       0034  SideWinder Force Feedback Wheel
+       0038  SideWinder Precision 2
+       0039  IntelliMouse Optical
+       003b  SideWinder Game Voice
+       003c  SideWinder Joystick
+       0040  Wheel Mouse Optical
+       0047  IntelliMouse Explorer 3.0
+       0048  Office Keyboard 1.0A
+       0053  Optical Mouse
+       0059  Wireless IntelliMouse Explorer
+       005c  Office Keyboard (106/109)
+       005f  Wireless MultiMedia Keyboard
+       0061  Wireless MultiMedia Keyboard (106/109)
+       0063  Wireless Natural MultiMedia Keyboard
+       0065  Wireless Natural MultiMedia Keyboard (106/109)
+       006a  Wireless Optical Mouse (IntelliPoint)
+       006d  eHome Remote Control Keyboard keys
+       006e  MN510 802.11b Adapter
+       006f  Smart Display Reference Device
+       0070  Wireless MultiMedia Keyboard
+       0071  Wireless MultiMedia Keyboard (106/109)
+       0072  Wireless Natural MultiMedia Keyboard
+       0073  Wireless Natural MultiMedia Keyboard (106/109)
+       007a  10/100 USB NIC
+       007d  Notebook Optical Mouse
+       007e  Wireless Transceiver for Bluetooth
+       0080  Digital Media Pro Keyboard
+       0083  Basic Optical Mouse
+       0084  Basic Optical Mouse
+       008a  Wireless Keyboard and Mouse
+       008b  Dual Receiver Wireless Mouse (IntelliPoint)
+       008c  Wireless Intellimouse Explorer 2.0
+       0095  IntelliMouse Explorer 4.0 (IntelliPoint)
+       009c  Wireless Transceiver for Bluetooth 2.0
+       00a0  eHome Infrared Receiver
+       00b0  Digital Media Pro Keyboard
+       00b9  Wireless Optical Mouse 3.0
+       00bb  Fingerprint Reader
+       00bc  Fingerprint Reader
+       00bd  Fingerprint Reader
+       00c2  Wireless Adapter MN-710
+       00c9  MTP Device
+       00ce  Generic PPC Flash device
+       00d1  Optical Mouse with Tilt Wheel
+       00da  eHome Infrared Receiver
+       00db  Natural Ergonomic Keyboard 4000 V1.0
+       00e1  Wireless Laser Mouse 6000 Reciever
+       00f4  LifeCam VX-6000.
+       00f5  LifeCam VX-3000.
+       00f7  LifeCam VX-1000.
+       00f8  LifeCam NX-6000.
+       0202  Xbox Controller
+       0280  XBox Device
+       0284  Xbox DVD Playback Kit
+       0285  Xbox Controller S
+       0288  Xbox Controller S Hub
+       0289  Xbox Controller S
+       028b  Xbox360 DVD Emulator
+       028d  Xbox360 Memory Unit 64MB
+       028e  Xbox360 Controller
+       028f  Xbox360 Wireless Controller
+       0290  Xbox360 Performance Pipe (PIX)
+       0292  Xbox360 Wireless Networking Adapter
+       029c  Xbox360 HD-DVD Drive
+       029d  Xbox360 HD-DVD Drive
+       029e  Xbox360 HD-DVD Memory Unit
+       0400  Windows Powered Pocket PC 2002
+       0401  Windows Powered Pocket PC 2002
+       0402  Windows Powered Pocket PC 2002
+       0403  Windows Powered Pocket PC 2002
+       0404  Windows Powered Pocket PC 2002
+       0405  Windows Powered Pocket PC 2002
+       0406  Windows Powered Pocket PC 2002
+       0407  Windows Powered Pocket PC 2002
+       0408  Windows Powered Pocket PC 2002
+       0409  Windows Powered Pocket PC 2002
+       040a  Windows Powered Pocket PC 2002
+       040b  Windows Powered Pocket PC 2002
+       040c  Windows Powered Pocket PC 2002
+       040d  Windows Powered Pocket PC 2002
+       040e  Windows Powered Pocket PC 2002
+       040f  Windows Powered Pocket PC 2002
+       0410  Windows Powered Pocket PC 2002
+       0411  Windows Powered Pocket PC 2002
+       0412  Windows Powered Pocket PC 2002
+       0413  Windows Powered Pocket PC 2002
+       0414  Windows Powered Pocket PC 2002
+       0415  Windows Powered Pocket PC 2002
+       0416  Windows Powered Pocket PC 2002
+       0417  Windows Powered Pocket PC 2002
+       0432  Windows Powered Pocket PC 2003
+       0433  Windows Powered Pocket PC 2003
+       0434  Windows Powered Pocket PC 2003
+       0435  Windows Powered Pocket PC 2003
+       0436  Windows Powered Pocket PC 2003
+       0437  Windows Powered Pocket PC 2003
+       0438  Windows Powered Pocket PC 2003
+       0439  Windows Powered Pocket PC 2003
+       043a  Windows Powered Pocket PC 2003
+       043b  Windows Powered Pocket PC 2003
+       043c  Windows Powered Pocket PC 2003
+       043d  Becker Traffic Assist Highspeed 7934
+       043e  Windows Powered Pocket PC 2003
+       043f  Windows Powered Pocket PC 2003
+       0440  Windows Powered Pocket PC 2003
+       0441  Windows Powered Pocket PC 2003
+       0442  Windows Powered Pocket PC 2003
+       0443  Windows Powered Pocket PC 2003
+       0444  Windows Powered Pocket PC 2003
+       0445  Windows Powered Pocket PC 2003
+       0446  Windows Powered Pocket PC 2003
+       0447  Windows Powered Pocket PC 2003
+       0448  Windows Powered Pocket PC 2003
+       0449  Windows Powered Pocket PC 2003
+       044a  Windows Powered Pocket PC 2003
+       044b  Windows Powered Pocket PC 2003
+       044c  Windows Powered Pocket PC 2003
+       044d  Windows Powered Pocket PC 2003
+       044e  Windows Powered Pocket PC 2003
+       044f  Windows Powered Pocket PC 2003
+       0450  Windows Powered Pocket PC 2003
+       0451  Windows Powered Pocket PC 2003
+       0452  Windows Powered Pocket PC 2003
+       0453  Windows Powered Pocket PC 2003
+       0454  Windows Powered Pocket PC 2003
+       0455  Windows Powered Pocket PC 2003
+       0456  Windows Powered Pocket PC 2003
+       0457  Windows Powered Pocket PC 2003
+       0458  Windows Powered Pocket PC 2003
+       0459  Windows Powered Pocket PC 2003
+       045a  Windows Powered Pocket PC 2003
+       045b  Windows Powered Pocket PC 2003
+       045c  Windows Powered Pocket PC 2003
+       045d  Windows Powered Pocket PC 2003
+       045e  Windows Powered Pocket PC 2003
+       045f  Windows Powered Pocket PC 2003
+       0460  Windows Powered Pocket PC 2003
+       0461  Windows Powered Pocket PC 2003
+       0462  Windows Powered Pocket PC 2003
+       0463  Windows Powered Pocket PC 2003
+       0464  Windows Powered Pocket PC 2003
+       0465  Windows Powered Pocket PC 2003
+       0466  Windows Powered Pocket PC 2003
+       0467  Windows Powered Pocket PC 2003
+       0468  Windows Powered Pocket PC 2003
+       0469  Windows Powered Pocket PC 2003
+       046a  Windows Powered Pocket PC 2003
+       046b  Windows Powered Pocket PC 2003
+       046c  Windows Powered Pocket PC 2003
+       046d  Windows Powered Pocket PC 2003
+       046e  Windows Powered Pocket PC 2003
+       046f  Windows Powered Pocket PC 2003
+       0470  Windows Powered Pocket PC 2003
+       0471  Windows Powered Pocket PC 2003
+       0472  Windows Powered Pocket PC 2003
+       0473  Windows Powered Pocket PC 2003
+       0474  Windows Powered Pocket PC 2003
+       0475  Windows Powered Pocket PC 2003
+       0476  Windows Powered Pocket PC 2003
+       0477  Windows Powered Pocket PC 2003
+       0478  Windows Powered Pocket PC 2003
+       0479  Windows Powered Pocket PC 2003
+       047a  Windows Powered Pocket PC 2003
+       047b  Windows Powered Pocket PC 2003
+       04c8  Windows Powered Smartphone 2002
+       04c9  Windows Powered Smartphone 2002
+       04ca  Windows Powered Smartphone 2002
+       04cb  Windows Powered Smartphone 2002
+       04cc  Windows Powered Smartphone 2002
+       04cd  Windows Powered Smartphone 2002
+       04ce  Windows Powered Smartphone 2002
+       04d7  Windows Powered Smartphone 2003
+       04d8  Windows Powered Smartphone 2003
+       04d9  Windows Powered Smartphone 2003
+       04da  Windows Powered Smartphone 2003
+       04db  Windows Powered Smartphone 2003
+       04dc  Windows Powered Smartphone 2003
+       04dd  Windows Powered Smartphone 2003
+       04de  Windows Powered Smartphone 2003
+       04df  Windows Powered Smartphone 2003
+       04e0  Windows Powered Smartphone 2003
+       04e1  Windows Powered Smartphone 2003
+       04e2  Windows Powered Smartphone 2003
+       04e3  Windows Powered Smartphone 2003
+       04e4  Windows Powered Smartphone 2003
+       04e5  Windows Powered Smartphone 2003
+       04e6  Windows Powered Smartphone 2003
+       04e7  Windows Powered Smartphone 2003
+       04e8  Windows Powered Smartphone 2003
+       04e9  Windows Powered Smartphone 2003
+       04ea  Windows Powered Smartphone 2003
+       0708  Transceiver v 3.0 for Bluetooth
+       070a  Charon Bluetooth Dongle (DFU)
+       930a  ISOUSB.SYS Intel 82930 Isochronous IO Test Board
+       fff8  Keyboard
+0460  Ace Cad Enterprise Co., Ltd
+0461  Primax Electronics, Ltd
+       0300  G2-300 Scanner
+       0301  G2E-300 Scanner
+       0302  G2-300 #2 Scanner
+       0303  G2E-300 #2 Scanner
+       0340  Colorado 9600 Scanner
+       0341  Colorado 600u Scanner
+       0345  Visioneer 6200 Scanner
+       0346  Memorex Maxx 6136u Scanner
+       0347  Primascan Colorado 2600u/Visioneer 4400 Scanner
+       0360  Colorado 19200 Scanner
+       0361  Colorado 1200u Scanner
+       0363  VistaScan Astra 3600(ENG)
+       0364  LG Electronics Scanworks 600U Scanner
+       0365  VistaScan Astra 3600(ENG)
+       0366  6400
+       0367  VistaScan Astra 3600(ENG)
+       0371  Visioneer Onetouch 8920 Scanner
+       0374  UMAX Astra 2500
+       0375  VistaScan Astra 3600(ENG)
+       0377  Medion MD 5345 Scanner
+       0378  VistaScan Astra 3600(ENG)
+       037b  Medion MD 6190 Scanner
+       037c  VistaScan Astra 3600(ENG)
+       0380  G2-600 Scanner
+       0381  ReadyScan 636i Scanner
+       0382  G2-600 #2 Scanner
+       0383  G2E-600 Scanner
+       038a  UMAX Astra 3000/3600
+       038b  Xerox 2400 Onetouch
+       038c  UMAX Astra 4100
+       0392  Medion/Lifetec/Tevion/Cytron MD 6190
+       03a8  9420M
+       0813  IBM UltraPort Camera
+       0815  Micro Innovations WebCam
+       0819  Fujifilm IX-30 Camera [webcam mode]
+       081a  Fujifilm IX-30 Camera [storage mode]
+       081c  Elitegroup ECS-C11 Camera
+       081d  Elitegroup ECS-C11 Storage
+       0a00  Web Cam 320
+       4d01  Comfort Keyboard
+       4d02  Mouse-in-a-Box
+       4d03  Kensington Mouse-in-a-box
+       4d04  Mouse
+       4d06  Balless Mouse (HID)
+       4d2a  PoPo Elixir Mouse (HID)
+       4d2b  Wireless Laser Mini Mouse (HID)
+       4d2c  PoPo Mini Pointer Mouse (HID)
+       4d2e  Optical Mobile Mouse (HID)
+0463  MGE UPS Systems
+       0001  UPS
+       ffff  UPS
+0464  AMP/Tycoelectronics Corp.
+0467  AT&T Paradyne
+0468  Wieson Technologies Co., Ltd
+046a  Cherry GmbH
+       0001  My3000 Keyboard
+       0003  My3000 Hub
+       0004  CyBoard Keyboard
+       0005  XX33 SmartCard Reader Keyboard
+       0010  SmartBoard XX44
+       0023  Cymotion Master Linux Keyboard
+       002d  SmartTerminal XX44
+       003e  SmartTerminal ST-2xxx
+046b  American Megatrends, Inc.
+       0001  Keyboard
+       0101  PS/2 Keyboard, Mouse & Joystick Ports
+       0301  USB 1.0 Hub
+       0500  Serial & Parallel Ports
+046c  Toshiba Corp., Digital Media Equipment
+046d  Logitech, Inc.
+       0082  Acer Aspire 5672 Webcam
+       0200  WingMan Extreme Joystick
+       0203  M2452 Keyboard
+       0301  M4848 Mouse
+       0401  HP PageScan
+       0402  NEC PageScan
+       040f  Logitech/Storm PageScan
+       0430  Mic (Cordless)
+       0801  QuickCam Home
+       0810  QuickCam Pro
+       0820  QuickCam VC
+       0830  QuickClip
+       0840  QuickCam Express
+       0850  QuickCam Web
+       0870  QuickCam Express
+       0890  QuickCam Traveler
+       0892  OrbiCam
+       0894  CrystalCam
+       0895  QuickCam for Dell Notebooks
+       0896  OrbiCam
+       0897  QuickCam for Dell Notebooks
+       0899  QuickCam for Dell Notebooks
+       08a0  QuickCam IM
+       08a1  QuickCam IM with sound
+       08a2  Labtec WebCam Pro
+       08a3  QuickCam QuickCam Chat
+       08a6  QuickCam IM
+       08a7  QuickCam Image
+       08a9  Notebook Deluxe
+       08aa  Labtec Notebooks
+       08ac  QuickCam Cool
+       08ad  QuickCam Communicate STX
+       08ae  Quickcam for Notebooks
+       08af  QuickCam Easy/Cool
+       08b0  QuickCam 3000 Pro [pwc]
+       08b1  QuickCam Notebook Pro
+       08b2  QuickCam Pro 4000
+       08b3  QuickCam Zoom
+       08b4  QuickCam Zoom
+       08b5  QuickCam Sphere
+       08b9  QuickCam IM
+       08bd  Microphone (Pro 4000)
+       08c0  QuickCam Pro 3000
+       08c1  QuickCam Fusion
+       08c2  QuickCam PTZ
+       08c3  Camera (Notebooks Pro)
+       08c5  QuickCam Pro 5000
+       08c6  QuickCam for DELL Notebooks
+       08c9  QuickCam Ultra Vision
+       08ca  Mic (Fusion)
+       08cb  Mic (Notebooks Pro)
+       08cc  Mic (PTZ)
+       08ce  QuickCam Pro 5000
+       08cf  QuickCam UpdateMe
+       08d0  QuickCam Express
+       08d7  QuickCam Communicate STX
+       08d8  QuickCam for Notebook Deluxe
+       08d9  QuickCam IM/Connect
+       08da  QuickCam Messanger
+       08dd  QuickCam for Notebooks
+       08e0  QuickCam Express
+       08e1  Labtec WebCam
+       08f0  QuickCam Messenger
+       08f1  QuickCam Express
+       08f2  Microphone (Messenger)
+       08f3  QuickCam Express
+       08f4  Labtec WebCam
+       08f5  QuickCam Messenger Communicate
+       08f6  Quickcam Messenger Plus
+       0900  ClickSmart 310
+       0901  ClickSmart 510
+       0903  ClickSmart 820
+       0905  ClickSmart 820
+       0910  QuickCam Cordless
+       0920  QuickCam Express
+       0921  Labtec WebCam
+       0922  QuickCam Live
+       0928  Quickcam Express
+       0929  Labtec WebCam Pro
+       092a  QuickCam for Notebooks
+       092b  Labtec WebCam Plus
+       092c  QuickCam Chat
+       092d  QuickCam Express / Go
+       092e  QuickCam Chat
+       092f  QuickCam Express Plus
+       0950  Pocket Camera
+       0960  ClickSmart 420
+       0970  Pocket750
+       0990  QuickCam Pro 9000
+       0991  QuickCam Pro for Notebooks
+       0992  QuickCam Communicate Deluxe
+       0994  QuickCam Orbit/Sphere AF
+       09b0  OrbiCam
+       09c0  QuickCam for Dell Notebooks Mic
+       09c1  QuickCam Deluxe for Notebooks
+       0a01  USB Headset
+       0a02  Premium Stereo USB Headset 350
+       0a03  Logitech USB Microphone
+       0a04  V20 portable speakers (USB powered)
+       0b02  BT Mini-Receiver (HID proxy mode)
+       8801  Video Camera
+       b305  BT Mini-Receiver
+       bfe4  Premium Optical Wheel Mouse
+       c000  N43 [Pilot Mouse]
+       c001  N48/M-BB48 [FirstMouse Plus]
+       c002  M-BA47 [MouseMan Plus]
+       c003  MouseMan
+       c004  WingMan Gaming Mouse
+       c005  WingMan Gaming Wheel Mouse
+       c00b  MouseMan Wheel
+       c00c  Optical Wheel Mouse
+       c00d  MouseMan Wheel+
+       c00e  M-BJ58/M-BJ69 Optical Wheel Mouse
+       c00f  MouseMan Traveler/Mobile
+       c011  Optical MouseMan
+       c012  Mouseman Dual Optical
+       c014  Corded Workstation Mouse
+       c015  Corded Workstation Mouse
+       c016  M-UV69a/HP M-UV96 Optical Wheel Mouse
+       c018  Optical Wheel Mouse
+       c019  Optical Tilt Wheel Mouse
+       c01a  M-BQ85 Optical Wheel Mouse
+       c01b  MX310 Optical Mouse
+       c01c  Optical Mouse
+       c01d  MX510 Optical Mouse
+       c01e  MX518 Optical Mouse
+       c024  MX300 Optical Mouse
+       c025  MX500 Optical Mouse
+       c030  iFeel Mouse
+       c031  iFeel Mouse+
+       c032  MouseMan iFeel
+       c033  iFeel MouseMan+
+       c034  MouseMan Optical
+       c035  Mouse
+       c036  Mouse
+       c037  Mouse
+       c038  Mouse
+       c03d  M-BT69a Pilot Optical Mouse
+       c03e  Premium Optical Wheel Mouse
+       c03f  UltraX Optical Mouse
+       c040  Corded Tilt-Wheel Mouse
+       c043  MX320 Laser Mouse
+       c044  LX3 Optical Mouse
+       c045  Optical Mouse
+       c046  RX1000 Laser Mouse
+       c047  Laser Mouse
+       c049  G5 Laser Mouse
+       c050  RX 250 Optical Mouse
+       c051  G3 (MX518) Optical Mouse
+       c053  Laser Mouse
+       c101  UltraX Media Remote
+       c201  WingMan Extreme Joystick with Throttle
+       c202  WingMan Formula
+       c207  WingMan Extreme Digital 3D
+       c208  WingMan Gamepad Extreme
+       c209  WingMan Gamepad
+       c20a  WingMan RumblePad
+       c20b  WingMan Action Pad
+       c20c  WingMan Precision
+       c20d  WingMan Attack 2
+       c20e  WingMan Formula GP
+       c211  iTouch Cordless Reciever
+       c212  WingMan Extreme Digital 3D
+       c213  J-UH16 (Freedom 2.4 Cordless Joystick)
+       c214  ATK3 (Attack III Joystick)
+       c215  Extreme 3D Pro
+       c216  Dual Action Gamepad
+       c218  Logitech RumblePad 2 USB
+       c219  Cordless RumblePad 2
+       c21a  Precision Gamepad
+       c221  G15 Keyboard / Keyboard
+       c222  G15 Keyboard / LCD
+       c223  G15 Keyboard / USB Hub
+       c281  WingMan Force
+       c283  WingMan Force 3D
+       c285  WingMan Strike Force 3D
+       c286  Force 3D Pro
+       c291  WingMan Formula Force
+       c293  WingMan Formula Force GP
+       c294  Driving Force
+       c295  Momo Force Steering Wheel
+       c298  Driving Force Pro
+       c2a0  Wingman Force Feedback Mouse
+       c2a1  WingMan Force Feedback Mouse
+       c301  iTouch Keyboard
+       c302  iTouch Pro Keyboard
+       c303  iTouch Keyboard
+       c305  Internet Keyboard
+       c307  Internet Keyboard
+       c308  Internet Navigator Keyboard
+       c309  Internet Keyboard
+       c30a  iTouch Composite
+       c30c  Internet Keys (X)
+       c30d  Internet Keys
+       c30e  UltraX Keys (X)
+       c30f  Logicool HID-Compliant Keyboard (106 key)
+       c315  Classic New Touch Keyboard
+       c316  HID-Compliant Keyboard
+       c401  TrackMan Marble Wheel
+       c402  Marble Mouse (2-button)
+       c403  Turbo TrackMan Marble FX
+       c404  TrackMan Wheel
+       c408  Marble Mouse (4-button)
+       c501  Cordless Mouse Receiver
+       c502  Cordless Mouse & iTouch Keys
+       c503  Cordless Mouse+Keyboard Receiver
+       c504  Cordless Mouse+Keyboard Receiver
+       c505  Cordless Mouse+Keyboard Receiver
+       c506  MX-700 Cordless Mouse Receiver
+       c508  Cordless Trackball
+       c509  Cordless Keyboard
+       c50a  Cordless Mouse
+       c50b  Cordless Desktop Optical
+       c50d  Cordless Mouse
+       c50e  MX-1000 Cordless Mouse Receiver
+       c510  Cordless Mouse
+       c512  LX-700 Cordless Desktop Receiver
+       c513  MX3000 Cordless Desktop Receiver
+       c514  Cordless Mouse
+       c517  LX710 Cordless Desktop Laser
+       c518  MX610 Laser Cordless Mouse
+       c51a  MX Revolution/G7 Cordless Mouse
+       c521  MX620 Laser Cordless Mouse
+       c625  3Dconnexion Space Pilot 3D Mouse
+       c626  3DConnexion Space Navigator 3D Mouse
+       c627  3DConnexion Space Explorer 3D Mouse
+       c702  Cordless Presenter
+       c703  Elite Keyboard Y-RP20 + Mouse MX900 (Bluetooth)
+       c707  Bluetooth wireless hub
+       c708  Bluetooth wireless hub
+       c709  BT Mini-Receiver (HCI mode)
+       c70a  MX5000 Cordless Desktop
+       c70b  BT Mini-Receiver (HID proxy mode)
+       c70c  BT Mini-Receiver (HID proxy mode)
+       c70d  Bluetooth wireless hub
+       c70e  MX1000 Bluetooth Laser Mouse
+       c70f  Bluetooth wireless hub
+       c712  Bluetooth wireless hub
+       c715  Bluetooth wireless hub
+       c71a  Bluetooth wireless hub
+       c71d  Bluetooth wireless hub
+       c720  Bluetooth wireless hub
+       ca03  MOMO Racing
+       ca04  Formula Vibration Feedback Wheel
+       d001  QuickCam Pro
+046e  Behavior Tech. Computer Corp.
+       0100  Keyboard
+       3001  Mass Storage Device
+       3002  Mass Storage Device
+       3003  Mass Storage Device
+       3005  Mass Storage Device
+       3008  Mass Storage Device
+       5250  KeyMaestro Multimedia Keyboard
+       5273  KeyMaestro Multimedia Keyboard
+       5308  KeyMaestro Keyboard
+       5408  KeyMaestro Multimedia Keyboard/Hub
+       5720  Smart Card Reader
+       6782  BTC 7932 mouse+keyboard
+046f  Crystal Semiconductor
+0471  Philips
+       0101  DSS350 Digital Speaker System
+       0104  DSS330 Digital Speaker System [uda1321]
+       0105  UDA1321
+       0160  MP3 Player
+       0161  MP3 Player
+       0201  Hub
+       0222  Creative Nomad Jukebox
+       0302  PCA645VC WebCam [pwc]
+       0303  PCA646VC WebCam [pwc]
+       0304  Askey VC010 WebCam [pwc]
+       0307  PCVC675K WebCam [pwc]
+       0308  PCVC680K WebCam [pwc]
+       030b  PC VGA Camera (Vesta Fun)
+       030c  PCVC690K WebCam [pwc]
+       0310  PCVC730K WebCam [pwc]
+       0311  PCVC740K ToUcam Pro [pwc]
+       0312  PCVC750K WebCam [pwc]
+       0314  DMVC 1000K
+       0316  DMVC 2000K Video Capture
+       0321  FunCam
+       0325  SPC 200NC PC Camera
+       0326  SPC 300NC PC Camera
+       0327  WebCam SPC 6000 NC (WebCam w/ mic)
+       0329  ORITE CCD Webcam(PC370R)
+       0401  Semiconductors CICT Keyboard
+       0402  PS/2 Mouse on Semiconductors CICT Keyboard
+       0406  15 inch Detachable Monitor
+       0407  10 inch Mobile Monitor
+       0471  Digital Speaker System
+       0601  OVU1020 IR Dongle (Kbd+Mouse)
+       0602  ATI Remote Wonder II Input Device
+       0603  ATI Remote Wonder II Controller
+       0608  eHome Infrared Receiver
+       060a  TSU9600 Remote Control
+       060e  RF Dongle
+       0619  TSU9400 Remote Control
+       0700  Semiconductors CICT Hub
+       0701  150P1 TFT Display
+       0809  AVNET Bluetooth Device
+       0811  JR24 CDRW
+       0815  eHome Infrared Receiver
+       1120  Creative Rhomba MP3 player
+       1125  Nike psa[128max Player
+       1137  HDD065 MP3 player
+       1201  Arima Bluetooth Device
+       1230  Wireless Adapter 11g
+       1232  SNU6500 Wireless Adapter
+       1233  Wireless Adapter Bootloader Download
+       1236  SNU5600
+       1237  TalkTalk SNU5630NS/05 Wireless Adapter
+       1552  ISP 1581 Hi-Speed USB MPEG2 Encoder Reference Kit
+       1801  Diva MP3 player
+       200a  Wireless Network Adapter
+       200f  802.11n Wireless Adapter
+       485d  Senselock SenseIV v2.x
+0472  Chicony Electronics Co., Ltd
+       0065  PFU-65 Keyboard
+0473  Sanyo Information Business Co., Ltd
+0474  Sanyo Electric Co., Ltd
+       0110  Digital Voice Recorder R200
+       0217  Xacti J2
+       022f  C5 Digital Media Camera (mass storage mode)
+       0230  C5 Digital Media Camera (PictBridge mode)
+       0231  C5 Digital Media Camera (PC control mode)
+       0401  Optical Drive
+       0701  SCP-4900 Cellphone
+       071f  Usb Com Port Enumerator
+0475  Relisys/Teco Information System
+       0100  NEC Petiscan
+       0103  Eclipse 1200U/Episode
+       0210  Scorpio Ultra 3
+0476  AESP
+0477  Seagate Technology, Inc.
+0478  Connectix Corp.
+       0001  QuickCam
+       0002  QuickClip
+       0003  QuickCam Pro
+0479  Advanced Peripheral Laboratories
+047a  Semtech Corp.
+       0004  ScreenCoder UR7HCTS2-USB
+047b  Silitek Corp.
+       0001  Keyboard
+       0002  Keyboard and Mouse
+       00f9  SK-1789u Keyboard
+       0101  BlueTooth Keyboard and Mouse
+       020b  SK-3105 SmartCard Reader
+       050e  Internet Compact Keyboard
+       1000  Trust Office Scan USB 19200
+       1002  HP ScanJet 4300c Parallel Port
+047c  Dell Computer Corp.
+047d  Kensington
+       1001  Mouse*in*a*Box
+       1002  Expert Mouse Pro
+       1003  Orbit TrackBall
+       1004  MouseWorks
+       1005  TurboBall
+       1006  TurboRing
+       1009  Orbit TrackBall for Mac
+       1012  PocketMouse
+       1013  Mouse*in*a*Box Optical Pro
+       1014  Expert Mouse Pro Wireless
+       1015  Expert Mouse
+       1016  ADB/USB Orbit
+       1018  Studio Mouse
+       101d  Mouse*in*a*Box Optical Pro
+       101e  Studio Mouse Wireless
+       101f  PocketMouse Pro
+       1020  Expert Mouse Trackball
+       1021  Expert Mouse Wireless
+       1022  Orbit Optical
+       1023  Pocket Mouse Pro Wireless
+       1024  PocketMouse
+       1025  Mouse*in*a*Box Optical Elite Wireless
+       1026  Pocket Mouse Pro
+       1027  StudioMouse
+       1028  StudioMouse Wireless
+       1029  Mouse*in*a*Box Optical Elite
+       102a  Mouse*in*a*Box Optical
+       102b  PocketMouse
+       102c  Iridio
+       102d  Pilot Optical
+       102e  Pilot Optical Pro
+       102f  Pilot Optical Pro Wireless
+       104a  PilotMouse Mini Retractable
+       105d  PocketMouse Bluetooth
+       105e  Bluetooth EDR Dongle
+       1061  PocketMouse Grip
+       1062  PocketMouse Max
+       1063  PocketMouse Max Wireless
+       1064  PocketMouse 2.0 Wireless
+       1065  PocketMouse 2.0
+       1066  PocketMouse Max Glow
+       1067  ValueMouse
+       1068  ValueOpt White
+       1069  ValueOpt Black
+       106a  PilotMouse Laser Wireless Mini
+       106b  PilotMouse Laser - 3 Button
+       106c  PilotMouse Laser - Gaming
+       106d  PilotMouse Laser - Wired
+       106e  PilotMouse Micro Laser
+       1070  ValueOpt Travel
+       1071  ValueOpt RF TX
+       1072  PocketMouse Colour
+       1073  PilotMouse Laser - 6 Button
+       1074  PilotMouse Laser Wireless Mini
+       1075  SlimBlade Presenter Media Mouse
+       1076  SlimBlade Media Mouse
+       1077  SlimBlade Presenter Mouse
+       1152  Bluetooth EDR Dongle
+       2002  Optical Elite Wireless
+       2010  Wireless Presentation Remote
+       2021  PilotBoard Wireless
+       2030  PilotBoard Wireless
+       2034  SlimBlade Media Notebook Set
+       4003  Gravis Xterminator Digital Gamepad
+       4005  Gravis Eliminator GamePad Pro
+       4006  Gravis Eliminator AfterShock
+       4007  Gravis Xterminator Force
+       4008  Gravis Destroyer TiltPad
+       5001  Cabo I Camera
+       5002  VideoCam CABO II
+       5003  VideoCam
+047e  Agere Systems, Inc. (Lucent)
+       0300  ORiNOCO Card
+       1001  USS720 Parallel Port
+       2892  Systems Soft Modem
+       bad1  Lucent 56k Modem
+       f101  Atlas Modem
+047f  Plantronics, Inc.
+       0101  Bulk Driver
+       0301  Bulk Driver
+       0ca1  USB DSP v4 Audio Interface
+0480  Toshiba America Info. Systems, Inc.
+       0001  InTouch Module
+       0004  InTouch Module
+       0011  InTouch Module
+       0014  InTouch Module
+0481  Zenith Data Systems
+0482  Kyocera Corp.
+       000e  FS-1020D Printer
+       0100  Finecam S3x
+       0101  Finecam S4
+       0103  Finecam S5
+       0105  Finecam L3
+       0106  Finecam
+       0107  Digital Camera Device
+       0108  Digital Camera Device
+       0203  AH-K3001V
+       0204  iBurst Terminal
+0483  SGS Thomson Microelectronics
+       0137  BeWAN ADSL USB ST (blue or green)
+       1307  Cytronix 6in1 card reader
+       163d  Cool Icam Digi-MP3
+       2015  TouchChip® Fingerprint Reader
+       2016  Fingerprint Reader
+       2017  Biometric Smart Card Reader
+       2018  BioSimKey
+       2302  Portable Flash Device (PFD)
+       4810  ISDN adapter
+       481d  BT Digital Access adapter
+       5000  ST Micro Bluetooth Device
+       5001  ST Micro Bluetooth Device
+       7270  ST Micro Serial Bridge
+       7554  56k SoftModem
+       ff10  Swann ST56 Modem
+0484  Specialix
+0485  Nokia Monitors
+0486  ASUS Computers, Inc.
+0487  Stewart Connector
+0488  Cirque Corp.
+0489  Foxconn / Hon Hai
+       0502  SmartMedia Card Reader Firmware Loader
+       0503  SmartMedia Card Reader
+048a  S-MOS Systems, Inc.
+048c  Alps Electric Ireland, Ltd
+048d  Integrated Technology Express, Inc.
+048f  Eicon Tech.
+0490  United Microelectronics Corp.
+0491  Capetronic
+       0003  Taxan Monitor Control
+0492  Samsung SemiConductor, Inc.
+0493  MAG Technology Co., Ltd
+0495  ESS Technology, Inc.
+0496  Micron Electronics
+0497  Smile International
+0498  Capetronic (Kaohsiung) Corp.
+0499  Yamaha Corp.
+       1000  UX256 MIDI I/F
+       1001  MU1000
+       1002  MU2000
+       1003  MU500
+       1004  UW500
+       1005  MOTIF6
+       1006  MOTIF7
+       1007  MOTIF8
+       1008  UX96 MIDI I/F
+       1009  UX16 MIDI I/F
+       100a  EOS BX
+       100c  UC-MX
+       100d  UC-KX
+       100e  S08
+       100f  CLP-150
+       1010  CLP-170
+       1011  P-250
+       1012  TYROS
+       1013  PF-500
+       1014  S90
+       1015  MOTIF-R
+       1016  MDP-5
+       1017  CVP-204
+       1018  CVP-206
+       1019  CVP-208
+       101a  CVP-210
+       101b  PSR-1100
+       101c  PSR-2100
+       101d  CLP-175
+       101e  PSR-K1
+       101f  EZ-J24
+       1020  EZ-250i
+       1021  MOTIF ES 6
+       1022  MOTIF ES 7
+       1023  MOTIF ES 8
+       1024  CVP-301
+       1025  CVP-303
+       1026  CVP-305
+       1027  CVP-307
+       1028  CVP-309
+       1029  CVP-309GP
+       102a  PSR-1500
+       102b  PSR-3000
+       102e  ELS-01/01C
+       1030  PSR-295/293
+       1031  DGX-205/203
+       1032  DGX-305
+       1033  DGX-505
+       2000  DGP-7
+       2001  DGP-5
+       3001  YST-MS55D USB Speaker
+       4000  NetVolante RTA54i Broadband&ISDN Router
+       4001  NetVolante RTW65b Broadband Wireless Router
+       4002  NetVolante RTW65i Broadband&ISDN Wireless Router
+       4004  NetVolante RTA55i Broadband VoIP Router
+       5000  CS1D
+       5001  DSP1D
+       5002  DME32
+       5003  DM2000
+       5004  02R96
+       5005  ACU16-C
+       5006  NHB32-C
+       5007  DM1000
+       5008  01V96
+       5009  SPX2000
+       500a  PM5D
+       500b  DME64N
+       500c  DME24N
+       6001  CRW2200UX Lightspeed 2 External CD-RW Drive
+       7000  DTX
+       7010  UB99
+049a  Gandalf Technologies, Ltd
+049b  Curtis Computer Products
+049c  Acer Advanced Labs, Inc.
+       0002  Keyboard (???)
+049d  VLSI Technology
+049f  Compaq Computer Corp.
+       0002  InkJet Color Printer
+       0003  iPAQ PocketPC
+       000e  Internet Keyboard
+       0012  InkJet Color Printer
+       0018  PA-1/PA-2 MP3 Player
+       0019  InkJet Color Printer
+       001a  S4 100 Scanner
+       001e  IJ650 Inkjet Printer
+       001f  WL215 Adapter
+       0021  S200 Scanner
+       0027  Bluetooth Multiport Module by Compaq
+       002a  1400P Inkjet Printer
+       002b  A3000
+       002c  Lexmark X125
+       0032  802.11b Adapter [ipaq h5400]
+       0033  802.11b Adapter [orinoco]
+       0036  Bluetooth Multiport Module
+       0051  KU-0133 Easy Access Interner Keyboard
+       0076  Wireless LAN MultiPort W200
+       0080  GPRS Multiport
+       0086  Bluetooth Device
+       504a  Personal Jukebox PJB100
+       505a  Linux-USB "CDC Subset" Device, or Itsy (experimental)
+       8511  iPAQ Networking 10/100 Ethernet [pegasus2]
+04a0  Digital Equipment Corp.
+04a1  SystemSoft Corp.
+       fff0  Telex Composite Device
+04a2  FirePower Systems
+04a3  Trident Microsystems, Inc.
+04a4  Hitachi, Ltd
+       0004  DVD-CAM DZ-MV100A Camcorder
+       001e  DVDCAM USB HS Interface
+04a5  Acer Peripherals Inc. (now BenQ Corp.)
+       0001  Keyboard
+       0002  API Ergo K/B
+       0003  API Generic K/B Mouse
+       12a6  AcerScan C310U
+       1a20  Prisa 310U
+       1a2a  Prisa 620U
+       2022  Prisa 320U/340U
+       2040  Prisa 620UT
+       205e  ScanPrisa 640BU
+       2060  Prisa 620U+/640U
+       207e  Prisa 640BU
+       209e  ScanPrisa 640BT
+       20ae  S2W 3000U
+       20b0  S2W 3300U/4300U
+       20be  Prisa 640BT
+       20c0  Prisa 1240UT
+       20de  S2W 4300U+
+       20f8  Benq 5000
+       20fc  Benq 5000
+       20fe  SW2 5300U
+       2137  Benq 5150/5250
+       2202  Benq 7400UT
+       3003  Benq WebCam
+       3008  Benq 1500
+       300a  Benq 3410
+       300c  Benq 1016
+       3019  Benq DC C40
+       4000  P30 Composite Device
+       6001  Mass Storage Device
+       6002  Mass Storage Device
+       6003  ATA/ATAPI Adapter
+       6004  Mass Storage Device
+       6005  Mass Storage Device
+       6006  Mass Storage Device
+       6007  Mass Storage Device
+       6008  Mass Storage Device
+       6009  Mass Storage Device
+       600a  Mass Storage Device
+       600b  Mass Storage Device
+       600c  Mass Storage Device
+       600d  Mass Storage Device
+       600e  Mass Storage Device
+       600f  Mass Storage Device
+       6010  Mass Storage Device
+       6011  Mass Storage Device
+       6012  Mass Storage Device
+       6013  Mass Storage Device
+       6014  Mass Storage Device
+       6015  Mass Storage Device
+       6125  MP3 Player
+       6180  MP3 Player
+       6200  MP3 Player
+       7500  Hi-Speed Mass Storage Device
+       9000  AWL300 Wireless Adapter
+       9001  AWL400 Wireless Adapter
+       9213  Kbd Hub
+04a6  Nokia Display Products
+       00b9  Audio
+       0180  Hub Type P
+       0181  HID Monitor Controls
+04a7  Visioneer
+       0100  StrobePro
+       0101  Strobe Pro Scanner (1.01)
+       0102  StrobePro Scanner
+       0211  OneTouch 7600 Scanner
+       0221  OneTouch 5300 Scanner
+       0223  OneTouch 8200
+       0224  OneTouch 4800 USB/Microtek Scanport 3000
+       0225  VistaScan Astra 3600(ENG)
+       0226  OneTouch 5300 USB
+       0229  OneTouch 7100
+       022a  OneTouch 6600
+       022c  OneTouch 9000/9020
+       0231  6100 Scanner
+       0311  6200 EPP/USB Scanner
+       0321  OneTouch 8100 EPP/USB Scanner
+       0331  OneTouch 8600 EPP/USB Scanner
+       0341  6400
+       0361  VistaScan Astra 3600(ENG)
+       0362  OneTouch 9320
+       0371  OneTouch 8700/8920
+       0380  OneTouch 7700
+       0382  Photo Port 7700
+       0390  9650
+       03a0  Xerox 4800 One Touch
+       0410  OneTouch Pro 8800/8820
+       0421  9450 USB
+       0423  9750 Scanner
+       0424  Strobe XP 450
+       0425  Strobe XP 100
+       0426  Strobe XP 200
+       0427  Strobe XP 100
+       0444  OneTouch 7300
+       0445  CardReader 100
+       0446  Xerox DocuMate 510
+       0447  XEROX DocuMate 520
+       0448  XEROX DocuMate 250
+       0449  Xerox DocuMate 252
+       044a  Xerox 6400
+       044c  Xerox DocuMate 262
+       0474  Strobe XP 300
+       0475  Xerox DocuMate 272
+       0478  Strobe XP 220
+       0479  Strobe XP 470
+       047a  9450
+       047b  9650
+       047d  9420
+       0480  9520
+       048f  Strobe XP 470
+       0491  Strobe XP 450
+       0493  9750
+       0494  Strobe XP 120
+       0497  Patriot 430
+       0498  Patriot 680
+       0499  Patriot 780
+       049b  Strobe XP 100
+       04a0  7400
+04a8  Multivideo Labs, Inc.
+       0101  Hub
+       0303  Peripheral Switch
+       0404  Peripheral Switch
+04a9  Canon, Inc.
+       1005  BJ Printer Hub
+       1035  PD Printer Storage
+       1050  BJC-8200
+       1051  BJC-3000 Color Printer
+       1052  BJC-6100
+       1053  BJC-6200
+       1054  BJC-6500
+       1055  BJC-85
+       1056  BJC-2110 Color Printer
+       1057  LR1
+       105a  BJC-55
+       105b  S600 Printer
+       105c  S400
+       105d  S450 Printer
+       105e  S800
+       1062  S500 Printer
+       1063  S4500
+       1064  S300 Printer
+       1065  S100
+       1066  S630
+       1067  S900
+       1068  S9000
+       1069  S820
+       106a  S200 Printer
+       106b  S520 Printer
+       106d  S750 Printer
+       106e  S820D
+       1070  S530D
+       1072  I850 Printer
+       1073  I550 Printer
+       1074  S330 Printer
+       1076  i70
+       1077  i950
+       107a  S830D
+       107b  i320
+       107c  i470D
+       107d  i9100
+       107e  i450
+       107f  i860
+       1082  i350
+       1084  i250
+       1085  i255
+       1086  i560
+       1088  i965
+       108a  i455
+       108b  i900D
+       108c  i475D
+       108d  PIXMA iP2000
+       108f  i80
+       1090  i9900 Photo Printer
+       1091  PIXMA iP1500
+       1093  PIXMA iP4000
+       1094  PIXMA iP3000x Printer
+       1095  PIXMA iP6000D
+       1097  PIXMA iP5000
+       1098  PIXMA iP1000
+       1099  PIXMA iP8500
+       109c  PIXMA iP4000R
+       109d  iP90
+       10a0  PIXMA iP1600 Printer
+       10a2  iP4200
+       10a4  iP5200R
+       10a5  iP5200
+       10a7  iP6210D
+       10a8  iP6220D
+       10a9  iP6600D
+       10b6  PIXMA iP4300 Printer
+       1404  W6400PG
+       1405  W8400PG
+       150f  BIJ2350 PCL
+       1510  BIJ1350 PCL
+       1512  BIJ1350D PCL
+       1601  DR-2080C Scanner
+       1607  DR-6080 Scanner
+       1700  PIXMA MP110 Scanner
+       1701  PIXMA MP130 Scanner
+       1702  MP410 Composite
+       1703  MP430 Composite
+       1704  MP330 Composite
+       1706  PIXMA MP750 Scanner
+       1707  PIXMA MP780 Scanner
+       1708  PIXMA MP760 Scanner
+       1709  PIXMA MP150 Scanner
+       170a  PIXMA MP170 Scanner
+       170b  PIXMA MP450 Scanner
+       170c  PIXMA MP500 Scanner
+       170d  PIXMA MP800 Scanner
+       170e  MP800R
+       1710  MP950
+       1712  MP530
+       1713  PIXMA MP830 Scanner
+       1714  MP160
+       1715  MP180 Storage
+       1716  MP460 Composite
+       1717  MP510
+       1718  MP600 Storage
+       171a  MP810 Storage
+       171b  MP960
+       1721  MP210 ser
+       1723  MP470 ser
+       1725  MP610 ser
+       1726  MP970 ser
+       1727  MX300 ser
+       1728  MX310 ser
+       1729  MX700 ser
+       172b  MP140 ser
+       2200  CanoScan LiDE 25
+       2201  CanoScan FB320U
+       2202  CanoScan FB620U
+       2204  CanoScan FB630U
+       2205  CanoScan FB1210U
+       2206  CanoScan N650U/N656U
+       2207  CanoScan 1220U
+       2208  CanoScan D660U
+       220a  CanoScan D2400UF
+       220b  CanoScan D646U
+       220c  CanoScan D1250U2
+       220d  CanoScan N670U/N676U/LiDE 20
+       220e  CanoScan N1240U/LiDE 30
+       220f  CanoScan 8000F
+       2210  CanoScan 9900F
+       2212  CanoScan 5000F
+       2213  CanoScan LiDE 50/LiDE 35/LiDE 40
+       2214  CanoScan LiDE 80
+       2215  CanoScan 3000/3000F/3000ex
+       2216  CanoScan 3200F
+       2217  CanoScan 5200F
+       2219  CanoScan 9950F
+       221b  CanoScan 4200F
+       221c  CanoScan LiDE 60
+       221e  CanoScan 8400F
+       221f  CanoScan LiDE 500F
+       2220  CanoScan LIDE 25
+       2225  CanoScan LiDE 70
+       2228  CanoScan 4400F
+       2602  MultiPASS C555
+       2603  MultiPASS C755
+       260a  CAPT Printer
+       260e  LBP-2000
+       2610  MPC600F
+       2611  SmartBase MPC400
+       2612  MultiPASS C855
+       2617  CAPT Printer
+       261a  iR1600
+       261b  iR1610
+       261c  iC2300
+       261f  MPC200 Printer
+       2621  iR2000
+       2622  iR2010
+       2623  FAX-B180C
+       2629  FAXPHONE L75
+       262b  LaserShot LBP-1120 Printer
+       262d  iR C3200
+       262f  MultiPASS MP730
+       2630  MultiPASS MP700
+       2631  LASER CLASS 700
+       2632  FAX-L2000
+       2635  MPC190
+       2637  iR C6800
+       2638  iR C3100
+       263c  Smartbase MP360
+       263d  MP370
+       263e  MP390 FAX
+       263f  MP375
+       2646  MF5530 Scanner Device V1.9.1
+       2647  MF5550 Composite
+       264e  MF5630
+       264f  MF5650 (FAX)
+       2650  iR 6800C EUR
+       2651  iR 3100C EUR
+       2655  FP-L170/MF350/L380/L398
+       2659  MF8100
+       265b  CAPT Printer
+       265c  iR C3220
+       265d  MF5730
+       265e  MF5750
+       265f  MF5770
+       2660  MF3110
+       2663  iR3570/iR4570
+       2664  iR2270/iR2870
+       2665  iR C2620
+       2666  iR C5800
+       2667  iR85PLUS
+       2669  iR105PLUS
+       266a  CAPT Device
+       266b  iR8070
+       266c  iR9070
+       266d  iR 5800C EUR
+       266e  CAPT Device
+       266f  iR2230
+       2670  iR3530
+       2671  iR5570/iR6570
+       2672  iR C3170
+       2673  iR 3170C EUR
+       2674  L120
+       2675  iR2830
+       2676  CAPT Device
+       2677  iR C2570
+       2678  iR 2570C EUR
+       2679  CAPT Device
+       267a  iR2016
+       267b  iR2020
+       267d  MF7100 Series
+       2684  MF3200 Series
+       2687  iR4530
+       2688  LBP3460
+       268c  iR C6870
+       268d  iR 6870C EUR
+       268e  iR C5870
+       268f  iR 5870C EUR
+       2691  iR7105
+       26a3  MF4100 Series
+       26b5  MF4200 Series
+       3041  PowerShot S10
+       3042  CanoScan FS4000US Film Scanner
+       3043  PowerShot S20
+       3044  EOS D30
+       3045  PowerShot S100
+       3046  IXY Digital
+       3047  Digital IXUS
+       3048  PowerShot G1
+       3049  PowerShot Pro90 IS
+       304a  CP-10
+       304b  IXY Digital 300
+       304c  PowerShot S300
+       304d  Digital IXUS 300
+       304e  PowerShot A20
+       304f  PowerShot A10
+       3050  PowerShot unknown 1
+       3051  PowerShot S110
+       3052  Digital IXUS V
+       3055  PowerShot G2
+       3056  PowerShot S40
+       3057  PowerShot S30
+       3058  PowerShot A40
+       3059  PowerShot A30
+       305b  ZR45MC Digital Camcorder
+       305c  PowerShot unknown 2
+       3060  EOS D60
+       3061  PowerShot A100
+       3062  PowerShot A200
+       3063  CP-100
+       3065  PowerShot S200
+       3066  Digital IXUS 330
+       3067  MV550i Digital Video Camera
+       3069  PowerShot G3
+       306a  Digital unknown 3
+       306b  MVX2i Digital Video Camera
+       306c  PowerShot S45
+       306d  PowerShot S45 PtP Mode
+       306e  PowerShot G3 (normal mode)
+       306f  PowerShot G3 (ptp)
+       3070  PowerShot S230
+       3071  PowerShot S230 (ptp)
+       3072  PowerShot SD100 / Digital IXUS II (ptp)
+       3073  PowerShot A70 (ptp)
+       3074  PowerShot A60 (ptp)
+       3075  IXUS 400 Camera
+       3076  PowerShot A300
+       3077  PowerShot S50
+       3078  ZR70MC Digital Camcorder
+       307a  MV650i (normal mode)
+       307b  MV630i Digital Video Camera
+       307c  MV630i (normal mode)
+       307d  CP-300
+       307f  Optura 20
+       3080  MVX150i (normal mode) / Optura 20 (normal mode)
+       3081  Optura 10
+       3082  MVX100i / Optura 10
+       3083  EOS 10D
+       3084  EOS 300D / EOS Digital Rebel
+       3085  PowerShot G5
+       3087  Elura 50 (PTP mode)
+       3088  Elura 50 (normal mode)
+       308d  MVX3i
+       308e  FV M1 (normal mode) / MVX 3i (normal mode) / Optura Xi (normal mode)
+       3093  Optura 300
+       3096  IXY DV M2 (normal mode) / MVX 10i (normal mode)
+       3099  EOS 300D (ptp)
+       309a  PowerShot A80
+       309b  Digital IXUS (ptp)
+       309c  PowerShot S1 IS
+       309d  Camera
+       309f  Camera
+       30a0  Camera
+       30a1  Camera
+       30a2  Camera
+       30a8  Elura 60E/Optura 40 (ptp)
+       30a9  MVX25i (normal mode) / Optura 40 (normal mode)
+       30b1  PowerShot S70 (normal mode) / PowerShot S70 (PTP mode)
+       30b2  PowerShot S60 (normal mode) / PowerShot S60 (PTP mode)
+       30b3  PowerShot G6 (normal mode) / PowerShot G6 (PTP mode)
+       30b4  PowerShot S500
+       30b5  PowerShot A75
+       30b6  Digital IXUS II2  / Digital IXUS II2 (PTP mode) / PowerShot SD110 (PTP mode) / PowerShot SD110 Digital ELPH
+       30b7  PowerShot A400 / PowerShot A400 (PTP mode)
+       30b8  PowerShot A310 / PowerShot A310 (PTP mode)
+       30b9  Powershot A85
+       30ba  PowerShot S410 Digital Elph
+       30bb  PowerShot A95
+       30bd  CP-220
+       30be  CP-330
+       30bf  Digital IXUS 40
+       30c0  Digital IXUS 30 (PTP mode) / PowerShot SD200 (PTP mode)
+       30c1  Digital IXUS 50 (normal mode) / IXY Digital 55 (normal mode) / PowerShot A520 (PTP mode) / PowerShot SD400 (normal mode)
+       30c2  PowerShot A510 (normal mode) / PowerShot A510 (PTP mode)
+       30c4  Digital IXUS i5 (normal mode) / IXY Digital L2 (normal mode) / PowerShot SD20 (normal mode)
+       30ea  EOS 1D Mark II (PTP mode)
+       30eb  EOS 20D
+       30ec  EOS 20D (ptp)
+       30ee  EOS 350D
+       30ef  EOS 350D (ptp)
+       30f0  PowerShot S2 IS (PTP mode)
+       30f2  Digital IXUS 700 (normal mode) / Digital IXUS 700 (PTP mode) / IXY Digital 600 (normal mode) / PowerShot SD500 (normal mode) / PowerShot SD500 (PTP mode)
+       30f6  SELPHY CP400
+       30f8  Powershot A430
+       30f9  PowerShot A410 (PTP mode)
+       30fc  PowerShot A620 (PTP mode)
+       30fd  PowerShot A610 (normal mode)/PowerShot A610 (PTP mode)
+       30ff  Digital IXUS 55 (PTP mode)/PowerShot SD450 (PTP mode)
+       310b  SELPHY CP600
+       310e  Digital IXUS 50 (PTP mode)
+       3116  Digital IXUS 750 (PTP mode)
+       3117  PowerShot A700
+       3138  PowerShot A710 IS
+       315a  PowerShot G9
+       3176  PowerShot A590
+       31ff  Digital IXUS 55
+04aa  DaeWoo Telecom, Ltd
+04ab  Chromatic Research
+04ac  Micro Audiometrics Corp.
+04ad  Dooin Electronics
+       2501  Bluetooth Device
+04af  Winnov L.P.
+04b0  Nikon Corp.
+       0102  Coolpix 990
+       0103  Coolpix 880
+       0104  Coolpix 995
+       0106  Coolpix 775
+       0107  Coolpix 5000
+       0108  Coolpix 2500
+       0109  Coolpix 2500 (ptp)
+       010a  Coolpix 4500
+       010b  Coolpix 4500 (ptp)
+       010d  Coolpix 5700 (ptp)
+       010e  Coolpix 4300 (storage)
+       010f  Coolpix 4300 (ptp)
+       0110  Coolpix 3500 (Sierra Mode)
+       0111  Coolpix 3500 (ptp)
+       0112  Coolpix 885 (ptp)
+       0113  Coolpix 5000 (ptp)
+       0114  Coolpix 3100 (storage)
+       0115  Coolpix 3100 (ptp)
+       0117  Coolpix 2100 (ptp)
+       0119  Coolpix 5400 (ptp)
+       011d  Coolpix 3700 (ptp)
+       0121  Coolpix 3200 (ptp)
+       0122  Coolpix 2200 (ptp)
+       0126  Coolpix 8800
+       0129  Coolpix 4800 (ptp)
+       012c  Coolpix 4100 (storage)
+       012d  Coolpix 4100 (ptp)
+       012e  Coolpix 5600 (ptp)
+       0130  Coolpix 4600 (ptp)
+       0135  Coolpix 5900 (ptp)
+       0136  Coolpix 7900 (storage)
+       0137  Coolpix 7900 (ptp)
+       0141  Coolpix P2 (storage)
+       0142  Coolpix P2 (ptp)
+       0163  Coolpix P5100 (ptp)
+       0169  Coolpix P50 (ptp)
+       0202  Coolpix SQ (ptp)
+       0203  Coolpix 4200 (mass storage mode)
+       0204  Coolpix 4200 (ptp)
+       0205  Coolpix 5200 (storage)
+       0206  Coolpix 5200 (ptp)
+       0301  Coolpix 2000 (storage)
+       0302  Coolpix 2000 (ptp)
+       0402  DSC D100 (ptp)
+       0403  D2H (mass storage mode)
+       0404  D2H SLR (ptp)
+       0405  D70 (mass storage mode)
+       0406  DSC D70 (ptp)
+       0408  D2X SLR (ptp)
+       0409  D50 digital camera
+       040a  D50 (ptp)
+       040c  D2Hs
+       040e  DSC D70s (ptp)
+       0413  D40 (mass storage mode)
+       4000  Coolscan LS 40 ED
+       4001  LS 50 ED/Coolscan V ED
+       4002  Super Coolscan LS-5000 ED
+04b1  Pan International
+04b3  IBM Corp.
+       3003  Rapid Access III Keyboard
+       3004  Media Access Pro Keyboard
+       300a  Rapid Access IIIe Keyboard
+       3016  UltraNav Keyboard Hub
+       3018  UltraNav Keyboard
+       301b  SK-8815 Keyboard
+       301c  Enhanced Performance Keyboard
+       3020  Enhanced Performance Keyboard
+       3100  NetVista Mouse
+       3103  ScrollPoint Pro Mouse
+       3104  ScrollPoint Wireless Mouse
+       3105  ScrollPoint Optical (HID)
+       3107  ThinkPad 800dpi Optical Travel Mouse
+       3108  800dpi Optical Mouse w/ Scroll Point
+       3109  Optical ScrollPoint Pro Mouse
+       310b  Red Wheel Mouse
+       4427  Portable CD ROM
+       4482  Serial Converter
+       4525  Double sided CRT
+       4550  NVRAM (128 KB)
+       4554  Cash Drawer
+       4580  Hub w/ NVRAM
+       4581  4800-2xx Hub w/ Cash Drawer
+       4604  Keyboard w/ Card Reader
+       4671  4820 LCD w/ MSR/KB
+04b4  Cypress Semiconductor Corp.
+       0000  Dacal DC-101 CD Library
+       0001  Mouse
+       0002  CY7C63x0x Thermometer
+       0101  Keyboard/Hub
+       0102  Keyboard with APM
+       0130  MyIRC Remote Receiver
+       0bad  MetaGeek Wi-Spy
+       1002  CY7C63001 R100 FM Radio
+       1006  Human Interface Device
+       4381  SCAPS USC-1 Scanner Controller
+       4611  Storage Adapter FX2 (CY)
+       4616  Flash Disk (TPP)
+       5500  HID->COM RS232 Adapter
+       6370  ViewMate Desktop Mouse CC2201
+       6560  CY7C65640 USB-2.0 "TetraHub"
+       6830  CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI
+       6831  Storage Adapter ISD-300LP (CY)
+       7417  Wireless PC Lock
+       8613  CY7C68013 EZ-USB FX2 USB 2.0 Development Kit
+       8614  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       cc04  Centor USB RACIA-ALVAR USB PORT
+       cc06  Centor-P RACIA-ALVAR USB PORT
+       d5d5  CY7C63x0x Zoltrix Z-Boxer GamePad
+       f000  CY30700 Licorice evaluation board
+04b5  ROHM LSI Systems USA, LLC
+04b6  Hint Corp.
+04b7  Compal Electronics, Inc.
+04b8  Seiko Epson Corp.
+       0001  Stylus Color 740 / Photo 750
+       0002  ISD Smart Cable for Mac
+       0003  ISD Smart Cable
+       0004  Printer
+       0005  Stylus D88+
+       0006  Printer
+       0007  Printer
+       0101  Perfection 636
+       0102  GT-2200
+       0103  Perfection 610
+       0104  Perfection 1200
+       0105  StylusScan 2000
+       0106  Stylus Scan 2500
+       0107  Expression 1600U
+       0109  Expression 1640 XL
+       010a  Perfection 1640SU
+       010b  Perfection 1240
+       010c  Perfection 640
+       010e  Perfection 1680
+       010f  Perfection 1250
+       0110  Perfection 1650
+       0112  Perfection 2450
+       0114  Perfection 660
+       0116  Perfection 3170 (GT-9400)
+       0118  Perfection 4180 (GF-F600)
+       0119  Perfection 4490 Photo
+       011a  1000 ICS
+       011b  Perfection 2400 Photo
+       011c  Perfection 3200
+       011d  Perfection 1260 Photo
+       011e  Perfection 1660 Photo
+       011f  Perfection 1670
+       0120  Perfection 1270 scanner
+       0121  Perfection 2480 Photo
+       0122  Perfection 3590 scanner
+       0126  GT-15000 (ES-7000)
+       0128  Perfection 4870 (GT-X700)
+       0129  Expression 10000XL (ES-10000G)
+       012a  Perfection 4990 Photo scanner
+       012b  GT-2500 (ES-H300)
+       012c  Perfection V350 (GT-F700)
+       012d  Perfection V10/V100 (GT-S600/F650)
+       012f  Perfection V350 (GT-F700)
+       0202  Receipt Printer M129C
+       0401  CP 800 Digital Camera
+       0402  PhotoPC 850z
+       0403  PhotoPC 3000z
+       0509  JVC PIX-MC10
+       0601  Stylus Photo 875DC Card Reader
+       0602  Stylus Photo 895 Card Reader
+       0801  Stylus CX5200/CX5400/CX6600
+       0802  Stylus CX3200
+       0803  Printer (Composite Device)
+       0804  Storage Device
+       0805  Stylus CX6400
+       0806  Stylus Photo RX600/610
+       0807  Stylus Photo RX500/510
+       0808  Stylus CX5200
+       0809  Storage Device
+       080a  Storage Device
+       080c  ME100
+       080d  Stylus CX4500/4600
+       080e  CX-3500/3600/3650 MFP
+       080f  Stylus Photo RX425 scanner
+       0810  Stylus Photo RX700 (PM-A900)
+       0811  Stylus Photo RX620 all-in-one
+       0812  MFP Composite Device
+       0813  Stylus CX6500/6600
+       0814  (PM-A700)
+       0815  AcuLaser CX11 (LP-A500)
+       0816  Printer (Composite Device)
+       0817  (LP-M5500)
+       0818  Stylus CX3700/CX3800/DX3800
+       0819  Stylus CX4700/CX4800/DX4800 (PX-A750)
+       081a  Stylus Photo RX520/RX530 (PM-A750)
+       081b  MFP Composite Device
+       081c  Stylus Photo RX640/RX650 (PM-A890)
+       081d  (PM-A950)
+       081e  MFP Composite Device
+       081f  Stylus CX7700/7800
+       0820  CX4200 MP scanner
+       0821  MFP Composite Device
+       0822  Storage Device
+       0823  MFP Composite Device
+       0824  Storage Device
+       0825  MFP Composite Device
+       0826  Storage Device
+       0827  Stylus Photo RX560/580/590 (PM-A820)
+       0828  (PM-A970)
+       0829  (PM-T990)
+       082a  (PM-A920)
+       082b  Stylus DX5050
+       082c  Storage Device
+       082d  Storage Device
+       082e  0x082e  DX-60x0 MFP scanner
+       082f  Stylus DX4050
+       0830  Stylus CX2800/CX2900/ME200
+       0831  MFP Composite Device
+       0832  MFP Composite Device
+       0833  (LP-M5600)
+       0834  MFP Composite Device
+       0835  AcuLaser CX21
+       0836  MFP Composite Device
+       0837  MFP Composite Device
+       0838  CX7300/CX7400/DX7400
+       0839  CX8300/CX8400/DX8400
+       083a  CX9300F/CX9400Fax/DX9400F
+       083b  MFP Composite Device
+       083c  MFP Composite Device
+       083d  MFP Composite Device
+       083e  MFP Composite Device
+       083f  Stylus DX4450
+04b9  Rainbow Technologies, Inc.
+       0300  SafeNet USB SuperPro/UltraPro
+       1000  iKey 1000 Token
+       1001  iKey 1200 Token
+       1002  iKey Token
+       1003  iKey Token
+       1004  iKey Token
+       1005  iKey Token
+       1006  iKey Token
+       1200  iKey 2000 Token
+       1201  iKey Token
+       1202  iKey 2032 Token
+       1203  iKey Token
+       1204  iKey Token
+       1205  iKey Token
+       1206  iKey Token
+       1300  iKey 3000 Token
+       1301  iKey 3000
+       1302  iKey Token
+       1303  iKey Token
+       1304  iKey Token
+       1305  iKey Token
+       1306  iKey Token
+04ba  Toucan Systems, Ltd
+04bb  I-O Data Device, Inc.
+       0101  USB2-IDE/ATAPI Bridge Adapter
+       0201  USB2-IDE/ATAPI Bridge Adapter
+       0204  DVD Multi-plus unit iU-CD2
+       0206  DVD Multi-plus unit DVR-UEH8
+       0301  Storage Device
+       0314  USB-SSMRW SD-card
+       0319  USB2-IDE/ATAPI Bridge Adapter
+       031a  USB2-IDE/ATAPI Bridge Adapter
+       031b  USB2-IDE/ATAPI Bridge Adapter
+       031e  USB-SDRW SD-card
+       0502  Nogatech Live! (BT)
+       0901  USB ETT
+       0904  ET/TX Ethernet [pegasus]
+       0913  ET/TX-S Ethernet [pegasus2]
+       0919  USB WN-B11
+       0922  IOData AirPort WN-B11/USBS 802.11b
+       0930  ETG-US2
+       0937  WN-WAG/USL Wireless LAN Adapter
+       0938  WN-G54/USL Wireless LAN Adapter
+       0a03  Serial USB-RSAQ1
+       0a07  USB2-iCN Adapter
+       0a08  USB2-iCN Adapter
+       0c01  FM-10 Pro Disk
+04bd  Toshiba Electronics Taiwan Corp.
+04be  Telia Research AB
+04bf  TDK Corp.
+       0100  MediaReader CF
+       0115  USB-PDC Adapter UPA9664
+       0116  USB-cdmaOne Adapter UCA1464
+       0117  USB-PHS Adapter UHA6400
+       0118  USB-PHS Adapter UPA6400
+       0135  MediaReader Dual
+       0202  73S1121F Smart Card Reader-
+       0309  Bluetooth USB dongle
+       030a  IBM Bluetooth Ultraport Module
+       030b  Bluetooth Device
+       030c  Ultraport Bluetooth Device
+       0310  Integrated Bluetooth
+       0311  Integrated Bluetooth Device
+       0317  Bluetooth UltraPort Module from IBM
+       0318  IBM Integrated Bluetooth
+       0319  Bluetooth Adapter
+       0320  Bluetooth Adapter
+       0321  Bluetooth Device
+       0a28  INDI AV-IN Device
+04c1  U.S. Robotics (3Com)
+       0020  56K Voice Pro
+       0022  56K Voice Pro
+       007e  ISDN TA
+       0082  OfficeConnect Analog Modem
+       008f  Pro ISDN TA
+       0097  OfficeConnect Analog
+       009d  HomeConnect WebCam [vicam]
+       00a9  ISDN Pro TA-U
+       00b9  HomeConnect IDSL Modem
+       3021  56k Voice FaxModem Pro
+04c2  Methode Electronics Far East PTE, Ltd
+04c3  Maxi Switch, Inc.
+       1102  Mouse
+       2102  Mouse
+04c4  Lockheed Martin Energy Research
+04c5  Fujitsu, Ltd
+       1029  fi-4010c Scanner
+       1033  fi-4110CU
+       1041  fi-4120c Scanner
+       1042  fi-4220c Scanner
+       105b  AH-F401U Air H device
+       1096  fi-5110EOX
+       1097  fi-5110C
+       10ae  fi-4120C2
+       10af  fi-4220C2
+       10e0  fi-5120c Scanner
+       10e1  fi-5220C
+       10e7  fi-5900C
+       10fe  S500
+04c6  Toshiba America Electronic Components
+04c7  Micro Macro Technologies
+04c8  Konica Corp.
+       0720  Digital Color Camera
+       0721  e-miniD Camera
+       0722  e-mini
+       0723  KD-200Z Camera
+       0726  KD-310Z Camera
+       0728  Revio C2 Mass Storage Device
+       0729  Revio C2 Digital Camera
+       072c  Revio KD20M
+       072d  Revio KD410Z
+04ca  Lite-On Technology Corp.
+       1766  HID Monitor Controls
+       9304  Hub
+04cb  Fuji Photo Film Co., Ltd
+       0100  FinePix 30i/40i/50i, A101/201, 1300/2200, 1400/2400/2600/2800/4500/4700/4800/4900/6800/6900 Zoom
+       0103  FinePix NX-500/NX-700 printer
+       0104  FinePix A101, 2600/2800/4800/6800 Zoom (PC CAM)
+       0108  FinePix F601 Zoom (DSC)
+       0109  FinePix F601 Zoom (PC CAM)
+       010a  FinePix S602 (Pro) Zoom (DSC)
+       010b  FinePix S602 (Pro) Zoom (PC CAM)
+       010d  FinePix Digital Camera 020531
+       010e  FinePix F402 Zoom (DSC)
+       010f  FinePix F402 Zoom (PC CAM)
+       0110  FinePix M603 Zoom (DSC)
+       0111  FinePix M603 Zoom (PC CAM)
+       0112  FinePix A202, A200 Zoom (DSC)
+       0113  FinePix A202, A200 Zoom (PC CAM)
+       0114  FinePix F401 Zoom (DSC)
+       0115  FinePix F401 Zoom (PC CAM)
+       0116  FinePix A203 Zoom (DSC)
+       0117  FinePix A203 Zoom (PC CAM)
+       0118  FinePix A303 Zoom (DSC)
+       0119  FinePix A303 Zoom (PC CAM)
+       011a  FinePix S304/3800 Zoom (DSC)
+       011b  FinePix S304/3800 Zoom (PC CAM)
+       011c  FinePix A204/2650 Zoom (DSC)
+       011d  FinePix A204/2650 Zoom (PC CAM)
+       0120  FinePix F700 Zoom (DSC)
+       0121  FinePix F700 Zoom (PC CAM)
+       0122  FinePix F410 Zoom (DSC)
+       0123  FinePix F410 Zoom (PC CAM)
+       0124  FinePix A310 Zoom (DSC)
+       0125  FinePix A310 Zoom (PC CAM)
+       0126  FinePix A210 Zoom (DSC)
+       0127  FinePix A210 Zoom (PC CAM)
+       0128  FinePix A205(S) Zoom (DSC)
+       0129  FinePix A205(S) Zoom (PC CAM)
+       012a  FinePix F610 Zoom (DSC)
+       012b  FinePix Digital Camera 030513
+       012c  FinePix S7000 Zoom (DSC)
+       012d  FinePix S7000 Zoom (PC CAM)
+       012f  FinePix Digital Camera 030731
+       0130  FinePix S5000 Zoom (DSC)
+       0131  FinePix S5000 Zoom (PC CAM)
+       013b  FinePix Digital Camera 030722
+       013c  FinePix S3000 Zoom (DSC)
+       013d  FinePix S3000 Zoom (PC CAM)
+       013e  FinePix F420 Zoom (DSC)
+       013f  FinePix F420 Zoom (PC CAM)
+       0142  FinePix S7000 Zoom (PTP)
+       0148  FinePix A330 Zoom (DSC)
+       0149  FinePix A330 Zoom (UVC)
+       014a  FinePix A330 Zoom (PTP)
+       014b  FinePix A340 Zoom (DSC)
+       0159  FinePix F710 Zoom (DSC)
+       0165  FinePix S3500 Zoom (DSC)
+       0168  FinePix E500 Zoom (DSC)
+       0169  FinePix E500 Zoom (UVC)
+       016b  FinePix E510 Zoom (DSC)
+       016c  FinePix E510 Zoom (PC CAM)
+       016e  FinePix S5500 Zoom (DSC)
+       016f  FinePix S5500 Zoom (UVC)
+       0171  FinePix E550 Zoom (DSC)
+       0172  FinePix E550 Zoom (PTP)
+       0177  FinePix F10 (DSC)
+       0179  Finepix F10 (PTP)
+       0186  FinePix S5200/S5600 Zoom (DSC)
+       0188  FinePix S5200/S5600 Zoom (PTP)
+       018e  FinePix S9500 Zoom (DSC)
+       018f  FinePix S9500 Zoom (PTP)
+       0192  FinePix E900 Zoom (DSC)
+       0193  FinePix E900 Zoom (PTP)
+       019b  FinePix F30 (PTP)
+       01bf  FinePix F6000fd/S6500fd Zoom (PTP)
+       01c0  FinePix F20 (PTP)
+       01c1  FinePix F31fd (PTP)
+       01c4  FinePix S5700 Zoom (PTP)
+       01c5  FinePix F40fd (PTP)
+       01c6  FinePix A820 Zoom (PTP)
+       01d2  FinePix A800 Zoom (PTP)
+       01d5  FinePix F47 (PTP)
+04cc  Philips Semiconductors
+       1122  Hub
+       1521  USB 2.0 Hub
+       8116  Camera
+04cd  Tatung Co. Of America
+04ce  ScanLogic Corp.
+       0002  SL11R-IDE IDE Bridge
+       0100  USB2PRN Printer Class
+       0300  Phantom 336CX - C3 scanner
+       04ce  SL11DEMO, VID: 0x4ce, PID: 0x4ce
+       07d1  SL11R, VID: 0x4ce, PID: 0x07D1
+04cf  Myson Century, Inc.
+       0800  MTP800 Mass Storage Device
+       8810  CS8810 Mass Storage Device
+       8811  CS8811 Mass Storage Device
+       8813  CS8813 Mass Storage Device
+       8818  USB2.0 to ATAPI Bridge Controller
+04d0  Digi International
+04d1  ITT Canon
+04d2  Altec Lansing Technologies
+       0070  ADA70 Speakers
+       0305  Non-Compliant Audio Device
+       0311  ADA-310 Speakers
+       2060  Claritel-i750 - vp
+       ff05  ADA-305 Speakers
+       ff47  Lansing HID Audio Controls
+       ff49  Lansing HID Audio Controls
+04d3  VidUS, Inc.
+04d4  LSI Logic, Inc.
+04d5  Forte Technologies, Inc.
+04d6  Mentor Graphics
+04d7  Oki Semiconductor
+       1be4  Bluetooth Device
+04d8  Microchip Technology, Inc.
+       0002  USB-LCD 2x20
+       8000  In-Circuit Debugger
+       8001  ICD2 in-circuit debugger
+04d9  Holtek Semiconductor, Inc.
+       1203  MC Industries Keyboard
+04da  Panasonic (Matsushita)
+       0901  LS-120 Camera
+       0b01  CD-R/RW Drive
+       0b03  SuperDisk 240MB
+       0d01  CD-R Drive KXL-840AN
+       0d09  CD-R Drive KXL-RW32AN
+       0d0a  CD-R Drive KXL-CB20AN
+       0d0d  CDRCB03
+       0d0e  DVD-ROM & CD-R/RW
+       0f40  Printer
+       1500  MFSUSB Driver
+       1b00  MultiMediaCard
+       2121  EB-VS6
+       2317  DVC USB-SERIAL Driver for WinXP
+       2319  NV-GS15 (webcam mode)
+       231d  DVC Web Camera Device
+       231e  DVC DV Stream Device
+       2372  Lumix DMC-FZ10 Camera
+       2374  DMC-FZ20
+04db  Hypertec Pty, Ltd
+04dc  Huan Hsin Holdings, Ltd
+04dd  Sharp Corp.
+       13a6  MFC2000
+       6006  AL-1216
+       6007  AL-1045
+       6008  AL-1255
+       6009  AL-1530CS
+       600a  AL-1540CS
+       600b  AL-1456
+       600c  AL-1555
+       600d  AL-1225
+       600e  AL-1551CS
+       600f  AR-122E
+       6010  AR-152E
+       6011  AR-157E
+       6012  SN-1045
+       6013  SN-1255
+       6014  SN-1456
+       6015  SN-1555
+       6016  AR-153E
+       6017  AR-122E N
+       6018  AR-153E N
+       6019  AR-152E N
+       601a  AR-157E N
+       601b  AL-1217
+       601c  AL-1226
+       601d  AR-123E
+       7002  DVC Ver.1.0
+       7004  VE-CG40U Digital Still Camera
+       7005  VE-CG30 Digital Still Camera
+       7007  VL-Z7S Digital Camcorder
+       8004  Zaurus SL-5000D/SL-5500 PDA
+       8005  Zaurus A-300
+       8006  Zaurus SL-B500/SL-5600 PDA
+       8007  Zaurus C-700 PDA
+       9014  IM-DR80 Portable NetMD Player
+       9031  Zaurus C-750/C-760/C-860/SL-C3000 PDA
+       9032  Zaurus SL-6000
+       903a  GSM GPRS
+       9050  Zaurus C-860 PDA
+       9056  Viewcam Z
+       9073  AM-900
+       9074  GSM GPRS
+       90a9  Sharp Composite
+       90d0  USB-to-Serial Comm. Port
+       90f2  Sharp 3G GSM USB Control
+       9120  WS004SH
+       9122  WS007SH
+       9123  W-ZERO3 ES Smartphone
+       91a3  922SH Internet Machine
+04de  MindShare, Inc.
+04df  Interlink Electronics
+04e1  Iiyama North America, Inc.
+       0201  Monitor Hub
+04e2  Exar Corp.
+04e3  Zilog, Inc.
+04e4  ACC Microelectronics
+04e5  Promise Technology
+04e6  SCM Microsystems, Inc.
+       0001  E-USB ATA Bridge
+       0002  eUSCSI SCSI Bridge
+       0003  eUSB SmartMedia Card Reader
+       0005  eUSB SmartMedia/CompactFlash Card Reader
+       0006  eUSB SmartMedia Card Reader
+       0007  Hifd
+       0009  eUSB ATA/ATAPI Adapter
+       000a  eUSB CompactFlash Adapter
+       000b  eUSCSI Bridge
+       000c  eUSCSI Bridge
+       000d  Dazzle MS
+       0012  Dazzle SD/MMC
+       0101  eUSB ATA Bridge
+       0311  Dazzle DM-CF
+       0312  Dazzle DM-SD/MMC
+       0313  Dazzle SM
+       0314  Dazzle MS
+       0322  e-Film Reader-5
+       0325  eUSB ORCA Quad Reader
+       0327  Digital Media Reader
+       03fe  DMHS2 DFU Adapter
+       0406  eUSB SmartDM Reader
+       04e6  eUSB DFU Adapter
+       04e7  STCII DFU Adapter
+       04e8  eUSBDM DFU Adapter
+       04e9  DM-E DFU Adapter
+       0500  Veridicom 5thSense Fingerprint Sensor and eUSB SmartCard
+       0701  DCS200 Loader Device
+       0702  DVD Creation Station 200
+       0703  DVC100 Loader Device
+       0704  Digital Video Creator 100
+       1001  SCR300 Smart Card Reader
+       1010  USBAT-2 CompactFlash Card Reader
+       1014  e-Film Reader-3
+       1020  USBAT ATA/ATAPI Adapter
+       2007  RSA SecurID ComboReader
+       2009  Citibank Smart Card Reader
+       200a  Reflex v.2 Smart Card Reader
+       200d  STR391 Reader
+       5111  SCR331-DI SmartCard Reader
+       5113  SCR333 SmartCard Reader
+       5114  SCR331-DI SmartCard Reader
+       5115  SCR335 SmartCard Reader
+       5116  SCR331-LC1 SmartCard Reader
+       5117  SCR3320 - Smart Card Reader
+       5118  Expresscard SIM Card Reader
+       5119  SCR3340 - ExpressCard54 Smart Card Reader
+       511b  SmartCard Reader
+       511d  SCR3311 Smart Card Reader
+       5120  SCR331-DI SmartCard Reader
+       5121  SDI010 Smart Card Reader
+       5151  SCR338 Keyboard Smart Card Reader
+       5410  SCR35xx Smart Card Reader
+       e000  SCRx31 Reader
+       e001  SCR331 SmartCard Reader
+       e003  SPR532 PinPad SmartCard Reader
+04e7  Elo TouchSystems
+       0001  TouchScreen
+       0002  Touchmonitor Interface 2600 Rev 2
+       0004  4000U CarrollTouch® Touchmonitor Interface
+       0007  2500U IntelliTouch® Touchmonitor Interface
+       0008  3000U AccuTouch® Touchmonitor Interface
+       0009  4000U CarrollTouch® Touchmonitor Interface
+       0020  Touchscreen Interface (2700)
+       0021  Touchmonitor Interface
+       0030  4500U CarrollTouch® Touchmonitor Interface
+       0032  Touchmonitor Interface
+       0033  Touchmonitor Interface
+       0041  5010 Surface Capacitive Touchmonitor Interface
+       0042  Touchmonitor Interface
+       0050  2216 AccuTouch® Touchmonitor Interface
+       0071  Touchmonitor Interface
+       0072  Touchmonitor Interface
+       0081  Touchmonitor Interface
+       0082  Touchmonitor Interface
+       00ff  Touchmonitor Interface
+04e8  Samsung Electronics Co., Ltd
+       0110  Connect3D Flash Drive
+       0111  Connect3D Flash Drive
+       1003  MP3 Player and Recorder
+       1006  SDC-200Z
+       3004  ML-4600
+       3005  Docuprint P1210
+       3008  ML-6060 laser printer
+       300c  ML-1210 Printer
+       300e  Laser Printer
+       3104  ML-3550N
+       3226  Laser Printer
+       3228  Laser Printer
+       322a  Laser Printer
+       322c  Laser Printer
+       3230  ML-1440
+       3232  Laser Printer
+       3236  ML-1450
+       3238  ML-1430
+       323a  ML-1710 Printer
+       323b  Phaser 3130
+       323c  Laser Printer
+       323d  Phaser 3120
+       323e  Laser Printer
+       3240  Laser Printer
+       3242  Laser Printer
+       3248  Color Laser Printer
+       324a  Laser Printer
+       324c  ML-1740 Printer
+       324d  Phaser 3121
+       325f  Phaser 3425 Laser Printer
+       3260  CLP-510 Color Laser Printer
+       3268  ML-1610 Mono Laser Printer
+       326c  ML-2010P Mono Laser Printer
+       3409  SCX-4216F Scanner
+       340c  SCX-5x15 Series
+       340d  SCX-6x20 Series
+       340e  MFP 560 Series
+       340f  Printing Support
+       3412  SCX-4x20 Series
+       3413  SCX-4100 Scanner
+       3415  Composite Device
+       3419  Composite Device
+       341a  Printing Support
+       341b  SCX-4200 Series
+       341c  Composite Device
+       341d  Composite Device
+       341f  Composite Device
+       3420  Composite Device
+       3605  InkJet Color Printer
+       3606  InkJet Color Printer
+       3609  InkJet Color Printer
+       3902  InkJet Color Printer
+       3903  Xerox WorkCentre XK50cx
+       390f  InkJet Color Printer
+       3911  SCX-1020 Series
+       5000  YP-MF Series
+       5001  YP-100
+       5002  YP-30
+       5003  YP-700
+       5004  YP-30
+       5005  YP-300
+       5006  YP-750
+       500d  MP3 Player
+       5010  MP3 Player
+       5011  YP-780
+       5013  YP-60
+       5015  yepp upgrade
+       501b  MP3 Player
+       503b  YP-U1 MP3 Player
+       5050  YP-U2 MP3 Player
+       507d  YP-U3 MP3 Player
+       508b  YP-S5 MP3 Player
+       5a00  YP-NEU
+       5a01  YP-NDU
+       5a03  Yepp MP3 Player
+       5a04  YP-800
+       5a08  YP-90
+       5a0f  MTP Device
+       5b01  Memory Stick Reader/Writer
+       5b02  Memory Stick Reader/Writer
+       5b03  Memory Stick Reader/Writer
+       5b04  Memory Stick Reader/Writer
+       5b05  Memory Stick Reader/Writer
+       5b11  SEW-2001u Card
+       5f00  NEXiO Sync
+       5f01  NEXiO Sync
+       5f02  NEXiO Sync
+       5f03  NEXiO Sync
+       5f04  NEXiO Sync
+       6601  Z100 Mobile Phone
+       6611  MITs Sync
+       6613  MITs Sync
+       6615  MITs Sync
+       6617  MITs Sync
+       6619  MITs Sync
+       661b  MITs Sync
+       661e  Handheld
+       6620  Handheld
+       6622  Handheld
+       6624  Handheld
+       662e  MITs Sync
+       6630  MITs Sync
+       6632  MITs Sync
+       663f  SGH-E720/SGH-E840
+       6640  Usb Modem Enumerator
+       7011  SEW-2003U Card
+       7021  Bluetooth Device
+       7061  eHome Infrared Receiver
+       7081  Human Interface Device
+       8001  Handheld
+       e020  SERI E02 SCOM 6200 UMTS Phone
+       e021  SERI E02 SCOM 6200 Virtual UARTs
+       e022  SERI E02 SCOM 6200 Flash Load Disk
+       ff30  SG_iMON
+04e9  PC-Tel, Inc.
+04ea  Brooktree Corp.
+04eb  Northstar Systems, Inc.
+04ec  Tokyo Electron Device, Ltd
+04ed  Annabooks
+04ef  Pacific Electronic International, Inc.
+04f0  Daewoo Electronics Co., Ltd
+04f1  Victor Company of Japan, Ltd
+       0001  GC-QX3 Digital Still Camera
+       0004  GR-DVL815U Digital Video Camera
+       0006  DV Camera Storage
+       0008  GZ-MG30AA/MC500E Digital Video Camera
+       0009  GR-DX25EK Digital Video Camera
+       000a  GR-D72 Digital Video Camera
+       3008  MP-PRX1 Ethernet
+04f2  Chicony Electronics Co., Ltd
+       0001  KU-8933 Keyboard
+       0002  NT68P81 Keyboard
+       0110  KU-2971 Keyboard
+       0111  KU-9908 Keyboard
+       0112  KU-8933 Keyboard with PS/2 Mouse port
+       0116  KU-2971 German Keyboard
+       0403  KU-0420 keyboard
+       a001  E-Video DC-100 Camera
+       a120  ORITE CCD Webcam(PC370R)
+       a121  ORITE CCD Webcam(PC370R)
+       a122  ORITE CCD Webcam(PC370R)
+       a123  ORITE CCD Webcam(PC370R)
+       a124  ORITE CCD Webcam(PC370R)
+       a133  Gateway Webcam
+       a204  DSC WIA Device (1300)
+       a208  DSC WIA Device (2320)
+       a209  Labtec DC-2320
+       a20a  DSC WIA Device (3310)
+       a20c  DSC WIA Device (3320)
+       a210  Audio Device
+       b009  Integrated Camera
+       b010  Integrated Camera
+       b012  1.3 MPixel UVC webcam
+       b018  Video Device
+       b022  Camera
+       b025  Camera
+       b027  Gateway Webcam
+       b028  VGA UVC WebCam
+04f3  Elan Microelectronics Corp.
+       0210  AM-400 Hama Optical Mouse
+04f4  Harting Elektronik, Inc.
+04f5  Fujitsu-ICL Systems, Inc.
+04f6  Norand Corp.
+04f7  Newnex Technology Corp.
+04f8  FuturePlus Systems
+04f9  Brother Industries, Ltd
+       0002  HL-1050 Laser Printer
+       0005  Printer
+       0006  HL-1240 Laser Printer
+       0007  HL-1250 Laser Printer
+       0008  HL-1270 Laser Printer
+       0009  Printer
+       000a  P2500 Series
+       000b  Printer
+       000c  Printer
+       000d  HL-1440 Laser Printer
+       000e  HL-1450 series
+       000f  HL-1470N series
+       0010  Printer
+       0011  Printer
+       0012  Printer
+       0013  Printer
+       0014  Printer
+       0015  Printer
+       0016  Printer
+       0017  Printer
+       0018  Printer
+       001c  Printer
+       001e  Printer
+       0020  HL-5130 series
+       0021  HL-5140 series
+       0022  HL-5150D series
+       0023  HL-5170DN series
+       0024  Printer
+       0025  Printer
+       0027  HL-2030 Laser Printer
+       0028  Printer
+       0029  Printer
+       002a  Printer
+       002b  Printer
+       002c  Printer
+       002d  Printer
+       0100  MFC8600/9650 Series
+       0101  MFC9600/9870 Series
+       0102  MFC9750/1200 Series
+       0104  MFC-8300J
+       0105  MFC-9600J
+       0106  MFC-7300C
+       0107  MFC-7400C
+       0108  MFC-9200C
+       0109  MFC-830
+       010a  MFC-840
+       010b  MFC-860
+       010c  MFC-7400J
+       010d  MFC-9200J
+       010e  MFC3100C Scanner
+       010f  MFC 5100C
+       0110  MFC4800 Scanner
+       0111  MFC 6800
+       0112  DCP1000 Port(FaxModem)
+       0113  MFC-8500
+       0114  MFC9700 Port(FaxModem)
+       0115  MFC9800 Scanner
+       0116  DCP1400 Scanner
+       0119  MFC-9660
+       011b  MFC-9880
+       011c  MFC-9760
+       011d  MFC-9070
+       011e  MFC-9180
+       011f  MFC-9160
+       0120  MFC580 Port(FaxModem)
+       0121  MFC-590
+       0122  MFC-5100J
+       0129  Imagistics 2500 (MFC-8640D clone)
+       012f  FAX-4750e
+       0132  MFC-5200C RemovableDisk
+       0135  MFC-100 Scanner
+       0136  MFC-150CL Scanner
+       013c  MFC-890 Port
+       013d  MFC-5200J Printer
+       013e  MFC-4420C RemovableDisk
+       013f  MFC-4820C RemovableDisk
+       0140  DCP-8020
+       0141  DCP-8025D
+       0142  MFC-8420
+       0143  MFC-8820D
+       0144  DCP-4020C RemovableDisk
+       0146  MFC-3220C
+       0147  FAX-1820C Printer
+       0148  MFC-3320CN Printer
+       0149  FAX-1920CN Printer
+       014a  MFC-3420C
+       014b  MFC-3820CN
+       014d  FAX-1815C Printer
+       014e  MFC-8820J
+       0150  MFC-8220 Port(FaxModem)
+       0151  MFC-8210J
+       0157  MFC-3420J Printer
+       0158  MFC-3820JN Port(FaxModem)
+       015d  MFC Composite Device
+       015e  DCP-8045D
+       015f  MFC-8440
+       0160  MFC-8840D
+       0161  MFC-210C
+       0162  MFC-420CN Remote Setup Port
+       0163  MFC-410CN RemovableDisk
+       0165  MFC-620CN
+       0166  MFC-610CLN RemovableDisk
+       0168  MFC-620CLN
+       0169  DCP-110C RemovableDisk
+       016b  DCP-310CN RemovableDisk
+       016c  FAX-2440C Printer
+       016d  MFC-5440CN
+       016e  MFC-5840CN Remote Setup Port
+       0170  FAX-1840C Printer
+       0171  FAX-1835C Printer
+       0172  FAX-1940CN Printer
+       0173  MFC-3240C Remote Setup Port
+       0174  MFC-3340CN RemovableDisk
+       017b  Imagistics sx2100
+       0180  MFC-7420
+       0181  MFC-7820N Port(FaxModem)
+       0182  Composite Device
+       0183  DCP-7020
+       0184  DCP-7025 Printer
+       0185  MFC-7220 Printer
+       0186  Composite Device
+       0187  FAX-2820 Printer
+       0188  FAX-2920 Printer
+       018a  MFC-9420CN
+       018c  DCP-115C
+       018d  DCP-116C
+       018e  DCP-117C
+       018f  DCP-118C
+       0190  DCP-120C
+       0191  DCP-315CN
+       0192  DCP-340CW
+       0193  MFC-215C
+       0194  MFC-425CN
+       0195  MFC-820CW Remote Setup Port
+       0196  MFC-820CN Remote Setup Port
+       0197  MFC-640CW
+       019a  MFC-840CLN Remote Setup Port
+       01a2  MFC-8640D
+       01a3  Composite Device
+       01a4  DCP-8065DN Printer
+       01a5  MFC-8460N Port(FaxModem)
+       01a6  MFC-8860DN Port(FaxModem)
+       01a7  MFC-8870DW Printer
+       01a8  DCP-130C
+       01a9  DCP-330C
+       01aa  DCP-540CN
+       01ab  MFC-240C
+       01ae  DCP-750CW RemovableDisk
+       01af  MFC-440CN
+       01b0  MFC-660CN
+       01b1  MFC-665CW Remote Setup Port
+       01b2  MFC-845CW Remote Setup Port
+       01b4  MFC-460CN Remote Setup Port
+       01b5  MFC-630CD
+       01b6  MFC-850CDN
+       01b7  MFC-5460CN Remote Setup Port
+       01b8  MFC-5860CN
+       01ba  MFC-3360C
+       01bd  MFC-8660DN
+       01be  DCP-750CN RemovableDisk
+       01bf  MFC-860CDN Remote Setup Port
+       01c0  DCP-128C
+       01c1  DCP-129C
+       01c2  DCP-131C
+       01c3  DCP-329C
+       01c4  DCP-331C
+       01c5  MFC-239C
+       01ca  MFC-9440CN Remote Setup Port
+       01ce  DCP-135C
+       01cf  DCP-150C
+       01d0  DCP-350C
+       01d1  DCP-560CN
+       01d4  MFC-230C
+       01d5  MFC-235C
+       01d6  MFC-260C
+       01df  DCP-155C
+       01e0  MFC-265C
+       01e1  DCP-153C
+       01e2  DCP-157C
+       01e3  DCP-353C
+       01e4  DCP-357C
+       1000  Printer
+       1002  Printer
+       2002  PTUSB Printing
+       2004  PT-2300/2310 p-Touch Laber Printer
+       2015  QL-500 P-touch label printer
+       2100  Card Reader Writer
+04fa  Dallas Semiconductor
+       2490  DS1490F 2-in-1 Fob, 1-Wire adapter
+       4201  DS4201 Audio DAC
+04fb  Biostar Microtech International Corp.
+04fc  Sunplus Technology Co., Ltd
+       0003  CM1092 Optical Scroller Mouse
+       0013  ViewMate Desktop Mouse CC2201
+       0015  ViewMate Desktop Mouse CC2201
+       0232  Fingerprint
+       0561  Flexcam 100
+       1533  Mass Storage
+       504a  SPCA504a Digital Camera
+       504b  Aiptek, 1.3 mega PockerCam
+       5330  Digitrex 2110
+       5331  Vivitar Vivicam 10
+       5720  Card Reader Driver
+       7333  Finet Technology Palmpix DC-85
+       757a  Aiptek, MP315 MP3 Player
+       ffff  PureDigital Ritz Disposable
+04fd  Soliton Systems, K.K.
+       0003  Smart Card Reader II
+04fe  PFU, Ltd
+04ff  E-CMOS Corp.
+0500  Siam United Hi-Tech
+       0001  DART Keyboard Mouse
+       0002  DART-2 Keyboard
+0501  Fujikura DDK, Ltd
+0502  Acer, Inc.
+       0001  Handheld
+       0736  Handheld
+       15b1  PDA n311
+       1631  c10 Series
+       1632  c20 Series
+       16e1  n10 Handheld Sync
+       16e2  n20 Pocket PC Sync
+       16e3  n30 Handheld Sync
+       d001  Divio NW801/DVC-V6+ Digital Camera
+0503  Hitachi America, Ltd
+0504  Hayes Microcomputer Products
+0506  3Com Corp.
+       009d  HomeConnect Camera
+       00a0  3CREB96 Bluetooth Adapter
+       00a1  Bluetooth Device
+       00a2  Bluetooth Device
+       00df  3Com Home Connect lite
+       0100  HomeConnect ADSL Modem Driver
+       03e8  3C19250 Ethernet [klsi]
+       0a01  3CRSHEW696 Wireless Adapter
+       0a11  3CRWE254G72 802.11g Adapter
+       11f8  HomeConnect 3C460
+       2922  HomeConnect Cable Modem External with
+       3021  U.S.Robotics 56000 Voice FaxModem Pro
+       4601  3C460B 10/100 Ethernet Adapter
+       f002  3CP4218 ADSL Modem (pre-init)
+       f003  3CP4218 ADSL Modem
+       f100  3CP4218 ADSL Modem (pre-init)
+0507  Hosiden Corp.
+       0011  Konami ParaParaParadise Controller
+0508  Clarion Co., Ltd
+0509  Aztech Systems, Ltd
+       0801  ADSL Modem
+       0802  ADSL Modem (RFC1483)
+       0806  DSL Modem
+       080f  Binatone ADSL500 Modem Network Interface
+       0812  Pirelli ADSL Modem Network Interface
+050a  Cinch Connectors
+050b  Cable System International
+050c  InnoMedia, Inc.
+050d  Belkin Components
+       0004  Direct Connect
+       0012  F8T012 Bluetooth Adapter
+       0013  F8T013 Bluetooth Adapter
+       0050  F5D6050 802.11b Wireless Adapter
+       0081  F8T001v2 Bluetooth
+       0083  Bluetooth Device
+       0084  F8T003v2 Bluetooth
+       0102  Flip KVM
+       0103  F5U103 Serial Adapter [etek]
+       0106  VideoBus II Adapter, Video
+       0108  F1DE108B KVM
+       0109  F5U109/F5U409 PDA Adapter
+       0115  SCSI Adapter
+       0119  F5U120-PC Dual PS/2 Ports
+       0121  F5D5050 100Mbps Ethernet
+       0122  Ethernet Adapter
+       0131  Bluetooth Device with trace filter
+       0201  Peripheral Switch
+       0208  USBView II Video Adapter [nt1004]
+       0210  F5U228 Hi-Speed USB 2.0 DVD Creator
+       0211  F5U211 USB 2.0 15-in-1 Media Reader & Writer
+       0224  F5U224 USB 2.0 4-Port Hub
+       0234  F5U234 USB 2.0 4-Port Hub
+       0237  F5U237 USB 2.0 7-Port Hub
+       0240  F5U240 USB 2.0 CF Card Reader
+       0257  F5U257 Serial
+       0409  F5U409 Serial
+       0551  F6C550-AVR UPS
+       0802  Nostromo n40 Gamepad
+       0803  Nostromo 1745 GamePad
+       0805  Nostromo N50 GamePad
+       0815  Nostromo n52 HID SpeedPad Mouse Wheel
+       0826  ErgoFit Wireless Optical Mouse (HID)
+       0980  HID UPS Battery
+       1202  F5U120-PC Parallel Printer Port
+       1203  F5U120-PC Serial Port
+       258a  F5U258 Host to Host cable
+       3101  F1DF102U/F1DG102U Flip Hub
+       3201  F1DF102U/F1DG102U Flip KVM
+       4050  ZD1211B
+       5055  F5D5055
+       6051  11Mbps Wireless Network Adapter
+       7050  F5D7050 ver 1000 WiFi
+       7051  F5D7051 54g USB Network Adapter
+       705a  F5D7050A Wireless Adapter
+       705b  Wireless G Adapter
+       705c  F5D7050 v4000 Wireless Adapter
+       905b  F5D9050 ver 3 Wireless Adapter
+       905c  Wireless G Plus MIMO Network Adapter
+050e  Neon Technology, Inc.
+050f  KC Technology, Inc.
+       0001  Hub
+       0003  KC82C160S Hub
+       0180  KC-180 IrDA Dongle
+       0190  KC2190 USB Host-to-Host cable
+0510  Sejin Electron, Inc.
+       0001  Keyboard
+       1000  Keyboard with PS/2 Mouse Port
+       e001  Mouse
+0511  N'Able (DataBook) Technologies, Inc.
+0512  Hualon Microelectronics Corp.
+0513  digital-X, Inc.
+0514  FCI Electronics
+0515  ACTC
+0516  Longwell Electronics
+0517  Butterfly Communications
+0518  EzKEY Corp.
+       0001  USB to PS2 Adaptor v1.09
+       0002  EZ-9900C Keyboard
+0519  Star Micronics Co., Ltd
+       c002  Xlive Bluetooth XBM-100S MP3 Player
+051a  WYSE Technology
+       a005  Smart Display Version 9973
+051b  Silicon Graphics
+051c  Shuttle, Inc.
+       c001  eHome Infrared Receiver
+       c002  eHome Infrared Receiver
+051d  American Power Conversion
+       0001  UPS
+       0002  Uninterruptible Power Supply
+       0003  UPS
+051e  Scientific Atlanta, Inc.
+051f  IO Systems (Elite Electronics), Inc.
+0520  Taiwan Semiconductor Manufacturing Co.
+0521  Airborn Connectors
+0522  Advanced Connectek, Inc.
+0523  ATEN GmbH
+0524  Sola Electronics
+0525  Netchip Technology, Inc.
+       100d  RFMD Bluetooth Device
+       1080  NET1080 USB-USB Bridge
+       a140  USB Clik! 40
+       a141  (OME) PocketZip 40 MP3 Player Driver
+       a220  GVC Bluetooth Wireless Adapter
+       a4a0  Linux-USB "Gadget Zero"
+       a4a1  Linux-USB Ethernet Gadget
+       a4a2  Linux-USB Ethernet/RNDIS Gadget
+       a4a3  Linux-USB user-mode isochronous source/sink
+       a4a4  Linux-USB user-mode bulk source/sink
+       a4a5  Linux-USB File Storage Gadget
+       a4a6  Linux-USB Serial Gadget
+       a4a7  Linux-USB Serial Gadget (CDC ACM mode)
+       a4a8  Linux-USB Printer Gadget
+0526  Temic MHS S.A.
+0527  ALTRA
+0528  ATI Technologies, Inc.
+       7561  TV Wonder
+       7562  TV Wonder, Edition (FN5)
+       7563  TV Wonder, Edition (FI)
+       7564  TV Wonder, Edition (FQ)
+       7565  TV Wonder, Edition (NTSC+)
+       7566  TV Wonder, Edition (FN5)
+       7567  TV Wonder, Edition (FI)
+       7568  TV Wonder, Edition (FQ)
+       7569  Live! Pro (A)
+       756a  Live! Pro Audio (O)
+0529  Aladdin Knowledge Systems
+       0001  HASP v0.06
+       030b  eToken R1 v3.1.3.x
+       0313  eToken R1 v3.2.3.x
+       031b  eToken R1 v3.3.3.x
+       0323  eToken R1 v3.4.3.x
+       0412  eToken R2 v2.2.4.x
+       041a  eToken R2 v2.2.4.x
+       0422  eToken R2 v2.4.4.x
+       042a  eToken R2 v2.5.4.x
+       050c  eToken Pro v4.1.5.x
+       0514  eToken Pro v4.2.5.4
+       0600  eToken Pro 64k (4.2)
+052a  Crescent Heart Software
+052b  Tekom Technologies, Inc.
+       0102  Ca508A HP1020 Camera v.1.3.1.6
+       0801  Yakumo MegaImage 37
+       1512  Yakumo MegaImage IV
+       1513  Aosta CX100 WebCam
+       1514  Aosta CX100 WebCam Storage
+       1905  Yakumo MegaImage 47
+       1911  Yakumo MegaImage 47 SL
+       2202  WDM Still Image Capture
+       2203  Sound Vision Stream Driver
+       3a06  DigiLife DDV-5120A
+       d001  P35U Camera Capture
+052c  Canon Information Systems, Inc.
+052d  Avid Electronics Corp.
+052e  Standard Microsystems Corp.
+052f  Unicore Software, Inc.
+0530  American Microsystems, Inc.
+0531  Wacom Technology Corp.
+0532  Systech Corp.
+0533  Alcatel Mobile Phones
+0534  Motorola, Inc.
+0535  LIH TZU Electric Co., Ltd
+0536  Hand Held Products (Welch Allyn, Inc.)
+       01a0  PDT
+0537  Inventec Corp.
+0538  Caldera International, Inc. (SCO)
+0539  Shyh Shiun Terminals Co., Ltd
+053a  Preh Werke GmbH & Co. KG
+053b  Global Village Communication
+053c  Institut of Microelectronic & Mechatronic Systems
+053d  Silicon Architect
+053e  Mobility Electronics
+053f  Synopsys, Inc.
+0540  UniAccess AB
+       0101  Panache Surf ISDN TA
+0541  Sirf Technology, Inc.
+0543  ViewSonic Corp.
+       00fe  G773 Monitor Hub
+       00ff  P815 Monitor Hub
+       0bf2  airpanel V150 Wireless Smart Display
+       0bf3  airpanel V110 Wireless Smart Display
+       0ed9  Color Pocket PC V35
+       0f01  airsync Wi-Fi Wireless Adapter
+       1527  Color Pocket PC V36
+       1529  Color Pocket PC V37
+       152b  Color Pocket PC V38
+       152e  Pocket PC
+       1921  Communicator Pocket PC
+       1922  Smartphone
+       1923  Pocket PC V30
+       1a11  Wireless 802.11g Adapter
+       1e60  TA310 - ATSC/NTSC/PAL Driver(PCM4)
+       4153  ViewSonic G773 Control (?)
+0544  Cristie Electronics, Ltd
+0545  Xirlink, Inc.
+       7333  Trution Web Camera
+       8002  IBM NetCamera
+       8009  Veo PC Camera
+       800c  Veo StingRay
+       800d  Veo PC Camera
+       8080  IBM C-It WebCam
+       808a  Veo PC Camera
+       808b  Veo PC Camera
+       808d  Veo PC Camera
+       810a  Veo Advanced Connect WebCam
+       810b  Veo PC Camera
+       810c  Veo PC Camera
+       8135  Veo Mobile/Advanced Web Camera
+       813a  Veo PC Camera
+       813b  Veo PC Camera
+       813c  Veo Mobile/Advanced Web Camera
+       8333  Veo Stingray/Connect Web Camera
+       888c  eVision 123 digital camera
+       888d  eVision 123 digital camera
+0546  Polaroid Corp.
+       0daf  PDC 2300Z
+       1bed  PDC 1320 Camera
+       3097  PDC 310
+       3187  Digital Cam
+       dccf  Sound Vision Stream Driver
+0547  Anchor Chips, Inc.
+       0001  ICSI Bluetooth Device
+       1002  Python2 WDM Encoder
+       2131  AN2131 EZUSB Microcontroller
+       2235  AN2235 EZUSB-FX Microcontroller
+       2710  EZ-Link Loader (EZLNKLDR.SYS)
+       2720  AN2720 USB-USB Bridge
+       2727  Xircom PGUNET USB-USB Bridge
+       2750  EZ-Link (EZLNKUSB.SYS)
+       2810  Cypress USB ATAPI Bridge
+       7777  Bluetooth Device
+       9999  AN2131 uninitialized (?)
+0548  Tyan Computer Corp.
+       1005  EZ Cart II GameBoy Flash Programmer
+0549  Pixera Corp.
+054a  Fujitsu Microelectronics, Inc.
+054b  New Media Corp.
+054c  Sony Corp.
+       0001  HUB
+       0002  Standard HUB
+       0010  DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera
+       0014  Nogatech USBVision (SY)
+       0022  Storage Adapter V2 (TPP)
+       0023  CD Writer
+       0024  Mavica CD-1000 Camera
+       0025  NW-MS7 Walkman MemoryStick Reader
+       002b  Portable USB Harddrive V2
+       002c  USB Floppy Disk Drive
+       002d  MSAC-US1 MemoryStick Reader
+       002e  Sony HandyCam MemoryStick Reader
+       0030  Storage Adapter V2 (TPP)
+       0032  MemoryStick MSC-U01 Reader
+       0035  Network Walkman (E)
+       0036  Net MD
+       0037  MG Memory Stick Reader/Writer
+       0038  Clie PEG-S300/D PalmOS PDA
+       0039  Network Walkman (MS)
+       003c  VAIO-MX LCD Control
+       0045  Digital Imaging Video
+       0046  Network Walkman
+       004a  Memory Stick Hi-Fi System
+       004b  Memory Stick Reader/Writer
+       004e  DSC-xxx (ptp)
+       0056  MG Memory Stick Reader/Writer
+       0058  Clie PEG-N7x0C PalmOS PDA Mass Storage
+       0066  Clie PEG-N7x0C/PEG-T425 PalmOS PDA Serial
+       0069  Memorystick MSC-U03 Reader
+       006d  Clie PEG-T425 PDA Mass Storage
+       006f  Network Walkman (EV)
+       0073  Storage CRX1750U
+       0075  Net MD
+       0076  Storage Adapter ACR-U20
+       007c  Net MD
+       007f  IC Recorder (MS)
+       0080  Net MD
+       0081  Net MD
+       0084  Net MD
+       0085  Net MD
+       0086  Net MD
+       008b  Micro Vault 64M Mass Storage
+       0095  Sony Clie s360
+       0099  Clie NR70 PDA Mass Storage
+       009a  Clie NR70 PDA Serial
+       00ab  Visual Communication Camera (PCGA-UVC10)
+       00af  DPP-EX Series Digital Photo Printer
+       00bf  IC Recorder (S)
+       00c0  Handycam DCR-30
+       00c6  Net MD
+       00c7  Net MD
+       00c8  MZ-N710 Minidisc Walkman
+       00c9  Net MD
+       00ca  MZ-DN430 Minidisc Walkman
+       00cb  MSAC-US20 Memory Stick Reader
+       00da  Sony Clie nx60
+       00e8  Network Walkman (MS)
+       00e9  Handheld
+       00eb  Net MD
+       0101  Net MD
+       0103  IC Recorder (ST)
+       0105  Micro Vault Hub
+       0107  VCC-U01 Visual Communication Camera
+       0110  Digital Imaging Video
+       0113  Net MD
+       0116  IC Recorder (P)
+       0144  Clie PEG-TH55 PDA
+       0147  Visual Communication Camera (PCGA-UVC11)
+       014c  Aiwa AM-NX9 Net MD Music Recorder MDLP
+       014d  Memory Stick Reader/Writer
+       0154  Eyetoy Audio Device
+       015f  IC Recorder (BM)
+       0169  Clie PEG-TJ35 PDA Serial
+       016a  Clie PEG-TJ35 PDA Mass Storage
+       016b  Mobile HDD
+       016d  IC Recorder (SX)
+       016e  DPP-EX50 Digital Photo Printer
+       0171  Fingerprint Sensor 3500
+       017e  Net MD
+       017f  Hi-MD WALKMAN
+       0180  Net MD
+       0181  Hi-MD WALKMAN
+       0182  Net MD
+       0183  Hi-MD WALKMAN
+       0184  Net MD
+       0185  Hi-MD WALKMAN
+       0186  Net MD
+       0187  Hi-MD WALKMAN
+       0188  Net MD
+       018a  Net MD
+       018b  Hi-MD SOUND GATE
+       019e  Micro Vault 1.0G Mass Storage
+       01ad  ATRAC HDD PA
+       01bd  MRW62E Multi-Card Reader/Writer
+       01c3  NW-E55 Network Walkman
+       01c6  MEMORY P-AUDIO
+       01c7  Printing Support
+       01d0  DVD+RW External Drive DRU-700A
+       01d5  IC RECORDER
+       01de  VRD-VC10 [Video Capture]
+       01e9  Net MD
+       01ea  Hi-MD WALKMAN
+       01ee  IC RECORDER
+       01fa  Sony IC Recorder (P)
+       01fb  NW-E405 Network Walkman
+       020f  Device
+       0210  ATRAC HDD PA
+       0219  Net MD
+       021a  Hi-MD WALKMAN
+       021b  Net MD
+       021c  Hi-MD WALKMAN
+       021d  Net MD
+       0227  Printing Support
+       022c  Net MD
+       022d  Hi-MD AUDIO
+       0233  ATRAC HDD PA
+       0236  Mobile HDD
+       023b  DVD+RW External Drive DRU-800UL
+       023c  Net MD
+       023d  Hi-MD WALKMAN
+       0243  MicroVault Flash Drive
+       0257  IFU-WLM2 USB Wireless LAN Module (Wireless Mode)
+       0258  IFU-WLM2 USB Wireless LAN Module (Memory Mode)
+       0259  IC RECORDER
+       0267  Tachikoma Device
+       0268  Batoh Device
+       0269  HDD WALKMAN
+       026a  HDD WALKMAN
+       0271  IC Recorder (P)
+       027c  NETWORK WALKMAN
+       027e  SONY Communicator
+       027f  IC RECORDER
+       0286  Net MD
+       0287  Hi-MD WALKMAN
+       029b  PRS-500 eBook reader
+       02ae  PlayStation 3 Memory Card Adaptor
+       02af  Handycam DCR-DVD306E
+       02c4  Device
+       02d2  PSP
+054d  Try Corp.
+054e  Proside Corp.
+054f  WYSE Technology Taiwan
+0550  Fuji Xerox Co., Ltd
+       0002  InkJet Color Printer
+       0004  InkJet Color Printer
+       0005  InkJet Color Printer
+0551  CompuTrend Systems, Inc.
+0552  Philips Monitors
+0553  STMicroelectronics Imaging Division (VLSI Vision)
+       0001  TerraCAM
+       0002  CPiA WebCam
+       0100  STV0672 Camera
+       0140  Video Camera
+       0150  CDE CAM 100
+       0151  Digital Blue QX5 Microscope
+       0200  Dual-mode Camera0
+       0201  Dual-mode Camera1
+       0202  Aiptek PenCam 1
+       0674  Multi-mode Camera
+       0679  NMS Video Camera (Webcam)
+       1002  Che-ez! Splash
+0554  Dictaphone Corp.
+0555  ANAM S&T Co., Ltd
+0556  Asahi Kasei Microsystems Co., Ltd
+       0001  AK5370 I/F A/D Converter
+0557  ATEN International Co., Ltd
+       2001  UC-1284 Printer Port
+       2002  10Mbps Ethernet [klsi]
+       2004  UC-100KM PS/2 Mouse and Keyboard adapter
+       2006  UC-1284B Printer Port
+       2007  UC-110T 100Mbps Ethernet [pegasus]
+       2008  UC-232A Serial Port [pl2303]
+       2009  UC-210T Ethernet
+       2202  CS124U Miniview II KVM Switch
+       2600  IDE Bridge
+       4000  DSB-650 10Mbps Ethernet [klsi]
+       7000  Hub
+0558  Truevision, Inc.
+0559  Cadence Design Systems, Inc.
+055a  Kenwood USA
+055b  KnowledgeTek, Inc.
+055c  Proton Electronic Ind.
+055d  Samsung Electro-Mechanics Co.
+       0001  Keyboard
+       0bb1  Bluetooth Device
+       1030  Optical Wheel Mouse (OMS3CB/OMGB30)
+       1031  Optical Wheel Mouse (OMA3CB/OMGI30)
+       1040  Mouse HID Device
+       1050  E-Mail Optical Wheel Mouse (OMS3CE)
+       1080  Optical Wheel Mouse (OMS3CH)
+       2020  Floppy Disk Drive
+       6780  Keyboard V1
+       6781  Keyboard Mouse
+       8001  E.M. Hub
+       9000  AnyCam [pwc]
+       9001  MPC-C30 AnyCam Premium for Notebooks [pwc]
+       a010  WLAN Adapter(SWL-2300)
+       a011  Boot Device
+       a012  WLAN Adapter(SWL-2300)
+       a013  WLAN Adapter(SWL-2350)
+       a230  Boot Device
+       b000  11Mbps WLAN Mini Adapter
+       b230  Netopia 802.11b WLAN Adapter
+       b231  LG Wireless LAN 11b Adapter
+055e  CTX Opto-Electronics Corp.
+055f  Mustek Systems, Inc.
+       0001  ScanExpress 1200 CU
+       0002  ScanExpress 600 CU
+       0003  ScanExpress 1200 USB
+       0006  ScanExpress 1200 UB
+       0007  ScanExpress 1200 USB Plus
+       0008  ScanExpress 1200 CU Plus
+       0010  BearPaw 1200F
+       0210  ScanExpress A3 USB
+       0218  BearPaw 2400 TA
+       0219  BearPaw 2400 TA Plus
+       021a  BearPaw 2448 TA Plus
+       021c  BearPaw 1200 CU Plus
+       021d  BearPaw 2400 CU Plus
+       021e  BearPaw 1200 TA/CS
+       021f  SNAPSCAN e22
+       0400  BearPaw 2400 TA Pro
+       0401  P 3600 A3 Pro
+       0408  BearPaw 2448 CU Pro
+       0873  ScanExpress 600 USB
+       1000  BearPaw 4800 TA Pro
+       a350  gSmart 350
+       a800  MDC 800 Camera
+       b500  MDC 3000 Camera
+       c005  PC CAM 300A
+       c200  gSmart 300
+       c220  gSmart mini
+       c360  Mustek DV 4000
+       c420  gSmart mini 2
+       c440  Mustek DV 3000
+       c520  gSmart mini 3
+       c530  Mustek Gsmart LCD 2
+       c631  MDC-4000
+       c650  Mustek MDC5500Z
+       d001  WCam 300
+       d003  PC CAM 300A
+       d004  PC CAM 300A
+0560  Interface Corp.
+0561  Oasis Design, Inc.
+0562  Telex Communications, Inc.
+       0001  Enhanced Microphone
+       0002  Telex Microphone
+0563  Immersion Corp.
+0564  Chinon Industries, Inc.
+0565  Peracom Networks, Inc.
+       0001  Serial Port [etek]
+       0002  Enet Ethernet [klsi]
+       0003  @Home Networks Ethernet [klsi]
+       0005  Enet2 Ethernet [klsi]
+       0041  Peracom Remote NDIS Ethernet Adapter
+0566  Monterey International Corp.
+       0110  ViewMate Desktop Mouse CC2201
+       1001  ViewMate Desktop Mouse CC2201
+       1002  ViewMate Desktop Mouse CC2201
+       1003  ViewMate Desktop Mouse CC2201
+       1004  ViewMate Desktop Mouse CC2201
+       1005  ViewMate Desktop Mouse CC2201
+       1006  ViewMate Desktop Mouse CC2201
+       1007  ViewMate Desktop Mouse CC2201
+       2800  MIC K/B
+       2801  MIC K/B Mouse
+       2802  Kbd Hub
+0567  Xyratex International, Ltd
+0568  Quartz Ingenierie
+0569  SegaSoft
+056a  Wacom Co., Ltd
+       0000  PenPartner
+       0001  PenPartner 4x5
+       0002  PenPartner 6x8
+       0010  Graphire
+       0011  Graphire 2
+       0013  Graphire 3 4x5
+       0020  Intuos 4x5
+       0021  Intuos 6x8
+       0022  Intuos 9x12
+       0023  Intuos 12x12
+       0024  Intuos 12x18
+       0030  PL400
+       0031  PL500
+       0032  PL600
+       0034  PL550
+       0035  PL800
+       0041  Intuos2 4x5
+       0042  Intuos 2 6x8
+       0043  Intuos 2
+       0044  Intuos2 12x12
+       0045  Intuos2 12x18
+       0400  PenPartner 4x5
+       4850  PenPartner 6x8
+056b  Decicon, Inc.
+056c  eTEK Labs
+       0006  KwikLink Host-Host Connector
+       8007  Kwik232 Serial Port
+       8100  KwikLink Host-Host Connector
+       8101  KwikLink USB-USB Bridge
+056d  EIZO Corp.
+       0000  Hub
+       0001  Monitor
+       0002  HID Monitor Controls
+       0003  Device Bay Controller
+056e  Elecom Co., Ltd
+       0002  29UO Mouse
+       200c  LD-USB/TX
+       4002  Laneed 100Mbps Ethernet LD-USB/TX [pegasus]
+       4005  LD-USBL/TX
+       400b  LD-USB/TX
+       4010  LD-USB20
+       5003  UC-SGT
+       5004  UC-SGT
+       abc1  LD-USB/TX
+056f  Korea Data Systems Co., Ltd
+       cd00  CDM-751 CD organizer
+0570  Epson America
+0571  Interex, Inc.
+       0002  echoFX InterView Lite
+0572  Conexant Systems (Rockwell), Inc.
+       0001  Ezcam II WebCam
+       0002  Ezcam II WebCam
+       0040  Wondereye CP-115 WebCam
+       0041  WebCam Notebook
+       0042  WebCam Notebook
+       1232  V.90 modem
+       1234  Typhoon Redfun Modem V90 56k
+       1252  HCF V90 Data Fax Voice Modem
+       1253  Zoom V.92 Faxmodem
+       1300  SoftK56 Data Fax Voice CARP
+       1301  Modem Enumerator
+       2000  SoftGate 802.11 Adapter
+       2002  SoftGate 802.11 Adapter
+       8390  WinFast PalmTop/Novo TV Video
+       8392  WinFast PalmTop/Novo TV Video
+       cafe  AccessRunner ADSL Modem
+       cb00  E-Tech ADSL Modem v2
+       cb01  GeekADSL Promax Q31 ADSL Modem
+       cb06  StarModem Network Interface
+0573  Zoran Co. Personal Media Division (Nogatech)
+       0003  USBGear USBG-V1
+       0400  D-Link V100
+       0600  Dazzle USBVision (1006)
+       1300  leadtek USBVision (1006)
+       2000  X10 va10a Wireless Camera
+       2001  Dazzle EmMe (2001)
+       2101  Zoran Co. PMD (Nogatech) AV-grabber Manhattan
+       2d00  Osprey 50
+       2d01  Hauppauge USB-Live Model 600
+       3000  Dazzle MicroCam (NTSC)
+       3001  Dazzle MicroCam (PAL)
+       4000  Nogatech TV! (NTSC)
+       4001  Nogatech TV! (PAL)
+       4002  Nogatech TV! (PAL-I-)
+       4003  Nogatech TV! (MF-)
+       4008  Nogatech TV! (NTSC) (T)
+       4009  Nogatech TV! (PAL) (T)
+       4010  Nogatech TV! (NTSC) (A)
+       4100  USB-TV FM (NTSC)
+       4110  PNY USB-TV (NTSC) FM
+       4400  Nogatech TV! Pro (NTSC)
+       4401  Nogatech TV! Pro (PAL)
+       4450  PixelView PlayTv-USB PRO (PAL) FM
+       4451  Nogatech TV! Pro (PAL+)
+       4452  Nogatech TV! Pro (PAL-I+)
+       4500  Nogatech TV! Pro (NTSC)
+       4501  Nogatech TV! Pro (PAL)
+       4550  ZTV ZT-721 2.4GHz USB A/V Receiver
+       4551  Dazzle TV! Pro Audio (P+)
+       4d00  Hauppauge WinTV-USB USA
+       4d01  Hauppauge WinTV-USB
+       4d02  Hauppauge WinTV-USB UK
+       4d03  Hauppauge WinTV-USB France
+       4d04  Hauppauge WinTV (PAL D/K)
+       4d10  Hauppauge WinTV-USB with FM USA radio
+       4d11  Hauppauge WinTV-USB (PAL) with FM radio
+       4d12  Hauppauge WinTV-USB UK with FM Radio
+       4d14  Hauppauge WinTV (PAL D/K FM)
+       4d20  Hauppauge WinTV-USB II (PAL) with FM radio
+       4d21  Hauppauge WinTV-USB II (PAL)
+       4d22  Hauppauge WinTV-USB II (PAL) Model 566
+       4d23  Hauppauge WinTV-USB France 4D23
+       4d24  Hauppauge WinTV Pro (PAL D/K)
+       4d25  Hauppauge WinTV-USB Model 40209 rev B234
+       4d26  Hauppauge WinTV-USB Model 40209 rev B243
+       4d27  Hauppauge WinTV-USB Model 40204 Rev B281
+       4d28  Hauppauge WinTV-USB Model 40204 rev B283
+       4d29  Hauppauge WinTV-USB Model 40205 rev B298
+       4d2a  Hauppague WinTV-USB Model 602 Rev B285
+       4d2b  Hauppague WinTV-USB Model 602 Rev B282
+       4d2c  Hauppauge WinTV Pro (PAL/SECAM)
+       4d30  Hauppauge WinTV-USB FM Model 40211 Rev B123
+       4d31  Hauppauge WinTV-USB III (PAL) with FM radio Model 568
+       4d32  Hauppauge WinTV-USB III (PAL) FM Model 573
+       4d34  Hauppauge WinTV Pro (PAL D/K FM)
+       4d35  Hauppauge WinTV-USB III (PAL) FM Model 597
+       4d36  Hauppauge WinTV Pro (PAL B/G FM)
+       4d37  Hauppauge WinTV-USB Model 40219 rev E189
+       4d38  Hauppauge WinTV Pro (NTSC FM)
+0574  City University of Hong Kong
+0575  Philips Creative Display Solutions
+0576  BAFO/Quality Computer Accessories
+0577  ELSA
+0578  Intrinsix Corp.
+0579  GVC Corp.
+057a  Samsung Electronics America
+057b  Y-E Data, Inc.
+       0000  FlashBuster-U Floppy
+       0001  Tri-Media Reader Floppy
+       0006  Tri-Media Reader Card Reader
+       0010  Memory Stick Reader Writer
+       0020  HEXA Media Drive 6-in-1 Card Reader Writer
+       0030  Memory Card Viewer (TV)
+057c  AVM GmbH
+       0b00  ISDN-Controller B1 Family
+       0c00  ISDN-Controller FRITZ!Card
+       1000  ISDN-Controller FRITZ!Card v2.0
+       1900  ISDN-Controller FRITZ!Card v2.1
+       2000  ISDN-Connector FRITZ!X
+       2200  BlueFRITZ!
+       2300  Teledat X130 DSL
+       2800  ISDN-Connector TA
+       3200  Teledat X130 DSL
+       3500  FRITZ!Card DSL SL
+       3701  FRITZ!Box SL
+       3702  FRITZ!Box
+       3800  BlueFRITZ! Bluetooth Stick
+       3a00  FRITZ!Box Fon
+       3c00  FRITZ!Box WLAN
+       3d00  Fritz!Box
+       3e01  FRITZ!Box (Annex A)
+       4001  FRITZ!Box Fon (Annex A)
+       4101  FRITZ!Box WLAN (Annex A)
+       4201  FRITZ!Box Fon WLAN (Annex A)
+       4601  Eumex 5520PC (WinXP/2000)
+       4602  Eumex 400 (WinXP/2000)
+       4701  AVM FRITZ!Box Fon ata
+       5401  Eumex 300 IP
+       5601  AVM FRITZ!WLAN Stick
+       6201  WLAN USB v1.1
+       62ff  WLAN USB v1.1 [no firmware]
+057d  Shark Multimedia, Inc.
+057e  Nintendo Co., Ltd
+       0306  Wii Remote Controller RVL-003
+057f  QuickShot, Ltd
+       6238  USB StrikePad
+0580  Denron, Inc.
+0581  Racal Data Group
+0582  Roland Corp.
+       0000  UA-100
+       0002  UM-4/MPU-64 MIDI Interface
+       0003  SoundCanvas SC-8850
+       0004  U-8
+       0005  Edirol UM-2 MIDI Adapter
+       0007  SoundCanvas SC-8820
+       0008  PC-300
+       0009  Edirol UM-1SX MIDI Adapter
+       000b  SK-500
+       000c  SC-D70
+       0010  EDIROL UA-5
+       0011  Edirol UA-5 Sound Capture
+       0012  XV-5050
+       0013  XV-5050
+       0014  EDIROL UM-880 MIDI I/F (native)
+       0015  EDIROL UM-880 MIDI I/F (generic)
+       0016  EDIROL SD-90
+       0017  EDIROL SD-90
+       001b  MMP-2
+       001c  MMP-2
+       001d  V-SYNTH
+       001e  V-SYNTH
+       0023  EDIROL UM-550
+       0024  EDIROL UM-550
+       0025  EDIROL UA-20
+       0026  EDIROL UA-20
+       0027  EDIROL SD-20
+       0028  EDIROL SD-20
+       0029  EDIROL SD-80
+       002a  EDIROL SD-80
+       002b  EDIROL UA-700
+       002c  EDIROL UA-700
+       002d  XV-2020 Synthesizer
+       002e  XV-2020 Synthesizer
+       002f  VariOS
+       0030  VariOS
+       0033  EDIROL PCR
+       0034  EDIROL PCR
+       0037  Digital Piano
+       0038  Digital Piano
+       003b  BOSS GS-10
+       003c  BOSS GS-10
+       0040  GI-20
+       0041  GI-20
+       0042  RS-70
+       0043  RS-70
+       0044  EDIROL UA-1000
+       0047  EDIROL UR-80 WAVE
+       0048  EDIROL UR-80 MIDI
+       0049  EDIROL UR-80 WAVE
+       004a  EDIROL UR-80 MIDI
+       004b  EDIROL M-100FX
+       004c  EDIROL PCR-A WAVE
+       004d  EDIROL PCR-A MIDI
+       004e  EDIROL PCR-A WAVE
+       004f  EDIROL PCR-A MIDI
+       0050  EDIROL UA-3FX
+       0052  EDIROL UM-1SX
+       0054  Digital Piano
+       0060  EXR Series
+       0064  EDIROL PCR-1 WAVE
+       0065  EDIROL PCR-1 MIDI
+       0066  EDIROL PCR-1 WAVE
+       0067  EDIROL PCR-1 MIDI
+       006a  SP-606
+       006b  SP-606
+       006d  FANTOM-X
+       006e  FANTOM-X
+       0073  EDIROL UA-25
+       0074  EDIROL UA-25
+       0075  BOSS DR-880
+       0076  BOSS DR-880
+       007a  RD
+       007b  RD
+       007d  EDIROL UA-101
+       0080  G-70
+       0081  G-70
+       008b  EDIROL PC-50
+       008c  EDIROL PC-50
+       008d  EDIROL UA-101 USB1
+       0092  EDIROL PC-80 WAVE
+       0093  EDIROL PC-80 MIDI
+       0096  EDIROL UA-1EX
+       009a  EDIROL UM-3EX
+       009d  EDIROL UM-1
+       00a2  Digital Piano
+       00a3  EDIROL UA-4FX
+       00a6  Juno-G
+       00ad  SH-201
+       00c4  EDIROL M-16DX
+0583  Padix Co., Ltd (Rockfire)
+       2030  RM-203 USB Nest [mode 1]
+       2031  RM-203 USB Nest [mode 2]
+       2032  RM-203 USB Nest [mode 3]
+       2033  RM-203 USB Nest [mode 4]
+       2050  PX-205 PSX Bridge
+       3050  QF-305u Gamepad
+       688f  QF-688uv Windstorm Pro Joystick
+       7070  QF-707u Bazooka Joystick
+0584  RATOC System, Inc.
+       0008  Fujifilm MemoryCard ReaderWriter
+       b000  REX-USB60
+0585  FlashPoint Technology, Inc.
+       0001  Digital Camera
+       0002  Digital Camera
+       0003  Digital Camera
+       0004  Digital Camera
+       0005  Digital Camera
+       0006  Digital Camera
+       0007  Digital Camera
+       0008  Digital Camera
+       0009  Digital Camera
+       000a  Digital Camera
+       000b  Digital Camera
+       000c  Digital Camera
+       000d  Digital Camera
+       000e  Digital Camera
+       000f  Digital Camera
+0586  ZyXEL Communications Corp.
+       1000  Omni NET Modem / ISDN TA
+       1500  Omni 56K Plus
+       2011  Scorpion-980N keyboard
+       3304  LAN Modem
+       330a  ADSL Modem Interface
+       330e  USB Broadband ADSL Modem Rev 1.10
+       3400  ZyAIR B-220 IEEE 802.11b Adapter
+       3401  ZyAIR G-220
+       3402  (ZD1211)IEEE 802.11b+g Adapter
+       3407  G-200 v2
+       3409  AG-225H
+       340a  M-202
+       340f  G-220 v2
+       3410  Wi-Fi Wireless LAN Adapter
+       3412  Wi-Fi Wireless LAN Adapter
+       3413  AG-225H v2 802.11a/g Wi-Fi Finder & Adapter
+       3415  G-210H 802.11g Wireless Adapter
+0587  America Kotobuki Electronics Industries, Inc.
+0588  Sapien Design
+0589  Victron
+058a  Nohau Corp.
+058b  Infineon Technologies
+058c  In Focus Systems
+       0007  Flash
+       0008  LP130
+       000a  LP530
+       0010  Projector
+       0011  Projector
+       0012  Projector
+       0013  Projector
+       0014  Projector
+       0015  Projector
+       0016  Projector
+       0017  Projector
+       0018  Projector
+       0019  Projector
+       001a  Projector
+       001b  Projector
+       001c  Projector
+       001d  Projector
+       001e  Projector
+       001f  Projector
+058d  Micrel Semiconductor
+058e  Tripath Technology, Inc.
+058f  Alcor Micro Corp.
+       2412  SCard R/W CSR-145
+       2802  Monterey Keyboard
+       5492  Hub
+       6232  Hi-Speed 16-in-1 Flash Card Reader/Writer
+       6360  Multimedia Card Reader
+       6361  Multimedia Card Reader
+       6362  Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
+       6377  Multimedia Card Reader
+       6386  Memory Card
+       6387  Transcend JetFlash Flash Drive
+       6390  USB 2.0-IDE bridge
+       9213  MacAlly Kbd Hub
+       9215  AU9814 Hub
+       9254  Hub
+       9310  Mass Storage (UID4/5A & UID7A)
+       9320  Micro Storage Driver for Win98
+       9321  Micro Storage Driver for Win98
+       9330  SD Reader
+       9331  Micro Storage Driver for Win98
+       9340  Delkin eFilm Reader-32
+       9350  Delkin eFilm Reader-32
+       9360  8-in-1 Media Card Reader
+       9361  Multimedia Card Reader
+       9368  Multimedia Card Reader
+       9380  Flash drive
+       9382  Acer/Sweex Flash drive
+       9410  Keyboard
+       9472  Keyboard Hub
+       9510  ChunghwaTL USB02 Smartcard Reader
+       9520  EMV Certified Smart Card Reader
+       9720  USB-Serial Adapter
+0590  Omron Corp.
+       0004  Cable Modem
+       000b  MR56SVS
+       0028  HJ-720IT Pedometer
+0591  Questra Consulting
+0592  Powerware Corp.
+       0002  UPS (X-Slot)
+0593  Incite
+0594  Princeton Graphic Systems
+0595  Zoran Microelectronics, Ltd
+       1001  Digitrex DSC-1300/DSC-2100 (mass storage mode)
+       4343  Digital Camera EX-20 DSC
+0596  MicroTouch Systems, Inc.
+       0001  Touchscreen
+       0002  Touch Screen Controller
+0597  Trisignal Communications
+0598  Niigata Canotec Co., Inc.
+0599  Brilliance Semiconductor, Inc.
+059a  Spectrum Signal Processing, Inc.
+059b  Iomega Corp.
+       0001  Zip 100 (Type 1)
+       000b  Zip 100 (Type 2)
+       0021  Win98 Disk Controller
+       0030  Zip 250 (Ver 1)
+       0031  Zip 100 (Type 3)
+       0032  Zip 250 (Ver 2)
+       0034  Zip 100 Driver
+       0037  Zip 750 MB
+       0040  SCSI Bridge
+       0042  Rev 70 GB
+       0050  Zip CD 650 Writer
+       0053  CDRW55292EXT CD-RW External Drive
+       0057  Mass Storage Device
+       005d  Mass Storage Device
+       005f  Mass Storage Device
+       0060  PCMCIA PocketZip Dock
+       0061  Varo PocketZip 40 MP3 Player
+       006d  HipZip MP3 Player
+       007c  Ultra Max USB/1394
+       00db  FotoShow Zip 250 Driver
+       0150  Mass Storage Device
+       015d  Super DVD Writer
+       0173  Hi-Speed USB-to-IDE Bridge Controller
+       0174  Hi-Speed USB-to-IDE Bridge Controller
+       0176  Hi-Speed USB-to-IDE Bridge Controller
+       0177  Hi-Speed USB-to-IDE Bridge Controller
+       0178  Hi-Speed USB-to-IDE Bridge Controller
+       0179  Hi-Speed USB-to-IDE Bridge Controller
+       017a  HDD
+       017b  HDD/1394A
+       017c  HDD/1394B
+       0251  Optical
+       0252  Optical
+       1052  DVD+RW External Drive
+059c  A-Trend Technology Co., Ltd
+059d  Advanced Input Devices
+059e  Intelligent Instrumentation
+059f  LaCie, Ltd
+       0201  StudioDrive USB2
+       0202  StudioDrive USB2
+       0203  StudioDrive USB2
+       0211  PocketDrive
+       0212  PocketDrive
+       0213  PocketDrive USB2
+       0323  LaCie d2 Drive USB2
+       0641  Mobile Hard Drive
+       1010  Desktop Hard Drive
+       a601  HardDrive
+       a602  CD R/W
+05a0  Vetronix Corp.
+05a1  USC Corp.
+05a2  Fuji Film Microdevices Co., Ltd
+05a3  ARC International
+05a4  Ortek Technology, Inc.
+       9720  Keyboard Mouse
+       9722  Keyboard
+       9731  MCK-600W/MCK-800USB Keyboard
+05a5  Sampo Technology Corp.
+05a6  Cisco Systems, Inc.
+       0001  CVA124 Cable Voice Adapter (WDM)
+       0002  CVA122 Cable Voice Adapter (WDM)
+       0003  CVA124E Cable Voice Adapter (WDM)
+       0004  CVA122E Cable Voice Adapter (WDM)
+05a7  Bose Corp.
+05a8  Spacetec IMC Corp.
+05a9  OmniVision Technologies, Inc.
+       0511  OV511 WebCam
+       0518  OV518 WebCam
+       0519  OV519 Microphone
+       1550  VEHO Filmscanner
+       2800  SuperCAM
+       4519  Webcam Classic
+       8519  OV519 WebCam
+       a511  OV511+ WebCam
+       a518  D-Link DSB-C310 WebCam
+05aa  Utilux South China, Ltd
+05ab  In-System Design
+       0002  Parallel Port
+       0030  Storage Adapter V2 (TPP)
+       0031  ATA Bridge
+       0060  USB 2.0 ATA Bridge
+       0061  Storage Adapter V3 (TPP-I)
+       0101  Storage Adapter (TPP)
+       0130  Compact Flash and Microdrive Reader (TPP)
+       0200  USS725 ATA Bridge
+       0201  Storage Adapter (TPP)
+       0202  ATA Bridge
+       0300  Portable Hard Drive (TPP)
+       0301  Portable Hard Drive V2
+       0350  Portable Hard Drive (TPP)
+       0351  Portable Hard Drive V2
+       081a  ATA Bridge
+       0cda  ATA Bridge for CD-R/RW
+       1001  BAYI Printer Class Support
+       5700  Storage Adapter V2 (TPP)
+       5701  USB Storage Adapter V2
+       5901  Smart Board (TPP)
+       5a01  ATI Storage Adapter (TPP)
+       5d01  DataBook Adapter (TPP)
+05ac  Apple, Inc.
+       0201  USB Keyboard [Alps or Logitech, M2452]
+       0202  Keyboard [ALPS]
+       0205  Extended Keyboard [Mitsumi]
+       0206  Extended Keyboard [Mitsumi]
+       020b  Pro Keyboard [Mitsumi, A1048/US layout]
+       020c  Extended Keyboard [Mitsumi]
+       020d  Pro Keyboard [Mitsumi, A1048/JIS layout]
+       020e  Internal Keyboard/Trackpad
+       020f  Internal Keyboard/Trackpad
+       021b  Internal Keyboard/Trackpad
+       0220  Aluminum Keyboard
+       0221  Keyboard (Aluminium) (ISO)
+       0229  Internal Keyboard/Trackpad (MacBook Pro) (ANSI)
+       022a  Internal Keyboard/Trackpad (MacBook Pro) (ISO)
+       022b  Internal Keyboard/Trackpad (MacBook Pro) (JIS)
+       0301  USB Mouse [Mitsumi, M4848]
+       0302  Optical Mouse [Fujitsu]
+       0304  Optical USB Mouse [Mitsumi]
+       0306  Optical USB Mouse [Fujitsu]
+       1000  Bluetooth HCI MacBookPro (HID mode)
+       1001  Keyboard Hub [ALPS]
+       1002  Extended Keyboard Hub [Mitsumi]
+       1003  Hub in Pro Keyboard [Mitsumi, A1048]
+       1006  Hub in Aluminum Keyboard
+       1101  Speakers
+       1201  3G iPod
+       1202  iPod 2G
+       1203  iPod 4.Gen Grayscale 40G
+       1204  iPod [Photo]
+       1205  iPod Mini 1.Gen/2.Gen
+       1206  iPod '06'
+       1207  iPod '07'
+       1208  iPod '08'
+       1209  iPod Video
+       120a  iPod Nano
+       1260  iPod Nano 2.Gen
+       1261  iPod Classic
+       1300  iPod Shuffle
+       1301  iPod Shuffle 2.Gen
+       8202  HCF V.90 Data/Fax Modem
+       8203  Bluetooth HCI
+       8204  Bluetooth HCI [Bluetooth 2.0 + EDR, build-in]
+       8205  Bluetooth HCI MacBookPro
+       8206  Bluetooth USB Host Controller
+       8240  IR Receiver [build-in]
+       8300  Built-in iSight (no firmware loaded)
+       8501  Built-in iSight [Micron]
+       912f  Hub in 30" Cinema Display
+       9221  30" Cinema Display
+       ffff  Bluetooth in DFU mode - Driver
+05ad  Y.C. Cable U.S.A., Inc.
+05ae  Synopsys, Inc.
+05af  Jing-Mold Enterprise Co., Ltd
+       0821  IDE to
+       9167  KB 9151B - 678
+       9267  KB 9251B - 678 Mouse
+05b0  Fountain Technologies, Inc.
+05b1  First International Computer, Inc.
+       1389  Bluetooth Wireless Adapter
+05b4  LG Semicon Co., Ltd
+       4857  M-Any DAH-210
+       6001  Digisette DUO-MP3 AR-100
+05b5  Dialogic Corp.
+05b6  Proxima Corp.
+05b7  Medianix Semiconductor, Inc.
+05b8  Agiler, Inc.
+       3002  Scroll Mouse
+05b9  Philips Research Laboratories
+05ba  DigitalPersona, Inc.
+05bb  Grey Cell Systems
+05bc  3G Green Green Globe Co., Ltd
+       0004  Trackball
+05bd  RAFI GmbH & Co. KG
+05be  Tyco Electronics (Raychem)
+05bf  S & S Research
+05c0  Keil Software
+05c1  Kawasaki Microelectronics, Inc.
+05c2  Media Phonics (Suisse) S.A.
+05c5  Digi International, Inc.
+       0002  AccelePort USB 2
+       0004  AccelePort USB 4
+       0008  AccelePort USB 8
+05c6  Qualcomm, Inc.
+       3100  CDMA Wireless Modem/Phone
+       3196  CDMA Wireless Modem
+       3197  CDMA Wireless Modem/Phone
+05c7  Qtronix Corp.
+       0113  PC Line Mouse
+       1001  Lynx Mouse
+       2001  Keyboard
+       2011  SCorpius Keyboard
+       6001  Ten-Keypad
+05c8  Cheng Uei Precision Industry Co., Ltd (Foxlink)
+05c9  Semtech Corp.
+05ca  Ricoh Co., Ltd
+       0101  RDC-5300 Camera
+       0325  Caplio GX (ptp)
+       032d  Caplio GX 8 (ptp)
+       032f  Caplio R3 (ptp)
+       03a1  IS200e
+       0403  Printing Support
+       0405  Type 101
+       0406  Type 102
+       1830  Visual Communication Camera VGP-VCC2
+       1835  Visual Communication Camera VGP-VCC5
+       1870  Webcam 1000
+       2201  RDC-7 Camera
+       2202  Caplio RR30
+       2203  Caplio 300G
+       2204  Caplio G3
+       2205  Caplio RR30 / Medion MD 6126 Camera
+       2206  Konica DG-3Z
+       2207  Caplio Pro G3
+       2208  Caplio G4
+       2209  Caplio 400G wide
+       220a  KONICA MINOLTA DG-4Wide
+       220b  Caplio RX
+       220c  Caplio GX
+       220d  Caplio R1/RZ1
+       220e  Sea & Sea 5000G
+       220f  Rollei dr5 / Rollei dr5 (PTP mode)
+       2211  Caplio R1S
+       2212  Caplio R1v Camera
+       2213  Caplio R2
+       2214  Caplio GX 8
+       2215  DSC 725
+       2216  Caplio R3
+       2222  RDC-i500
+05cb  PowerVision Technologies, Inc.
+       1483  PV8630 interface (scanners, webcams)
+05cc  ELSA AG
+       2100  MicroLink ISDN Office
+       2219  MicroLink ISDN
+       2265  MicroLink 56k
+       2267  MicroLink 56k (V.250)
+       2280  MicroLink 56k Fun
+       3000  Micolink USB2Ethernet [pegasus]
+       3100  AirLancer USB-11
+       3363  MicroLink ADSL Fun
+05cd  Silicom, Ltd
+05ce  sci-worx GmbH
+05cf  Sung Forn Co., Ltd
+05d0  GE Medical Systems Lunar
+05d1  Brainboxes, Ltd
+       0003  Bluetooth Adapter BL-554
+05d2  Wave Systems Corp.
+05d3  Tohoku Ricoh Co., Ltd
+05d5  Super Gate Technology Co., Ltd
+05d6  Philips Semiconductors, CICT
+05d7  Thomas & Betts Corp.
+       0099  10Mbps Ethernet [klsi]
+05d8  Ultima Electronics Corp.
+       4001  Artec Ultima 2000
+       4002  Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner
+       4003  Artec E+ 48U
+       4004  Artec E+ Pro
+       4005  MEM48U
+       4006  TRUST EASY WEBSCAN 19200
+       4007  TRUST 240H EASY WEBSCAN GOLD
+       4008  Trust Easy Webscan 19200
+       4009  Umax Astraslim
+       4013  IT Scan 1200
+       8105  Artec T1 USB TVBOX (cold)
+       8106  Artec T1 USB TVBOX (warm)
+       8107  Artec T1 USB TVBOX with AN2235 (cold)
+       8108  Artec T1 USB TVBOX with AN2235 (warm)
+       8109  Artec T1 USB2.0 TVBOX (cold
+05d9  Axiohm Transaction Solutions
+       a225  A225 Printer
+       a758  A758 Printer
+       a794  A794 Printer
+05da  Microtek International, Inc.
+       0091  ScanMaker X6u
+       0093  ScanMaker V6USL
+       0094  Phantom 336CX/C3
+       0099  ScanMaker X6/X6U
+       009a  Phantom C6
+       00a0  Phantom 336CX/C3 (#2)
+       00a3  ScanMaker V6USL
+       00ac  ScanMaker V6UL
+       00b6  ScanMaker V6UPL
+       00ef  ScanMaker V6UPL
+       1006  Jenoptik JD350 entrance
+       1011  NHJ Che-ez! Kiss Digital Camera
+       1018  Digital Dream Enigma 1.3
+       1020  Digital Dream l'espion xtra
+       1025  Take-it Still Camera Device
+       1026  Take-it
+       1043  Take-It 1300 DSC Bulk Driver
+       1045  Take-it D1
+       1047  Take-it Camera Composite Device
+       1048  Take-it Q3
+       1049  3M Still Camera Device
+       1051  Camcorder Series
+       1052  Mass Storage Device
+       1053  Take-it DV Composite Device
+       1054  Mass Storage Device
+       1055  Digital Camera Series(536)
+       1056  Mass Storage Device
+       1057  Take-it DSC Camera Device(536)
+       1058  Mass Storage Device
+       1059  Camcorder DSC Series
+       1060  Microtek Take-it MV500
+       2007  ArtixScan DI 1210
+       200c  1394_USB2 Scanner
+       200e  ArtixScan DI 810
+       2017  UF ICE Scanner
+       201c  4800 Scanner
+       201d  ArtixScan DI 1610
+       201f  4800 Scanner-ICE
+       202e  ArtixScan DI 2020
+       208b  ScanMaker 6800
+       208f  ArtixScan DI 2010
+       209e  ScanMaker 4700LP
+       20a7  ScanMaker 5600
+       20b0  ScanMaker X12USL
+       20b1  ScanMaker 8700
+       20b4  ScanMaker 4700
+       20bd  ScanMaker 5700
+       20c9  ScanMaker 6700
+       20d2  Microtek ArtixScan 1800f
+       20d6  PS4000
+       20de  ScanMaker 9800XL
+       20e0  ScanMaker 9700XL
+       20ed  ScanMaker 4700
+       20ee  Micortek ScanMaker X12USL
+       3008  Scanner
+       300a  4800 ICE Scanner
+       300b  4800 Scanner
+       300f  MiniScan C5
+       3020  4800dpi Scanner
+       3021  1200dpi Scanner
+       3022  Scanner 4800dpi
+       3023  USB1200II Scanner
+       30c1  USB600 Scanner
+       30ce  ScanMaker 3800
+       30cf  ScanMaker 4800
+       30d4  USB1200 Scanner
+       30d8  Scanner
+       30d9  USB2400 Scanner
+       30e4  ScanMaker 4100
+       30e5  USB3200 Scanner
+       30e6  ScanMaker i320
+       40b3  ScanMaker 3600
+       40b8  ScanMaker 3700
+       40c7  ScanMaker 4600
+       40ca  ScanMaker 3600
+       40cb  ScanMaker 3700
+       40dd  ScanMaker 3750i
+       40ff  ScanMaker 3600
+       5003  Goya
+       5013  3200 Scanner
+       80a3  ScanMaker V6USL (#2)
+       80ac  ScanMaker V6UL/SpicyU
+05db  Sun Corp. (Suntac?)
+       0003  SUNTAC U-Cable type D2
+       0005  SUNTAC U-Cable type P1
+       0009  SUNTAC Slipper U
+       000a  SUNTAC Ir-Trinity
+       000b  SUNTAC U-Cable type A3
+       0011  SUNTAC U-Cable type A4
+05dc  Lexar Media, Inc.
+       0001  jumpSHOT CompactFlash Reader
+       0002  JumpShot
+       0003  JumpShot
+       0080  Jumpdrive Secure 64MB
+       0081  RBC Compact Flash Drive
+       00a7  JumpDrive Impact
+       0100  JumpDrive PRO
+       0200  JumpDrive 2.0 Pro
+       0300  Jumpdrive Geysr
+       0301  JumpDrive Classic
+       0302  JD Micro
+       0303  JD Micro Pro
+       0304  JD Secure II
+       0310  JumpDrive
+       0311  JumpDrive Classic
+       0312  JD Micro
+       0313  JD Micro Pro
+       0320  JumpDrive
+       0321  JD Micro
+       0322  JD Micro Pro
+       0323  UFC
+       0330  JumpDrive Expression
+       0340  JumpDrive TAD
+       0350  Express Card
+       0400  UFDC
+       0401  UFDC
+       0403  Locked B Device
+       0405  Locked C Device
+       0407  Locked D Device
+       0409  Locked E Device
+       040b  Locked F Device
+       040d  Locked G Device
+       040f  Locked H Device
+       0410  JumpDrive
+       0411  JumpDrive
+       0413  Locked J Device
+       0415  Locked K Device
+       0417  Locked L Device
+       0419  Locked M Device
+       041b  Locked N Device
+       041d  Locked O Device
+       041f  Locked P Device
+       0420  JumpDrive
+       0421  JumpDrive
+       0423  Locked R Device
+       0425  Locked S Device
+       0427  Locked T Device
+       0429  Locked U Device
+       042b  Locked V Device
+       042d  Locked W Device
+       042f  Locked X Device
+       0431  Locked Y Device
+       0433  Locked Z Device
+       4d02  MP3 Player
+       4d12  MP3 Player
+       a300  JumpDrive2
+       a400  JumpDrive trade; Pro 40-501
+       a410  JumpDrive 128MB/256MB
+       a411  JumpDrive Traveler
+       a420  JumpDrive Pro
+       a421  JumpDrive Pro II
+       a422  JumpDrive Micro Pro
+       a430  JumpDrive Secure
+       a431  JumpDrive Secure II
+       a432  JumpDrive Classic
+       a440  JumpDrive Lightning
+       a450  JumpDrive TouchGuard
+       a460  JD Mercury
+       a501  JumpDrive Classic
+       a510  JumpDrive Sport
+       a530  JumpDrive Expression
+       a531  JumpDrive Secure II
+       a560  JumpDrive FireFly
+       a701  JumpDrive FireFly
+       b002  USB CF Reader
+       b018  Multi-Card Reader
+05dd  Delta Electronics, Inc.
+       ff31  AWU-120
+       ff32  FriendlyNET AeroLAN AL2011
+       ff35  PCW 100 - Wireless 802.11b Adapter
+       ff91  2Wire PC Port Phoneline 10Mbps Adapter
+05df  Silicon Vision, Inc.
+05e0  Symbol Technologies
+       0700  Bar Code Scanner (CS1504)
+       0800  Spectrum24 Wireless LAN Adapter
+       1200  DS6608 Bar Code Scanner
+       1900  SNAPI Imaging Device
+       2000  MC3090 Rugged Mobile Computer
+       200d  MC70 Rugged Mobile Computer
+05e1  Syntek Semiconductor Co., Ltd
+       0500  DC-112X
+       0501  WebCam, Chipset DC-1125 similar to 174f:a311 - Asus F2F, F2J, F3J, F3T, G1, Z53JA
+       0890  STK011 Camera
+       0892  STK013 Camera
+       0895  STK016 Camera
+       0896  STK017 Camera
+05e2  ElecVision, Inc.
+05e3  Genesys Logic, Inc.
+       000a  Keyboard with PS/2 Port
+       000b  Mouse
+       0100  Nintendo Game Boy Advance SP
+       0120  Pacific Image Electronics PrimeFilm 1800u slide/negative scanner
+       0131  CF/SM Reader/Writer
+       0142  Multiple Slides Scanner-3600
+       0143  Multiple Frames Film Scanner-36series
+       0180  Plustek Scanner
+       0182  Wize Media 1000
+       0189  ScanJet 4600 series
+       018a  Xerox 6400
+       0300  GLUSB98PT Parallel Port
+       0301  USB2LPT Cable Release2
+       0406  Hub
+       0501  GL620USB Host-Host interface
+       0502  GL620USB GeneLink USB-USB Bridge
+       0504  HID Keyboard Filter
+       0604  USB 1.1 Hub
+       0605  USB 2.0 Hub [ednet]
+       0606  USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
+       0608  USB-2.0 4-Port HUB
+       0660  USB 2.0 Hub
+       0700  SIIG US2256 CompactFlash Card Reader
+       0701  USB 2.0 IDE Adapter
+       0702  USB 2.0 IDE Adapter
+       0703  Card Reader
+       0704  Card Reader
+       0705  Card Reader
+       0706  Card Reader
+       0707  Card Reader
+       0708  Card Reader
+       0709  Card Reader
+       070a  Pen Flash
+       070b  DMHS1B Rev 3 DFU Adapter
+       070e  X-PRO CR20xA USB 2.0 Internal Card Reader
+       070f  Pen Flash
+       0710  USB 2.0 33-in-1 Card Reader
+       0711  Card Reader
+       0712  Delkin Mass Storage Device
+       0715  USB 2.0 microSD Reader
+       0760  USB 2.0 Card Reader/Writer
+       0761  Genesys Mass Storage Device
+       0780  USBFS DFU Adapter
+       07a0  Pen Flash
+       0927  Card Reader
+       1205  Afilias Optical Mouse H3003
+       a700  Pen Flash
+       f102  VX7012 TV Box
+       f103  VX7012 TV Box
+       f104  VX7012 TV Box
+       fd21  3M TL20 Temperature Logger
+       fe00  Razer Mouse
+05e4  Red Wing Corp.
+05e5  Fuji Electric Co., Ltd
+05e6  Keithley Instruments
+05e8  ICC, Inc.
+05e9  Kawasaki LSI
+       0008  KL5KUSB101B Ethernet [klsi]
+       0009  Sony 10Mbps Ethernet [pegasus]
+       000c  USB-to-RS-232
+       000d  USB-to-RS-232
+       0014  RS-232 J104
+       0040  Ethernet Adapter
+       2008  Ethernet Adapter
+05eb  FFC, Ltd
+05ec  COM21, Inc.
+05ee  Cytechinfo Inc.
+05ef  AVB, Inc. [anko?]
+       020a  Top Shot Pegasus Joystick
+       8884  Mag Turbo Force Wheel
+       8888  Top Shot Force Feedback Racing Wheel
+05f0  Canopus Co., Ltd
+       0101  DA-Port DAC
+05f1  Compass Communications
+05f2  Dexin Corp., Ltd
+       0010  AQ Mouse
+05f3  PI Engineering, Inc.
+       0007  Kinesis Advantage PRO MPC/USB Keyboard
+       0081  Kinesis Integrated Hub
+       020b  PS2 Adapter
+       0232  X-Keys Switch Interface, Programming Mode
+       0261  X-Keys Switch Interface, SPLAT Mode
+       0264  X-Keys Switch Interface, Composite Mode
+05f5  Unixtar Technology, Inc.
+05f6  AOC International
+05f7  RFC Distribution(s) PTE, Ltd
+05f9  PSC Scanning, Inc.
+05fa  Siemens Telecommunications Systems, Ltd
+       3301  Keyboard with PS/2 Mouse Port
+       3302  Keyboard
+       3303  Keyboard with PS/2 Mouse Port
+05fc  Harman Multimedia
+       7849  Harman/Kardon SoundSticks
+05fd  InterAct, Inc.
+       0239  SV-239 HammerHead Digital
+       0251  Raider Pro
+       0253  ProPad 8 Digital
+       0286  SV-286 Cyclone Digital
+       262a  3dfx HammerHead FX
+       262f  HammerHead Fx
+       daae  Game Shark
+05fe  Chic Technology Corp.
+       0001  Mouse
+       0003  Cypress USB Mouse
+       0005  Viewmaster 4D Browser Mouse
+       0007  Twinhead Mouse
+       0009  Inland Pro 4500/5000 Mouse
+       0011  Browser Mouse
+       1010  Optical Wireless
+05ff  LeCroy Corp.
+0600  Barco Display Systems
+0601  Jazz Hipster Corp.
+       0003  Internet Security Co., Ltd. SecureKey
+0602  Vista Imaging, Inc.
+       1001  ViCam WebCam
+0603  Novatek Microelectronics Corp.
+       00f1  Keyboard
+       6871  Mouse
+0604  Jean Co., Ltd
+0605  Anchor C&C Co., Ltd
+0606  Royal Information Electronics Co., Ltd
+0607  Bridge Information Co., Ltd
+0608  Genrad Ads
+0609  SMK Manufacturing, Inc.
+       031d  eHome Infrared Receiver
+       0322  eHome Infrared Receiver
+       ff12  SMK Bluetooth Device
+060a  Worthington Data Solutions, Inc.
+060b  Solid Year
+       0001  MacAlly Keyboard
+       1006  Japanese Keyboard - 260U
+       2101  Keyboard
+       5811  ACK-571U Wireless Keyboard
+       5903  Japanese Keyboard - 595U
+       6001  SolidTek USB 2p HUB
+       6002  SolidTek USB Keyboard
+       6003  Japanese Keyboard - 600HM
+       a001  Maxwell Compact Pc PM3
+060c  EEH Datalink GmbH
+060d  Auctor Corp.
+060e  Transmonde Technologies, Inc.
+060f  Joinsoon Electronics Mfg. Co., Ltd
+0610  Costar Electronics, Inc.
+0611  Totoku Electric Co., Ltd
+0613  TransAct Technologies, Inc.
+0614  Bio-Rad Laboratories
+0615  Quabbin Wire & Cable Co., Inc.
+0616  Future Techno Designs PVT, Ltd
+0617  Swiss Federal Insitute of Technology
+0618  MacAlly
+       0101  Mouse
+0619  Seiko Instruments, Inc.
+       0101  SLP-100 Driver
+       0102  SLP-200 Driver
+       0103  SLP-100N Driver
+       0104  SLP-200N Driver
+       0105  SLP-240 Driver
+061a  Veridicom International, Inc.
+       0110  5thSense Fingerprint Sensor
+       0200  FPS200 Fingerprint Sensor
+       8200  VKI-A Fingerprint Sensor/Flash Storage (dumb)
+       9200  VKI-B Fingerprint Sensor/Flash Storage (smart)
+061b  Promptus Communications, Inc.
+061c  Act Labs, Ltd
+061d  Quatech, Inc.
+061e  Nissei Electric Co.
+       0001  nissei 128DE-USB -
+       0010  nissei 128DE-PNA -
+0620  Alaris, Inc.
+       0004  QuickVideo weeCam
+       0007  QuickVideo weeCam
+       000a  QuickVideo weeCam
+       000b  QuickVideo weeCam
+0621  ODU-Steckverbindungssysteme GmbH & Co. KG
+0622  Iotech, Inc.
+0623  Littelfuse, Inc.
+0624  Avocent Corp.
+0625  TiMedia Technology Co., Ltd
+0626  Nippon Systems Development Co., Ltd
+0627  Adomax Technology Co., Ltd
+0628  Tasking Software, Inc.
+0629  Zida Technologies, Ltd
+062a  Creative Labs
+       0000  Optical mouse
+       0001  Notebook Optical Mouse
+       0201  Defender Office Keyboard (K7310) S Zodiak KM-9010
+       9003  VoIP Conference Hub (A16GH)
+       9004  USR9602 USB Internet Mini Phone
+062b  Greatlink Electronics Taiwan, Ltd
+062c  Institute for Information Industry
+062d  Taiwan Tai-Hao Enterprises Co., Ltd
+062e  Mainsuper Enterprises Co., Ltd
+062f  Sin Sheng Terminal & Machine, Inc.
+0631  JUJO Electronics Corp.
+0633  Cyrix Corp.
+0634  Micron Technology, Inc.
+0635  Methode Electronics, Inc.
+0636  Sierra Imaging, Inc.
+       0003  Vivicam 35Xx
+0638  Avision, Inc.
+       0268  iVina 1200U Scanner
+       026a  Minolta Dimage Scan Dual II
+       0a10  iVina FB1600/UMAX Astra 4500
+       0a13  AV600U
+       0a16  SC-215
+       0a30  UMAX Astra 6700 Scanner
+       0a41  Avision AM3000/MF3000 Series
+       0f01  fi-4010CU
+       4004  Minolta Dimage Scan Elite II
+0639  Chrontel, Inc.
+063a  Techwin Corp.
+063b  Taugagreining HF
+063c  Yamaichi Electronics Co., Ltd (Sakura)
+063d  Fong Kai Industrial Co., Ltd
+063e  RealMedia Technology, Inc.
+063f  New Technology Cable, Ltd
+0640  Hitex Development Tools
+0641  Woods Industries, Inc.
+0642  VIA Medical Corp.
+0644  TEAC Corp.
+       0000  Floppy
+       1000  CD-ROM Drive
+       800d  TASCAM Portastudio DP-01FX
+       d001  CD-R/RW Unit
+       d002  CD-R/RW Unit
+       d010  CD-RW/DVD Unit
+0645  Who? Vision Systems, Inc.
+0646  UMAX
+0647  Acton Research Corp.
+       0100  ARC SpectraPro UV/VIS/IR Monochromator/Spectrograph
+       0101  ARC AM-VM Mono Airpath/Vacuum Monochromator/Spectrograph
+       0102  ARC Inspectrum Mono
+       0103  ARC Filterwheel
+       03e9  Inspectrum 128x1024 F VIS Spectrograph
+       03ea  Inspectrum 256x1024 F VIS Spectrograph
+       03eb  Inspectrum 128x1024 B VIS Spectrograph
+       03ec  Inspectrum 256x1024 B VIS Spectrograph
+0648  Inside Out Networks
+0649  Weli Science Co., Ltd
+064b  White Mountain DSP, Inc.
+064c  Ji-Haw Industrial Co., Ltd
+064d  TriTech Microelectronics, Ltd
+064e  Suyin Corp.
+064f  WIBU-Systems AG
+       0bd7  BOX/U
+       0bd8  BOX/RU
+0650  Dynapro Systems
+0651  Likom Technology Sdn. Bhd.
+0652  Stargate Solutions, Inc.
+0653  CNF, Inc.
+0654  Granite Microsystems, Inc.
+       0005  Device Bay Controller
+       0006  Hub
+       0007  Device Bay Controller
+       0016  Hub
+0655  Space Shuttle Hi-Tech Co., Ltd
+0656  Glory Mark Electronic, Ltd
+0657  Tekcon Electronics Corp.
+0658  Sigma Designs, Inc.
+0659  Aethra
+065a  Optoelectronics Co., Ltd
+       0001  Barcode scanner
+065b  Tracewell Systems
+065e  Silicon Graphics
+065f  Good Way Technology Co., Ltd & GWC technology Inc.
+0660  TSAY-E (BVI) International, Inc.
+0661  Hamamatsu Photonics K.K.
+0662  Kansai Electric Co., Ltd
+0663  Topmax Electronic Co., Ltd
+       0103  CobraPad
+0667  Aiwa Co., Ltd
+       0fa1  TD-U8000 Tape Drive
+0668  WordWand
+0669  Oce' Printing Systems GmbH
+066a  Total Technologies, Ltd
+066b  Linksys, Inc.
+       0105  SCM eUSB SmartMedia Card Reader
+       010a  Melco MCR-U2 SmartMedia / CompactFlash Reader
+       200c  USB10TX
+       2202  USB10TX Ethernet [pegasus]
+       2203  USB100TX Ethernet [pegasus]
+       2204  USB100TX HomePNA Ethernet [pegasus]
+       2206  USB Ethernet [pegasus]
+       2207  HomeLink Phoneline 10M Network Adapter
+       2211  WUSB11 802.11b Adapter
+       2212  WUSB11v2.5 802.11b Adapter
+       2213  WUSB12v1.1 802.11b Adapter
+       2219  Instant Wireless Network Adapter
+       400b  USB10TX
+066d  Entrega, Inc.
+066e  Acer Semiconductor America, Inc.
+066f  SigmaTel, Inc.
+       003b  MP3 Player
+       003e  MP3 Player
+       003f  MP3 Player
+       0040  MP3 Player
+       0041  MP3 Player
+       0042  MP3 Player
+       0043  MP3 Player
+       004b  A-Max PA11 MP3 Player
+       3400  STMP3400 D-Major MP3 Player
+       3410  STMP3410 D-Major MP3 Player
+       3500  Player Recovery Device
+       4200  STIr4200 IrDA Bridge
+       4210  STIr4210 IrDA Bridge
+       8000  MSCN MP3 Player
+       8001  SigmaTel MSCN Audio Player
+       8004  MSCNMMC MP3 Player
+       8008  i-Bead 100 MP3 Player
+       8020  MP3 Player
+       8034  MP3 Player
+       8036  MP3 Player
+       8038  MP3 Player
+       8056  MP3 Player
+       8060  MP3 Player
+       8066  MP3 Player
+       807e  MP3 Player
+       8092  MP3 Player
+       8096  MP3 Player
+       809a  MP3 Player
+       80aa  MP3 Player
+       80ac  MP3 Player
+       80b8  MP3 Player
+       80ba  MP3 Player
+       80bc  MP3 Player
+       80bf  MP3 Player
+       80c5  MP3 Player
+       80c8  MP3 Player
+       80ca  MP3 Player
+       80cc  MP3 Player
+       8104  MP3 Player
+       8106  MP3 Player
+       8108  MP3 Player
+       810a  MP3 Player
+       810c  MP3 Player
+       8122  MP3 Player
+       8124  MP3 Player
+       8126  MP3 Player
+       8128  MP3 Player
+       8134  MP3 Player
+       8136  MP3 Player
+       8138  MP3 Player
+       813a  MP3 Player
+       813e  MP3 Player
+       8140  MP3 Player
+       8142  MP3 Player
+       8144  MP3 Player
+       8146  MP3 Player
+       8148  MP3 Player
+       814c  MP3 Player
+       8201  MP3 Player
+       8202  Jens of Sweden / I-BEAD 150M/150H MP3 player
+       8203  MP3 Player
+       8204  MP3 Player
+       8205  MP3 Player
+       8206  Digital MP3 Music Player
+       8207  MP3 Player
+       8208  MP3 Player
+       8209  MP3 Player
+       820a  MP3 Player
+       820b  MP3 Player
+       820c  MP3 Player
+       820d  MP3 Player
+       820e  MP3 Player
+       820f  MP3 Player
+       8210  MP3 Player
+       8211  MP3 Player
+       8212  MP3 Player
+       8213  MP3 Player
+       8214  MP3 Player
+       8215  MP3 Player
+       8216  MP3 Player
+       8217  MP3 Player
+       8218  MP3 Player
+       8219  MP3 Player
+       821a  MP3 Player
+       821b  MP3 Player
+       821c  MP3 Player
+       821d  MP3 Player
+       821e  MP3 Player
+       821f  MP3 Player
+       8220  MP3 Player
+       8221  MP3 Player
+       8222  MP3 Player
+       8223  MP3 Player
+       8224  MP3 Player
+       8225  MP3 Player
+       8226  MP3 Player
+       8227  MP3 Player
+       8228  MP3 Player
+       8229  MP3 Player
+       8230  MP3 Player
+       9000  MP3 Player
+       9001  MP3 Player
+       9002  MP3 Player
+0672  Labtec, Inc.
+       1041  LCS1040 Speaker System
+       5000  SpaceBall 4000 FLX
+0673  HCL
+       5000  Keyboard
+0674  Key Mouse Electronic Enterprise Co., Ltd
+0675  Draytech
+       0110  Vigor 128 ISDN TA
+       0550  Vigor550
+0676  Teles AG
+0677  Aiwa Co., Ltd
+       07d5  TM-ED1285(USB)
+       0fa1  TD-U8000 Tape Drive
+0678  ACard Technology Corp.
+067b  Prolific Technology, Inc.
+       0000  PL2301 USB-USB Bridge
+       0001  PL2302 USB-USB Bridge
+       04bb  PL2303 Serial (IODATA USB-RSAQ2)
+       0610  Onext EG210U MODEM
+       0611  AlDiga AL-11U Quad-band GSM/GPRS/EDGE modem
+       2303  PL2303 Serial Port
+       2305  PL2305 Parallel Port
+       2307  PL2307 USB-ATAPI4 Bridge
+       2313  FITEL PHS U Cable Adaptor
+       2315  Flash Disk Embedded Hub
+       2316  Flash Disk Security Device
+       2317  Mass Storage Device
+       2501  PL2501 USB-USB Bridge (USB 2.0)
+       2507  PL2507 Hi-speed USB to IDE bridge controller
+       2515  Flash Disk Embedded Hub
+       2517  Flash Disk Mass Storage Device
+       25a1  PL25A1 Host-Host Bridge
+       3400  Hi-Speed Flash Disk with TruePrint AES3400
+       3500  Hi-Speed Flash Disk with TruePrint AES3500
+       3507  PL3507 ATAPI6 Bridge
+       aaa0  Prolific Pharos
+       aaa2  PL2303 Serial Adapter (IODATA USB-RSAQ3)
+067c  Efficient Networks, Inc.
+       1001  Siemens SpeedStream 100MBps Ethernet
+       1022  Siemens SpeedStream 1022 802.11b Adapter
+       1023  SpeedStream Wireless
+       4020  SpeedStream 4020 ATM/ADSL Installer
+       4031  Efficient ADSL Modem
+       4032  SpeedStream 4031 ATM/ADSL Installer
+       4033  SpeedStream 4031 ATM/ADSL Installer
+       4060  Alcatel Speedstream 4060 ADSL Modem
+       4062  Efficient Networks 4060 Loader
+       5667  Efficient Networks Virtual Bus for ADSL Modem
+       c031  SpeedStream 4031 ATM/ADSL Installer
+       c032  SpeedStream 4031 ATM/ADSL Installer
+       c033  SpeedStream 4031 ATM/ADSL Installer
+       c060  SpeedStream 4060 Miniport ATM/ADSL Adapter
+       d667  Efficient Networks Virtual Bus for ADSL Modem
+       e240  Speedstream Ethernet Adapter E240
+       e540  Speedstream Ethernet Adapter E240
+067d  Hohner Corp.
+067e  Intermec
+       1001  Mobile Computer
+067f  Virata, Ltd
+       4552  DSL-200 ADSL Modem
+       6542  DSL Modem
+       6549  DSL Modem
+       7541  DSL Modem
+0680  Realtek Semiconductor Corp., CPP Div. (Avance Logic)
+       0002  Arowana Optical Wheel Mouse MSOP-01
+0681  Siemens Information and Communication Products
+       0001  Dect Base
+       0002  Gigaset 3075 Passive ISDN
+       0005  ID-Mouse with Fingerprint Reader
+       0012  I-Gate 802.11b Adapter
+       001b  WLL013
+       0022  Gigaset SX353 ISDN
+       002b  A-100-I ADSL Modem
+       002e  ADSL Router_S-141
+       0034  GSM module MC35/ES75 USB Modem
+       3c06  54g USB Network Adapter
+0682  Victor Company of Japan, Ltd
+0684  Actiontec Electronics, Inc.
+0686  Minolta Co., Ltd
+       2001  PagePro 4110W
+       3001  PagePro 4100
+       3006  PagePro 1250W
+       302e  Develop D 1650iD PCL
+       3034  Develop D 2050iD PCL
+       4001  Dimage 2300
+       4003  Dimage 2330 Zoom Camera
+       4004  Scan Elite II
+       4005  Minolta DiMAGE E201 Mass Storage Device
+       4006  Dimage 7 Camera
+       4007  Dimage S304 Camera
+       4008  Dimage 5 Camera
+       4009  Dimage X Camera
+       400a  Dimage S404 Camera
+       400b  Dimage 7i Camera
+       400c  Dimage F100 Camera
+       400d  Scan Dual III
+       400e  Dimage 5400
+       400f  Dimage 7Hi Camera
+       4010  Dimage Xi Camera
+       4011  Dimage F300 Camera
+       4012  Dimage F200 Camera
+       4014  Dimage S414 Camera
+       4015  Dimage XT Camera [storage]
+       4016  Dimage XT Camera [remote mode]
+       4017  Dimage E223
+       4018  Dimage Z1  Camera
+       401a  Dimage A1 Camera
+       401c  Dimage X20 Camera
+       401e  Dimage E323 Camera
+068a  Pertech, Inc.
+068b  Potrans International, Inc.
+068e  CH Products, Inc.
+       00e2  HFX OEM Joystick
+       00f1  Pro Throttle
+       00f2  Flight Sim Pedals
+       00f3  Fighterstick
+       00ff  Flight Sim Yoke
+       0500  GameStick 3D
+       0501  CH Pro Pedals
+       0504  F-16 Combat Stick
+0690  Golden Bridge Electech, Inc.
+0693  Hagiwara Sys-Com Co., Ltd
+       0002  FlashGate SmartMedia Card Reader
+       0003  FlashGate CompactFlash Card Reader
+       0005  FlashGate
+       0006  SM PCCard R/W and SPD
+       0007  FlashGate ME (Authenticated)
+       000a  SDCard/MMC Reader/Writer
+0694  Lego Group
+       0001  Mindstorms Tower
+0698  Chuntex (CTX)
+       1786  1300ex Monitor
+       9999  VLxxxx Monitor+Hub
+0699  Tektronix, Inc.
+069a  Askey Computer Corp.
+       0001  VC010 WebCam [pwc]
+       0303  Cable Modem
+       0311  ADSL Router Remote NDIS Device
+       0318  Remote NDIS Device
+       0319  220V Remote NDIS Device
+       0320  IEEE 802.11b Wireless LAN Card
+       0321  Dynalink WLL013 / Compex WLU11A 802.11b Adapter
+       0402  Scientific Atlanta WebSTAR 100 & 200 series Cable Modem
+       0811  BT Virtual Bus for Helium
+       0821  BT Voyager 1010 802.11b Adapter
+       4402  Scientific Atlanta WebSTAR 2000 series Cable Modem
+       4403  Scientific Atlanta WebSTAR 300 series Cable Modem
+       4501  Scientific-Atlanta WebSTAR 2000 series Cable Modem
+069b  Thomson, Inc.
+       0704  DCM245 Cable Modem
+       070c  MP3 Player
+       070d  MP3 Player
+       070e  MP3 Player
+       070f  RCA Lyra RD1071 MP3 Player
+       2220  RCA Kazoo RD1000 MP3 Player
+       300a  RCA Lyra MP3 Player
+       3012  MP3 Player
+       3013  MP3 Player
+       5557  RCA CDS6300
+069d  Hughes Network Systems (HNS)
+       0001  Satellite Receiver Device
+       0002  Satellite Device
+069e  Marx
+       0005  CryptoBox v1.2
+069f  Allied Data Technologies BV
+       0010  Tornado Speakerphone FaxModem 56.0
+       0011  Tornado Speakerphone FaxModem 56.0
+       1000  ADT VvBus for CopperJet
+06a2  Topro Technology, Inc.
+06a3  Saitek PLC
+       0006  Cyborg Gold Joystick
+       0109  P880 Pad
+       0160  ST290 Pro
+       0200  Xbox Adrenalin Hub
+       0241  Xbox Adrenalin Gamepad
+       0255  X52 Flight Controller
+       040b  P990 Dual Analog Pad
+       040c  P2900 Wireless Pad
+       0422  ST90 Joystick
+       0460  ST290 Pro Flight Stick
+       0463  ST290
+       0464  Cyborg Evo
+       0471  Cyborg Graphite Stick
+       0501  R100 Sports Wheel
+       0502  ST200 Stick
+       0506  R220 Digital Wheel
+       051e  Cyborg Digital II Stick
+       052d  P750 Gamepad
+       053c  X45 Flight Controller
+       053f  X36F Flightstick
+       056c  P2000 Tilt Pad
+       056f  P2000 Tilt Pad
+       05d2  PC Dash 2
+       075c  X52 Flight Controller
+       0805  R440 Force Wheel
+       1003  GM2 Action Pad
+       1009  Action Pad
+       100a  SP550 Pad and Joystick Combo
+       100b  SP550 Pad
+       1509  P3000 Wireless Pad
+       1589  P3000 Wireless Pad
+       2541  X45 Flight Controller
+       3509  P3000 RF GamePad
+       353e  Cyborg Evo Wireless
+       3589  P3000 Wireless Pad
+       35be  Cyborg Evo
+       5509  P3000 Wireless Pad
+       8000  Gamers' Keyboard
+       801e  Cyborg 3D Digital Stick II
+       8021  Eclipse II Keyboard
+       802d  P750 Pad
+       803f  X36 Flight Controller
+       806f  P2000 Tilt Pad
+       80c0  Pro Gamer Command Unit
+       a502  Gaming Mouse
+       ff04  R440 Force Wheel
+       ff0c  Cyborg Force Rumble Pad
+       ff0d  P2600 Rumble Force Pad
+       ff12  Cyborg 3D Force Stick
+       ff17  ST 330 Rumble Force Stick
+       ff52  Cyborg 3D Rumble Force Joystick
+       ffb5  Cyborg Evo Force Joystick
+06a4  Xiamen Doowell Electron Co., Ltd
+06a5  Divio
+       0000  Typhoon Webcam 100k [nw8000]
+       d001  ProLink DS3303u WebCam
+       d800  Chicony TwinkleCam
+       d820  Wize Media 1000
+06a7  MicroStore, Inc.
+06a8  Topaz Systems, Inc.
+       0042  SignatureGem 1X5 Pad
+       0043  SignatureGem 1X5-HID Pad
+06a9  Westell
+       0005  WireSpeed Dual Connect Modem
+       0006  WireSpeed Dual Connect Modem
+       000a  WireSpeed Dual Connect Modem
+       000b  WireSpeed Dual Connect Modem
+       000e  802.11g Adapter
+06aa  Sysgration, Ltd
+06ac  Fujitsu Laboratories of America, Inc.
+06ad  Greatland Electronics Taiwan, Ltd
+06ae  Professional Multimedia Testing Centre
+06af  Harting, Inc. of North America
+06b8  Pixela Corp.
+06b9  Alcatel Telecom
+       0121  SpeedTouch 121g Wireless Dongle
+       2001  SPEED TOUCH Card
+       4061  SpeedTouch ISDN or ADSL Modem
+       a5a5  DynaMiTe Modem
+06ba  Smooth Cord & Connector Co., Ltd
+06bb  EDA, Inc.
+06bc  Oki Data Corp.
+06bd  AGFA-Gevaert NV
+       0001  SnapScan 1212U
+       0002  SnapScan 1236U
+       0100  SnapScan Touch
+       0101  SNAPSCAN ELITE
+       0200  ScanMaker 8700
+       02bf  DUOSCAN f40
+       0400  CL30
+       0401  Mass Storage
+       0403  ePhoto CL18 Camera
+       0404  ePhoto CL20 Camera
+       2061  SnapScan 1212U (?)
+       208d  Snapscan e40
+       208f  SnapScan e50
+       2091  SnapScan e20
+       2093  SnapScan e10
+       2095  SnapScan e25
+       2097  SnapScan e26
+       20fd  SnapScan e52
+       20ff  SnapScan e42
+06be  AME Optimedia Technology Co., Ltd
+       1005  Dazzle DPVM! (1005)
+       d001  P35U Camera Capture
+06bf  Leoco Corp.
+06c2  Phidgets Inc. (formerly GLAB)
+       0030  PhidgetRFID
+       0038  4-Motor PhidgetServo v3.0
+       0039  1-Motor PhidgetServo v3.0
+       003a  8-Motor PhidgetAvancedServo
+       0040  PhidgetInterface Kit 0-0-4
+       0044  PhidgetInterface Kit 0-16-16
+       0045  PhidgetInterface Kit 8-8-8
+       0048  PhidgetStepper (Under Development)
+       0049  PhidgetTextLED Ver 1.0
+       004a  PhidgetLED Ver 1.0
+       004b  PhidgetEncoder Ver 1.0
+       0051  PhidgetInterface Kit 0-5-7 (Custom)
+       0052  PhidgetTextLCD
+       0053  PhidgetInterfaceKit 0-8-8
+       0058  PhidgetMotorControl Ver 1.0
+       0070  PhidgetTemperatureSensor Ver 1.0
+       0071  PhidgetAccelerometer Ver 1.0
+       0072  PhidgetWeightSensor Ver 1.0
+       0073  PhidgetHumiditySensor
+       0074  PhidgetPHSensor
+       0075  PhidgetGyroscope
+06c4  Bizlink International Corp.
+06c5  Hagenuk, GmbH
+06c6  Infowave Software, Inc.
+06c8  SIIG, Inc.
+06c9  Taxan (Europe), Ltd
+       0005  Monitor Control
+       0007  Monitor Control
+       0009  Monitor Control
+06ca  Newer Technology, Inc.
+06cb  Synaptics, Inc.
+       0001  HID Device
+       0002  HID Device
+       0003  HID Device
+       0005  Touchpad/FPS
+       0006  HID Device
+       0007  HID Device
+       0008  HID Device
+       0009  Composite TouchPad and TrackPoint
+       000e  HID Device
+       0010  Composite Human Interface Device
+       0013  Human Interface Device
+06cc  Terayon Communication Systems
+       0101  Cable Modem
+       0102  Cable Modem
+       0103  Cable Modem
+       0104  Cable Modem
+       0304  Cable Modem
+06cd  Keyspan
+       0101  USA-28 PDA [no firmware]
+       0102  USA-28X PDA [no firmware]
+       0103  USA-19 PDA [no firmware]
+       0104  PDA [prerenum]
+       0105  USA-18X PDA [no firmware]
+       0106  USA-19W PDA [no firmware]
+       0107  USA-19 PDA
+       0108  USA-19W PDA
+       0109  USA-49W serial adapter [no firmware]
+       010a  USA-49W serial adapter
+       010b  USA-19Qi serial adapter [no firmware]
+       010c  USA-19Qi serial adapter
+       010d  USA-19Q serial Adapter (no firmware)
+       010e  USA-19Q serial Adapter
+       010f  USA-28 PDA
+       0110  USA-28Xb PDA
+       0111  USA-18 serial Adapter
+       0112  USA-18X PDA
+       0113  USA-28Xb PDA [no firmware]
+       0114  USA-28Xa PDA [no firmware]
+       0115  USA-28Xa PDA
+       0116  USA-18XA serial Adapter (no firmware)
+       0117  USA-18XA serial Adapter
+       0118  USA-19QW PDA [no firmware]
+       0119  USA-19QW PDA
+       011a  USA-49Wlc serial adapter [no firmware]
+       011b  MPR Serial Preloader (MPRQI)
+       011c  MPR Serial (MPRQI)
+       011d  MPR Serial Preloader (MPRQ)
+       011e  MPR Serial (MPRQ)
+       0121  USA-19hs serial adapter
+       012a  USA-49Wlc serial adapter
+       0201  Digital Media Remote
+       0202  UIA-11 remote control
+06cf  SpheronVR AG
+       1010  PanoCam 10
+       1012  PanoCam 12/12X
+06d0  LapLink, Inc.
+       0622  LapLink Gold USB-USB Bridge [net1080]
+06d1  Daewoo Electronics Co., Ltd
+06d3  Mitsubishi Electric Corp.
+       0380  CP8000D Port
+       0381  CP770D Port
+       0385  CP900D Port
+       0387  CP980D Port
+       038b  CP3020D Port
+       038c  CP900DW(ID) Port
+       0393  CP9500D/DW Port
+       0394  CP9000D/DW Port
+       03a1  CP9550D/DW Port
+06d4  Cisco Systems
+06d5  Toshiba
+       4000  Japanese Keyboard
+06d6  Aashima Technology B.V.
+       002d  Trust PowerC@m 350FT
+       002e  Trust PowerC@m 350FS
+       0030  Trust 710 LCD POWERC@M ZOOM - MSD
+       0031  Trust 710 LCD POWERC@M ZOOM
+       003a  Trust PowerC@m 770Z
+       003c  Trust 910z PowerC@m
+       003f  Trust 735S POWERC@M ZOOM, WDM DSC Bulk Driver
+       0050  Trust 738AV LCD PV Digital Camera
+       0062  TRUST 782AV LCD P. V. Video Capture
+       0066  TRUST Digital PCTV and Movie Editor
+       006b  TRUST AUDIO VIDEO EDITOR
+06d7  Network Computing Devices (NCD)
+06d8  Technical Marketing Research, Inc.
+06da  Phoenixtec Power Co., Ltd
+       0002  UPS
+06db  Paradyne
+06dc  Foxlink Image Technology Co., Ltd
+       0012  Scan 1200c Scanner
+       0014  Prolink Winscan Pro 2448U
+06de  Heisei Electronics Co., Ltd
+06e0  Multi-Tech Systems, Inc.
+       f101  MT5634ZBA-USB MultiModemUSB (old firmware)
+       f103  MT5634MU MultiMobileUSB
+       f104  MT5634ZBA-USB MultiModemUSB (new firmware)
+       f107  MT5634ZBA-USB-V92 MultiModemUSB
+06e1  ADS Technologies, Inc.
+       0008  UBS-10BT Ethernet [klsi]
+       0009  UBS-10BT Ethernet
+       0833  Mass Storage Device
+       a160  Instant Video-To-Go RDX-160 (no firmware)
+       a161  Instant Video-To-Go RDX-160
+       a190  Instand VCD Capture
+       a191  Instant VideoXpress
+       a337  Mini DigitalTV
+       a701  DVD Xpress
+       b337  Mini DigitalTV
+       b701  DVD Xpress B
+06e4  Alcatel Microelectronics
+06e6  Tiger Jet Network, Inc.
+       0200  Internet Phone
+       0201  Internet Phone
+       0202  Composite Device
+       0203  Internet Phone
+       0210  Composite Device
+       0211  Internet Phone
+       0212  Internet Phone
+       031c  Internet Phone
+       031d  Internet Phone
+       031e  Internet Phone
+       3200  Composite Device
+       3201  Internet Phone
+       3202  Composite Device
+       3203  Composite Device
+       7200  Composite Device
+       7210  Composite Device
+       7250  Composite Device
+       825c  Internet Phone
+       831c  Internet Phone
+       831d  Composite Device
+       831e  Composite Device
+       b200  Composite Device
+       b201  Composite Device
+       b202  Internet Phone
+       b210  Internet Phone
+       b211  Composite Device
+       b212  Composite Device
+       b250  Composite Device
+       b251  Internet Phone
+       b252  Internet Phone
+       c200  Internet Phone
+       c201  Internet Phone
+       c202  Composite Device
+       c203  Internet Phone
+       c210  Personal PhoneGateway
+       c211  Personal PhoneGateway
+       c212  Personal PhoneGateway
+       c213  PPG Device
+       c25c  Composite Device
+       c290  PPG Device
+       c291  PPG Device
+       c292  PPG Device
+       c293  Personal PhoneGateway
+       c31c  Composite Device
+       c39c  Personal PhoneGateway
+       c39d  PPG Device
+       c39e  PPG Device
+       c39f  PPG Device
+       c700  Internet Phone
+       c701  Internet Phone
+       c702  Composite Device
+       c703  Internet Phone
+       c710  VoIP Combo Device
+       c711  VoIP Combo
+       c712  VoIP Combo Device
+       c713  VoIP Combo Device
+       cf00  Composite Device
+       cf01  Internet Phone
+       cf02  Internet Phone
+       cf03  Composite Device
+       d210  Personal PhoneGateway
+       d211  PPG Device
+       d212  PPG Device
+       d213  Personal PhoneGateway
+       d700  Composite Device
+       d701  Composite Device
+       d702  Internet Phone
+       d703  Composite Device
+       d710  VoIP Combo
+       d711  VoIP Combo Device
+       d712  VoIP Combo
+       d713  VoIP Combo
+       df00  Composite Device
+       df01  Composite Device
+       df02  Internet Phone
+       df03  Internet Phone
+       f200  Internet Phone
+       f201  Internet Phone
+       f202  Composite Device
+       f203  Composite Device
+       f210  Internet Phone
+       f250  Composite Device
+       f252  Internet Phone
+       f310  Internet Phone
+       f350  Composite Device
+06ea  Sirius Technologies
+       0001  NetCom Roadster II 56k
+       0002  Roadster II 56k
+06eb  PC Expert Tech. Co., Ltd
+06ef  I.A.C. Geometrische Ingenieurs B.V.
+06f0  T.N.C Industrial Co., Ltd
+       de01  DualCam Video Camera
+       de02  DualCam Still Camera
+06f1  Opcode Systems, Inc.
+       a011  SonicPort
+       a021  SonicPort Optical
+06f2  Emine Technology Co.
+       0011  KVM Switch Keyboard
+06f6  Wintrend Technology Co., Ltd
+06f7  Wailly Technology Ltd
+       0003  USB->Din 4 Adaptor
+06f8  Guillemot Corp.
+       a300  Dual Analog Leader GamePad
+       b000  Hercules DJ Console
+       c000  Hercules Muse Pocket
+       d002  Hercules DJ Console
+       e000  HWGUSB2-54 WLAN
+       e010  HWGUSB2-54-LB
+       e020  HWGUSB2-54V2-AP
+06fa  HSD S.r.L
+06fc  Motorola Semiconductor Products Sector
+06fd  Boston Acoustics
+       0101  Audio Device
+       0102  Audio Device
+       0201  2-piece Audio Device
+06fe  Gallant Computer, Inc.
+0701  Supercomal Wire & Cable SDN. BHD.
+0703  Bvtech Industry, Inc.
+0705  NKK Corp.
+0706  Ariel Corp.
+0707  Standard Microsystems Corp.
+       0100  2202 Ethernet [klsi]
+       0200  2202 Ethernet [pegasus]
+       0201  EZ Connect USB Ethernet
+       ee04  SMCWUSB32 802.11b Wireless LAN Card
+       ee06  EZ-Connect 802.11g Adapter
+       ee13  EZ-Connect 802.11g Adapter
+0708  Putercom Co., Ltd
+       047e  USB-1284 BRIDGE
+0709  Silicon Systems, Ltd (SSL)
+070a  Oki Electric Industry Co., Ltd
+       4002  Bluetooth Device
+       4003  Bluetooth Device
+070d  Comoss Electronic Co., Ltd
+070e  Excel Cell Electronic Co., Ltd
+0710  Connect Tech, Inc.
+       0001  WhiteHeat (fake ID)
+       8001  WhiteHeat
+0711  Magic Control Technology Corp.
+       0100  Hub
+       0180  IRXpress Infrared Device
+       0181  IRXpress Infrared Device
+       0200  BAY-3U1S1P Serial Port
+       0210  MCT1S Serial Port
+       0230  MCT-232 Serial Port
+       0231  PS/2 Mouse Port
+       0232  Serial On Port
+       0240  PS/2 to USB Converter
+       0300  BAY-3U1S1P Parallel Port
+       0302  Parallel Port
+       0900  SVGA Adapter
+0713  Interval Research Corp.
+0714  NewMotion, Inc.
+       0003  ADB to USB convertor
+0717  ZNK Corp.
+0718  Imation Corp.
+       0002  SuperDisk 120MB
+       0003  SuperDisk 120MB (Authenticated)
+       0060  Flash Drive
+       0061  Flash Drive
+       0062  Flash Drive
+       0063  Swivel Flash Drive
+       0064  Flash Drive
+       0065  Flash Drive
+       0066  Flash Drive
+       0067  Flash Drive
+       0068  Flash Drive
+       0084  USB Flash Drive Mini
+0719  Tremon Enterprises Co., Ltd
+071b  Domain Technologies, Inc.
+       0002  DTI-56362-USB Digital Interface Unit
+       0101  Audio4-USB DSP Data Acquisition Unit
+       0201  Audio4-5410 DSP Data Acquisition Unit
+       0301  SB-USB JTAG Emulator
+071c  Xionics Document Technologies, Inc.
+071d  Eicon Networks Corp.
+       1000  Diva ISDN TA
+       1003  Diva
+       2000  Teledat Surf
+071e  Ariston Technologies
+0723  Centillium Communications Corp.
+       0002  Palladia 300/400 Adsl Modem
+0726  Vanguard International Semiconductor-America
+0729  Amitm
+       1000  USC-1000 Serial Port
+072e  Sunix Co., Ltd
+072f  Advanced Card Systems, Ltd
+       0001  AC1030-based SmartCard Reader
+       0008  ACR 80 Smart Card Reader
+       1000  PLDT Drive
+       1001  PLDT Drive
+       8002  AET63 BioTRUSTKey
+       8003  ACR120
+       8103  ACR120
+       9000  ACR38 AC1038-based Smart Card Reader
+       90cc  ACR38 SmartCard Reader
+       90cf  ACR38 SAM Smart Card Reader
+       90d0  PertoSmart EMV - Card Reader
+0731  Susteen, Inc.
+       0528  SonyEricsson DCU-11 Cable
+0732  Goldfull Electronics & Telecommunications Corp.
+0733  ViewQuest Technologies, Inc.
+       0101  Digital Video Camera
+       0110  VQ110
+       0401  CS330 WebCam
+       0402  M-318B WebCam
+       0430  Intel Pro Share WebCam
+       0630  VQ630 Dual Mode Digital Camera(Bulk)
+       0631  Hercules Dualpix
+       0780  Smart Cam Deluxe(composite)
+       1310  Epsilon 1.3/Jenoptik JD C1.3/UMAX AstraPix 470
+       1311  Digital Dream Epsilon 1.3
+       2211  Jenoptik
+0734  Lasat Communications A/S
+       0001  560V Modem
+       0002  Lasat 560V Modem
+       043a  DVS Audio
+0735  Asuscom Network
+       2100  ISDN Adapter
+       2101  ISDN Adapter
+       6694  ISDN Adapter
+       c541  ISDN TA 280
+0736  Lorom Industrial Co., Ltd
+0738  Mad Catz, Inc.
+       4507  XBox Device
+       4516  XBox Device
+       4520  XBox Device
+       4526  XBox Device
+       4536  XBox Device
+       4540  XBox Device
+       4556  XBox Device
+       4566  XBox Device
+       4576  XBox Device
+       4586  XBox Device
+       4588  XBox Device
+073a  Chaplet Systems, Inc.
+073b  Suncom Technologies
+073d  Eutron S.p.a.
+       0005  Crypto Token
+       0007  CryptoIdentity CCID
+       0025  SmartKey 3
+       0c00  Pocket Reader
+       0d00  StarSign Bio Token 3.0 EU
+073c  Industrial Electronic Engineers, Inc.
+       0305  Pole Display (PC305-3415  2 x 20 Line Display)
+       0322  Pole Display (PC322-3415  2 x 20 Line Display)
+       0324  Pole Display (LB324-USB   4 x 20 Line Display)
+       0330  Pole Display (P330-3415   2 x 20 Line Display)
+       0450  Pole Display (L450-USB   Graphic Line Display)
+       0505  Pole Display (SPC505-3415 2 x 20 Line Display)
+       0522  Pole Display (SPC522-3415 2 x 20 Line Display)
+       0624  Pole Display (SP324-3415  2 x 20 Line Display)
+073e  NEC, Inc.
+       0301  Game Pad
+0745  Syntech Information Co., Ltd
+0746  Onkyo Corp.
+       5500  SE-U55 Audio Device
+0747  Labway Corp.
+0748  Strong Man Enterprise Co., Ltd
+0749  EVer Electronics Corp.
+074a  Ming Fortune Industry Co., Ltd
+074b  Polestar Tech. Corp.
+074c  C-C-C Group PLC
+074d  Micronas GmbH
+       3553  Composite USB-Device
+       3554  Composite USB-Device
+       3556  Composite USB-Device
+074e  Digital Stream Corp.
+       0001  PS/2 Adapter
+       0002  PS/2 Adapter
+0755  Aureal Semiconductor
+0757  Network Technologies, Inc.
+075b  Sophisticated Circuits, Inc.
+       0001  Kick-off! Watchdog
+0763  Midiman
+       0115  KeyRig 25
+       0117  Trigger Finger
+       0119  MidAir
+       0150  M-Audio Uno
+       0160  M-Audio 1x1
+       0192  M-Audio Keystation 88es
+       0193  ProKeys 88
+       0194  ProKeys 88sx
+       0195  Oxygen 8 v2
+       0196  Oxygen 49
+       0197  Oxygen 61
+       0198  Axiom 25
+       0199  Axiom 49
+       019a  Axiom 61
+       019b  KeyRig 49
+       019c  KeyStudio
+       1001  MidiSport 2x2
+       1002  MidiSport 2x2
+       1003  MidiSport 2x2
+       1010  MidiSport 1x1
+       1011  MidiSport 1x1
+       1014  M-Audio Keystation Loader
+       1015  M-Audio Keystation
+       1020  Midisport 4x4
+       1021  MidiSport 4x4
+       1030  Midisport 8x8
+       1031  MidiSport 8x8/s Loader
+       1033  MidiSport 8x8/s
+       1040  M-Audio MidiSport 2x4 Loader
+       1041  M-Audio MidiSport 2x4
+       2001  M Audio Quattro
+       2002  M Audio Duo
+       2003  M Audio AudioPhile
+       2004  M-Audio MobilePre
+       2006  M-Audio Transit
+       2007  M-Audio Sonica Theater
+       2008  M-Audio Ozone
+       200d  M-Audio OmniStudio
+       200f  M-Audio MobilePre
+       2010  M-Audio Fast Track
+       2013  M-Audio JamLab
+       2015  M-Audio RunTime DFU
+       2016  M-Audio RunTime DFU
+       2019  M-Audio Ozone Academic
+       201a  M-Audio Micro
+       201b  M-Audio RunTime DFU
+       201d  M-Audio Producer
+       2080  M-Audio RunTime DFU
+       2081  M-Audio RunTime DFU
+       2803  M-Audio Audiophile DFU
+       2804  M-Audio MobilePre DFU
+       2806  M-Audio Transit DFU
+       2815  M-Audio DFU
+       2816  M-Audio DFU
+       281b  M-Audio DFU
+       2880  M-Audio DFU
+       2881  M-Audio DFU
+0764  Cyber Power System, Inc.
+       0005  Cyber Power UPS
+       0501  CP1500 AVR UPS
+0765  X-Rite, Inc.
+0766  Jess-Link Products Co., Ltd
+0767  Tokheim Corp.
+0768  Camtel Technology Corp.
+       0006  Camtel Technology USB TV Genie Pro FM Model TVB330
+       0023  eHome Infrared Receiver
+0769  Surecom Technology Corp.
+       11f2  EP-9001-g 802.11g 54M WLAN Adapter
+       11f3  RT2570
+       11f7  802.11g 54M WLAN Adapter
+       31f3  RT2573
+076a  Smart Technology Enablers, Inc.
+076b  OmniKey AG
+       0596  CardMan 2020
+       1021  CardMan 1021
+       1221  CardMan 1221
+       1784  CardMan 6020
+       3021  CardMan 3121
+       3610  CardMan 3620
+       3621  CardMan 3621
+       3821  CardMan 3821
+       4321  CardMan 4321
+       5121  CardMan 5121
+       5125  CardMan 5125
+       6622  CardMan 6121
+       a011  CCID Smart Card Reader Keyboard
+       a021  CCID Smart Card Reader
+       a022  CardMan Smart@Link
+       c000  CardMan 3x21 CS
+       c001  CardMan 5121 CS
+076c  Partner Tech
+076d  Denso Corp.
+076e  Kuan Tech Enterprise Co., Ltd
+076f  Jhen Vei Electronic Co., Ltd
+0770  Welch Allyn, Inc - Medical Division
+0774  AmTRAN Technology Co., Ltd
+0775  Longshine Electronics Corp.
+0776  Inalways Corp.
+0777  Comda Enterprise Corp.
+0778  Volex, Inc.
+0779  Fairchild Semiconductor
+077a  Sankyo Seiki Mfg. Co., Ltd
+077b  Linksys
+       08be  BEFCMU10 v4 Cable Modem
+       2219  WUSB11 V2.6 802.11b Adapter
+       2226  USB200M 100baseTX Adapter
+077c  Forward Electronics Co., Ltd
+       0005  NEC Keyboard
+077d  Griffin Technology
+       0223  IMic Audio In/Out
+       0405  iMate, ADB Adapter
+       0410  PowerMate
+       041a  PowerWave
+       07af  iMic
+       627a  Radio SHARK
+077f  Well Excellent & Most Corp.
+0781  SanDisk Corp.
+       0001  SDDR-05a ImageMate CompactFlash Reader
+       0002  SDDR-31 ImageMate II CompactFlash Reader
+       0005  SDDR-05b (CF II) ImageMate CompactFlash Reader
+       0100  ImageMate SDDR-12
+       0200  SDDR-09 (SSFDC) ImageMate SmartMedia Reader [eusb]
+       0400  SecureMate SD/MMC Reader
+       0621  SDDR-86 Imagemate 6-in-1 Reader
+       0720  Sansa C200 series in recovery mode
+       0729  Sansa E200 series in recovery mode
+       0810  SDDR-75 ImageMate CF-SM Reader
+       0830  ImageMate CF/MMC/SD Reader
+       1234  Cruzer Mini Flash Drive
+       5150  SDCZ2 Cruzer Mini Flash Drive (thin)
+       5151  Cruzer Micro 256/512MB Flash Drive
+       5153  Cruzer USB-Flash-Drive
+       5406  Cruzer Micro 1/4GB Flash Drive
+       5408  Cruzer Titanium U3
+       6100  Ultra II SD Plus 2GB
+       7100  Cruzer Mini
+       7101  Pen Flash
+       7102  Cruzer Mini
+       7103  Cruzer Mini
+       7104  Cruzer Micro Mini 256MB Flash Drive
+       7105  Cruzer Mini
+       7106  Cruzer Mini
+       7112  Cruzer Micro 128MB Flash Drive
+       7113  Cruzer Micro 256MB Flash Drive
+       7114  Cruzer Mini
+       7115  Cruzer Mini
+       7420  Sansa E200 series (mtp)
+       7421  Sansa E200 series
+       7432  Sansa Clip (mtp)
+       7433  Sansa Clip (msc)
+       7450  Sansa C250
+       7451  Sansa C240
+       7480  Sansa Connect
+       7481  Sansa Connect (in recovery mode)
+       8181  Pen Flash
+       8183  Hi-Speed Mass Storage Device
+       8185  SDCZ2 Cruzer Mini Flash Drive (older, thick)
+       8888  Card Reader
+       8889  SDDR-88 Imagemate 8-in-1 Reader
+       8919  Card Reader
+       8989  ImageMate 12-in-1 Reader
+       9191  ImageMate CF
+       9219  Card Reader
+       9292  ImageMate CF Reader/Writer
+       9393  ImageMate SD-MMC
+       9595  ImageMate xD-SM
+       9797  ImageMate MS-PRO
+       9919  Card Reader
+       9999  SDDR-99 5-in-1 Reader
+       a7e8  SDDR-113 MicroMate SDHC Reader
+       b2b3  SDDR-103 MobileMate SD+ Reader
+0782  Trackerball
+0783  C3PO
+       0003  LTC31 SmartCard Reader
+0784  Vivitar, Inc.
+       0100  Vivicam 2655
+       1310  Vivicam 3305
+       1688  Vivicam 3665
+       1689  Gateway DC-M42/Labtec DC-505/Vivitar Vivicam 3705
+       2620  AOL Photocam Plus
+       2888  Polaroid DC700
+       3330  Nytec ND-3200 Camera
+       4300  Traveler D1
+       5260  Werlisa Sport PX 100 / JVC GC-A33 Camera
+       5300  Pretec dc530
+0785  NTT-ME
+       0001  MN128mini-V ISDN TA
+       0003  MN128mini-J ISDN TA
+0789  Logitec Corp.
+       0026  LHD Device
+       0033  DVD Multi-plus unit LDR-H443SU2
+       0063  LDR Device
+       0064  LDR-R Device
+       00b3  DVD Multi-plus unit LDR-H443U2
+       010c  Realtek RTL8187 Wireless 802.11g 54Mbps Network Adapter
+078b  Happ Controls, Inc.
+       0010  Driving UGCI
+       0020  Flying UGCI
+       0030  Fighting UGCI
+078c  GTCO/CalComp
+       0400  Digitizer (Whiteboard)
+078e  Brincom, Inc.
+0790  Pro-Image Manufacturing Co., Ltd
+0791  Copartner Wire and Cable Mfg. Corp.
+0792  Axis Communications AB
+0793  Wha Yu Industrial Co., Ltd
+0794  ABL Electronics Corp.
+0795  RealChip, Inc.
+0796  Certicom Corp.
+0797  Grandtech Semiconductor Corp.
+       6801  Flatbed Scanner
+       6802  InkJet Color Printer
+       8001  SmartCam
+       801a  Typhoon StyloCam
+       801c  Meade Binoculars/Camera
+       8901  ScanHex SX-35a
+       8909  ScanHex SX-35b
+       8911  ScanHex SX-35c
+0798  Optelec
+       0001  Braille Voyager
+079b  Sagem
+       0027  USB-Serial Controller
+       004a  XG-760A
+       004b  Wi-Fi 11g adapter
+       0056  Agfa AP1100 Photo Printer
+       0062  XG-76NA
+079d  Alfadata Computer Corp.
+       0201  GamePort Adapter
+07a1  Digicom S.p.A.
+       d952  Palladio USB V.92 Modem
+07a2  National Technical Systems
+07a3  Onnto Corp.
+07a4  Be, Inc.
+07a6  ADMtek, Inc.
+       07c2  AN986A Ethernet
+       0986  AN986 Pegasus Ethernet
+       8266  Infineon WildCard-USB Wireless LAN Adapter
+       8511  ADM8511 Pegasus II Ethernet
+       8513  AN8513 Ethernet
+       8515  AN8515 Ethernet
+07aa  Corega K.K.
+       0001  Ether USB-T Ethernet [klsi]
+       0004  FEther USB-TX Ethernet [pegasus]
+       000c  WirelessLAN USB-11
+       000d  FEther USB-TXS
+       0012  Stick-11 802.11b Adapter
+       0017  FEther USB2-TX
+       001a  ULUSB-11 Key
+       002f  CG-WLUSB2GNL
+       7613  Stick-11 V2 802.11b Adapter
+       9601  FEther USB-TXC
+07ab  Freecom Technologies
+       fc01  IDE bridge
+       fc02  Cable II USB-2
+       fc03  USB2-IDE IDE bridge
+       fcf8  Freecom Classic SL Network Drive
+07af  Microtech
+       0004  SCSI-DB25 SCSI Bridge [shuttle]
+       0005  SCSI-HD50 SCSI Bridge [shuttle]
+       0006  CameraMate SmartMedia and CompactFlash Card Reader [eusb/shuttle]
+       fc01  Freecom USB-IDE
+07b0  Trust Technologies
+       0001  ISDN TA
+       0002  ISDN TA128 Plus
+       0003  ISDN TA128 Deluxe
+       0005  ISDN TA128 SE
+       0006  ISDN TA128 CE
+       0007  ISDN TA
+       0008  ISDN TA
+07b1  IMP, Inc.
+07b2  Motorola BCS, Inc.
+       0100  SURFboard Voice over IP Cable Modem
+       0900  SURFboard Gateway
+       0950  SURFboard SBG950 Gateway
+       1000  SURFboard SBG1000 Gateway
+       4100  SurfBoard SB4100 Cable Modem
+       4200  SurfBoard SB4200 Cable Modem
+       4210  SurfBoard 4210 Cable Modem
+       4220  SURFboard SB4220 Cable Modem
+       4500  CG4500 Communications Gateway
+       450b  CG4501 Communications Gateway
+       450e  CG4500E Communications Gateway
+       5100  SurfBoard SB5100 Cable Modem
+       5101  SurfBoard SB5101 Cable Modem
+       5120  SurfBoard SB5120 Cable Modem (RNDIS)
+       7030  Wireless Adapter WU830G
+07b3  Plustek, Inc.
+       0001  OpticPro 1212U Scanner
+       0003  Scanner
+       0010  OpticPro U12 Scanner
+       0011  OpticPro U24 Scanner
+       0013  OpticPro UT12 Scanner
+       0014  Scanner
+       0015  OpticPro U24 Scanner
+       0017  OpticPro UT12/16/24 Scanner
+       0204  Scanner
+       0400  OpticPro 1248U Scanner
+       0401  OpticPro 1248U Scanner #2
+       0403  OpticPro U16B Scanner
+       0404  Scanner
+       0405  A8 Namecard-s Controller
+       0406  A8 Namecard-D Controller
+       0410  Scanner
+       0412  Scanner
+       0800  OpticPro ST48 Scanner
+       0c03  OpticPro ST64+ Scanner
+07b4  Olympus Optical Co., Ltd
+       0100  Camedia C-2100/C-3000 Ultra Zoom Camera
+       0102  Camedia E-10/C-220/C-50 Camera
+       0105  Camedia C-310Z/C-700/C-750UZ/C-755/C-765UZ/C-3040/C-4000/C-5050Z/D-560/C-3020Z Zoom Camera
+       0109  C-370Z/D-535Z/X-450
+       0112  MAUSB-100 xD Card Reader
+       0113  Mju 500
+       0114  C-350Z Camera
+       0118  Mju Mini Digital/Mju Digital 500 Camera
+       0184  P-S100 port
+       0203  Digital Voice Recorder DW-90
+       0206  Digital Voice Recorder DS-330
+       0207  Digital Voice Recorder & Camera W-10
+       0209  Digital Voice Recorder DM-20
+       020d  Digital Voice Recorder VN-240PC
+07b5  Mega World International, Ltd
+       0017  Joystick
+       0213  Thrustmaster Firestorm Digital 3 Gamepad
+       9902  GamePad
+07b6  Marubun Corp.
+07b7  TIME Interconnect, Ltd
+07b8  D-Link Corp.
+       110c  XX1
+       1201  IEEE 802.11b Adapter
+       200c  XX2
+       2573  Wireless LAN Card
+       4000  DU-E10 Ethernet [klsi]
+       4002  DU-E100 Ethernet [pegasus]
+       4003  1/10/100 Ethernet Adapter
+       4004  XX4
+       4007  XX5
+       400b  XX6
+       400c  XX7
+       401a  RTL8151
+       4102  USB 1.1 10/100M Fast Ethernet Adapter
+       4104  XX9
+       420a  UF200 Ethernet
+       6001  WL54
+       a001  Wireless Network Adapter
+       abc1  DU-E10 Ethernet [pegasus]
+       b000  BWU613
+       b02a  AboCom Bluetooth Device
+       b02b  Bluetooth dongle
+       b02c  BCM92045DG-Flash with trace filter
+       b02d  BCM92045DG-Flash with trace filter
+       b02e  BCM92045DG-Flash with trace filter
+       b030  BCM92045DG-Flash with trace filter
+       b031  BCM92045DG-Flash with trace filter
+       b032  BCM92045DG-Flash with trace filter
+       b033  BCM92045DG-Flash with trace filter
+       b21a  802.11g Wireless Adapter
+       b21b  HWU54DM
+       b21c  RT2573
+       b21d  RT2573
+       b21e  RT2573
+       b21f  WUG2700
+       d011  MP3 Player
+       e001  Mass Storage Device
+       e002  Mass Storage Device
+       e003  Mass Storage Device
+       e004  Mass Storage Device
+       e005  Mass Storage Device
+       e006  Mass Storage Device
+       e007  Mass Storage Device
+       e008  Mass Storage Device
+       e009  Mass Storage Device
+       e00a  Mass Storage Device
+       e4f0  Card Reader Driver
+       f101  DSB-560 Modem [atlas]
+07bc  Canon Computer Systems, Inc.
+07bd  Webgear, Inc.
+07be  Veridicom
+07c0  Code Mercenaries Hard- und Software GmbH
+       1121  The Claw
+       1500  IO-Warrior 40
+       1501  IO-Warrior 24
+       1502  IO-Warrior 48
+       1503  IO-Warrior 28
+07c1  Keisokugiken
+       0068  HKS-0200 USBDAQ
+07c4  Datafab Systems, Inc.
+       0102  USB to LS120
+       0103  USB to IDE
+       1234  USB to ATAPI
+       a000  CompactFlash Card Reader
+       a001  CompactFlash & SmartMedia Card Reader [eusb]
+       a002  Disk Drive
+       a003  Datafab-based Reader
+       a004  USB to MMC Class Drive
+       a005  CompactFlash & SmartMedia Card Reader
+       a006  SmartMedia Card Reader
+       a007  Memory Stick Class Drive
+       a103  MDSM-B reader
+       a107  USB to Memory Stick (LC1) Drive
+       a109  LC1 CompactFlash & SmartMedia Card Reader
+       a10b  USB to CF+MS(LC1)
+       a200  DF-UT-06 Hama MMC/SD Reader
+       a400  CompactFlash & Microdrive Reader
+       a600  Card Reader
+       ad01  Mass Storage Device
+       ae01  Mass Storage Device
+       af01  Mass Storage Device
+       b000  USB to CF(LC1)
+       b001  USB to CF+PCMCIA
+       b004  MMC/SD Reader
+       b006  USB to PCMCIA
+       b00a  USB to CF+SD Drive(LC1)
+       b00b  USB to Memory Stick(LC1)
+07c5  APG Cash Drawer
+07c6  ShareWave, Inc.
+07c7  Powertech Industrial Co., Ltd
+07c8  B.U.G., Inc.
+       0202  MN128-SOHO PAL
+07c9  Allied Telesyn International
+       b100  AT-USB100
+07ca  AVerMedia Technologies, Inc.
+       0002  AVerTV PVR USB/EZMaker Pro Device
+       0026  AVerTV
+       1228  MPEG-2 Capture Device (M038)
+       e880  MPEG-2 Capture Device (E880)
+       e882  MPEG-2 Capture Device (E882)
+07cb  Kingmax Technology, Inc.
+07cc  Carry Computer Eng., Co., Ltd
+       0000  CF Card Reader
+       0001  Reader (UICSE)
+       0002  Reader (UIS)
+       0003  SM Card Reader
+       0004  SM/CF/PCMCIA Card Reader
+       0005  Reader (UISA2SE)
+       0006  SM/CF/PCMCIA Card Reader
+       0007  Reader (UISA6SE)
+       000c  SM/CF Card Reader
+       000d  SM/CF Card Reader
+       000e  Reader (UISDA)
+       000f  Reader (UICLIK)
+       0010  Reader (UISMA)
+       0012  Reader (UISC6SE-FLASH)
+       0014  Litronic Fortezza Reader
+       0030  Mass Storage (UISDMC12S)
+       0040  Mass Storage (UISDMC13S)
+       0100  Reader (UID)
+       0101  Reader (UIM)
+       0102  Reader (UISDMA)
+       0103  Reader (UISDMC)
+       0104  Reader (UISDM)
+       0200  6-in-1 Card Reader
+       0201  Mass Storage (UISDMC1S & UISDMC3S)
+       0202  Mass Storage (UISDMC5S)
+       0203  Mass Storage (UISMC5S)
+       0204  Mass Storage (UIM4/5S & UIM7S)
+       0205  Mass Storage (UIS4/5S & UIS7S)
+       0206  Mass Storage (UISDMC10S & UISDMC11S)
+       0207  Mass Storage (UPIDMA)
+       0208  Mass Storage (UCFC II)
+       0210  Mass Storage (UPIXXA)
+       0213  Mass Storage (UPIDA)
+       0214  Mass Storage (UPIMA)
+       0215  Mass Storage (UPISA)
+       0217  Mass Storage (UPISDMA)
+       0223  Mass Storage (UCIDA)
+       0224  Mass Storage (UCIMA)
+       0225  Mass Storage (UIS7S)
+       0227  Mass Storage (UCIDMA)
+       0234  Mass Storage (UIM7S)
+       0235  Mass Storage (UIS4S-S)
+       0237  Velper (UISDMC4S)
+       0300  6-in-1 Card Reader
+       0301  6-in-1 Card Reader
+       0303  Mass Storage (UID10W)
+       0304  Mass Storage (UIM10W)
+       0305  Mass Storage (UIS10W)
+       0308  Mass Storage (UIC10W)
+       0309  Mass Storage (UISC3W)
+       0310  Mass Storage (UISDMA2W)
+       0311  Mass Storage (UISDMC14W)
+       0320  Mass Storage (UISDMC4W)
+       0321  Mass Storage (UISDMC37W)
+       0330  WINTERREADER Reader
+       0350  9-in-1 Card Reader
+       0500  Mass Storage
+       0501  Mass Storage
+07cd  Elektor
+       0001  USBuart Serial Port
+07cf  Casio Computer Co., Ltd
+       1001  QV-8000SX/5700/3000EX Digicam; Exilim EX-M20
+       1003  Exilim EX-S500
+       1004  Exilim EX-Z120
+       1011  USB-CASIO PC CAMERA
+       2002  E-125 Cassiopeia Pocket PC
+       3801  WMP-1 MP3-Watch
+       4001  Label Printer KL-P1000
+       4007  CW50 Device
+       4104  Cw75 Device
+       4107  CW-L300 Device
+       4500  LV-20 Digital Camera
+       6801  PL-40R
+       6802  MIDI Keyboard
+07d0  Dazzle
+       0001  Digital Video Creator I
+       0002  Global Village VideoFX Grabber
+       0003  Fusion Model DVC-50 Rev 1 (NTSC)
+       0004  DVC-800 (PAL) Grabber
+       0005  Fusion Video and Audio Ports
+       0006  DVC 150 Loader Device
+       0007  DVC 150
+       0327  Fusion Digital Media Reader
+       1001  DM-FLEX DFU Adapter
+       1002  DMHS2 DFU Adapter
+       1102  CF Reader/Writer
+       1103  SD Reader/Writer
+       1104  SM Reader/Writer
+       1105  MS Reader/Writer
+       1106  xD/SM Reader/Writer
+       1202  MultiSlot Reader/Writer
+       2000  FX2 DFU Adapter
+       2001  eUSB CompactFlash Reader
+       4100  Kingsun SF-620 Infrared Adapter
+       4959  Kingsun KS-959 Infrared Adapter
+07d1  D-Link System
+       13ec  VvBus for Helium 2xx
+       13ed  VvBus for Helium 2xx
+       13f1  DSL-302G Modem
+       13f2  DSL-502G Router
+       3a07  WUA-2340 Adapter
+       3a08  predator Bootloader Download
+       3a0d  DWA-120 Wireless 108G Adapter
+       3b01  AirPlus G DWL-G122 Wireless Adapter
+       3b10  RangeBooster N Adapter
+       3b11  Wireless N Adapter DWA-130
+       3c03  DWL-G122 802.11g Adapter [ralink rt73]
+       3c04  WUA-1340
+       3c05  EH103 Wireless G Adapter
+       3c07  Wireless G DWA-110 Adapter
+       3c09  DWA-140 802.11n Adapter [ralink rt2870]
+       5100  Remote NDIS Device
+       f101  DBT-122 Bluetooth
+       fc01  DBT-120 Bluetooth Adapter
+07d2  Aptio Products, Inc.
+07d3  Cyberdata Corp.
+07d7  GCC Technologies, Inc.
+07da  Arasan Chip Systems
+07de  Diamond Multimedia
+       2820  VC500 Video Capture Dongle
+07df  David Electronics Co., Ltd
+07e1  Ambient Technologies, Inc.
+       5201  V.90 Modem
+07e2  Elmeg GmbH & Co., Ltd
+07e3  Planex Communications, Inc.
+07e4  Movado Enterprise Co., Ltd
+       0967  SCard R/W CSR-145
+       0968  SCard R/W CSR-145
+07e5  QPS, Inc.
+       05c2  IDE-to-USB2.0 PCA
+       5c01  Que! CDRW
+07e6  Allied Cable Corp.
+07e7  Mirvo Toys, Inc.
+07e8  Labsystems
+07ea  Iwatsu Electric Co., Ltd
+07eb  Double-H Technology Co., Ltd
+07ec  Taiyo Electric Wire & Cable Co., Ltd
+07ee  Torex Retail (formerly Logware)
+       0002  Cash Drawer I/F
+07ef  STSN
+       0001  Internet Access Device
+07f6  Circuit Assembly Corp.
+07f7  Century Corp.
+       0005  ScanLogic/Century Corporation uATA
+       011e  Century USB Disk Enclosure
+07f9  Dotop Technology, Inc.
+07fa  Draytek
+       0778  miniVigor 128 ISDN TA
+       1012  BeWAN ADSL USB ST (grey)
+       a904  BeWAN ADSL
+       a905  BeWAN ADSL ST
+07fd  Mark of the Unicorn
+       0000  FastLane MIDI Interface
+       0001  FastLane Quad MIDI Interface
+       0002  MOTU Audio for 64 bit
+0801  Mag-Tek
+       0002  Mini Swipe Reader
+0802  Mako Technologies, LLC
+0803  Zoom Telephonics, Inc.
+       1300  V92 Faxmodem
+       4310  Wireless-G
+       5241  Cable Modem
+       5551  DSL Modem
+       9700  2986L FaxModem
+       9800  Cable Modem
+       a312  Wireless-G
+0809  Genicom Technology, Inc.
+080a  Evermuch Technology Co., Ltd
+080c  Datalogic S.p.A.
+       0300  Gryphon D120 Barcode Scanner
+       0400  Gryphon D120 Barcode Scanner
+       0500  Gryphon D120 Barcode Scanner
+       0600  Gryphon M100 Barcode Scanner
+080d  Teco Image Systems Co., Ltd
+       0102  Hercules Scan@home 48
+       0104  3.2Slim
+       0110  UMAX AstraSlim 1200 Scanner
+0810  Personal Communication Systems, Inc.
+0813  Mattel, Inc.
+       0001  Intel Play QX3 Microscope
+       0002  Dual Mode Camera Plus
+081a  MG Logic
+       1000  Duo Pen Tablet
+081b  Indigita Corp.
+       0600  Storage Adapter
+       0601  Storage Adapter
+081c  Mipsys
+081e  AlphaSmart, Inc.
+       df00  Handheld
+0822  Reudo Corp.
+       2001  IRXpress Infrared Device
+0825  GC Protronics
+0826  Data Transit
+0827  BroadLogic, Inc.
+0828  Sato Corp.
+0829  DirecTV Broadband, Inc. (Telocity)
+082d  Handspring
+       0100  Visor
+       0200  Treo
+       0300  Treo 600
+       0400  Handheld
+       0500  Handheld
+       0600  Handheld
+0830  Palm, Inc.
+       0001  m500
+       0002  m505
+       0003  m515
+       0004  Handheld
+       0005  Handheld
+       0006  Handheld
+       0010  Handheld
+       0011  Handheld
+       0012  Handheld
+       0013  Handheld
+       0014  Handheld
+       0020  i705
+       0021  Handheld
+       0022  Handheld
+       0023  Handheld
+       0024  Handheld
+       0030  Handheld
+       0031  Tungsten W
+       0032  Handheld
+       0033  Handheld
+       0034  Handheld
+       0040  m125
+       0041  Handheld
+       0042  Handheld
+       0043  Handheld
+       0044  Handheld
+       0050  m130
+       0051  Handheld
+       0052  Handheld
+       0053  Handheld
+       0054  Handheld
+       0060  Tungsten C/E/T/T2/T3 / Zire 71
+       0061  Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Zire 21/31/72 / Z22
+       0062  Handheld
+       0063  Handheld
+       0064  Handheld
+       0070  Zire
+       0071  Handheld
+       0072  Handheld
+       0080  Serial Adapter [for Palm III]
+       0081  Handheld
+       0082  Handheld
+0832  Kouwell Electronics Corp.
+       5850  Cable
+0833  Sourcenext Corp.
+       012e  KeikaiDenwa 8 with charger
+       039f  KeikaiDenwa 8
+0835  Action Star Enterprise Co., Ltd
+0839  Samsung Techwin Co., Ltd
+       0005  Digimax Camera
+       0008  Digimax 230 Camera
+       0009  Digimax 340
+       000a  Digimax 410
+       000e  Digimax 360
+       0010  Digimax 300
+       1003  Digimax 210SE
+       1005  Digimax 220
+       1009  Digimax V4
+       1012  6500 Document Camera
+       1058  S730 Camera
+       1542  Digimax 50 Duo
+       3000  Digimax 35 MP3
+083a  Accton Technology Corp.
+       1046  10/100 Ethernet [pegasus]
+       1060  HomeLine Adapter
+       1f4d  SMC8013WG Broadband Remote NDIS Device
+       3046  10/100 Series Adapter
+       3060  1/10/100 Adapter
+       3501  2664W
+       3502  WN3501D Wireless Adapter
+       3503  T-Sinus 111 Wireless Adapter
+       4501  T-Sinus 154data
+       4505  SMCWUSB-G
+       5046  SpeedStream 10/100 Ethernet [pegasus]
+       5501  Wireless Adapter 11g
+       6500  Cable Modem
+       6618  802.11n Wireless Adapter
+       7522  802.11N Wireless Adapter
+       a618  SMC EZ Connect N Draft 11n Wireless Adapter
+       b004  CPWUE001 USB/Ethernet Adapter
+       b522  EZ Connect N Draft 11n Wireless USB2.0 Adapter
+       bb01  BlueExpert Bluetooth Device
+       c003  802.11b Wireless Adapter
+       c501  Zoom Wireless-G
+       c561  802.11a/g Wireless Adapter
+       e501  ZD1211B
+       f501  802.11g Wireless Adapter
+       f502  802.11g Wireless Adapter
+083f  Global Village
+       b100  TelePort V.90 Fax/Modem
+0840  Argosy Research, Inc.
+       0060  Storage Adapter Bridge Module
+0841  Rioport.com, Inc.
+       0001  Rio 500
+0844  Welland Industrial Co., Ltd
+0846  NetGear, Inc.
+       1001  EA101 Ethernet [klsi]
+       1002  Ethernet
+       1020  Ethernet 10/100, USB1.1
+       1040  USB 2.0 Ethernet
+       4110  MA111 WiFi (v1)
+       4200  WG121 WiFi (v1)
+       4210  WG121 WiFi (v2)
+       4220  WG111 WiFi (v1)
+       4230  MA111 WiFi (v2)
+       4240  WG111 WiFi (v2)
+       4260  WG111v3 802.11g Adapter [realtek RTL8187B]
+       4300  WG111U
+       4301  WG111U (no firmware)
+       6a00  WG111 WiFi (v2)
+       7100  WN121T Wireless Adapter
+       9000  RangeMax NEXT Wireless-N Adapter WN111
+       a001  PA101 Phoneline10X Adapter
+084d  Minton Optic Industry Co., Inc.
+       0001  Jenoptik JD800i
+       0003  S-Cam F5 Digital Camera
+       0011  Argus DC3500 Digital Camera
+       0014  Praktica DC 32
+       0019  Praktica DPix3000
+       0025  Praktica DC 60
+       1001  ScanHex SX-35d
+084e  KB Gear
+       0001  KBGear JamCam
+       1002  Pablo Tablet
+084f  Empeg
+       0001  Empeg-Car Mark I/II Player
+0850  Fast Point Technologies, Inc.
+0851  Macronix International Co., Ltd
+       1542  SiPix Blink
+       1543  Maxell WS30 Slim Digital Camera
+       a168  MXIC
+0852  CSEM
+0853  Topre Corporation
+       0100  HHKB Professional
+0854  ActiveWire, Inc.
+       0100  I/O Board
+       0101  I/O Board, rev1
+0856  B&B Electronics
+       ac01  uLinks USOTL4 RS422/485 Adapter
+0858  Hitachi Maxell, Ltd
+       3102  Bluetooth Device
+       ffff  Maxell module with BlueCore in DFU mode
+0859  Minolta Systems Laboratory, Inc.
+085a  Xircom
+       0001  Portstation Dual Serial Port
+       0003  Portstation Paraller Port
+       0008  Ethernet
+       0009  Ethernet
+       000b  Portstation Dual PS/2 Port
+       0021  1 port to Serial Converter
+       0022  Parallel Port
+       0023  2 port to Serial Converter
+       0024  Parallel Port
+       0027  1 port to Serial Converter
+       0028  PortGear to SCSI Converter
+       0032  PortStation SCSI Module
+       003c  Bluetooth Adapter
+       0299  Colorvision, Inc. Monitor Spyder
+       8021  1 port to Serial
+       8023  2 port to Serial
+       8027  PGSDB9 Serial Port
+085c  ColorVision, Inc.
+       0200  Monitor Spyder
+0862  Teletrol Systems, Inc.
+0863  Filanet Corp.
+0864  NetGear, Inc.
+       4100  MA101 802.11b Adapter
+       4102  MA101 802.11b Adapter
+0867  Data Translation, Inc.
+       9812  ECON Data acquisition unit
+       9816  DT9816 ECON data acquisition module
+       9836  DT9836 data acquisition card
+086a  Emagic Soft- und Hardware GmbH
+       0001  Unitor8
+       0002  AMT8
+       0003  MT4
+086c  DeTeWe - Deutsche Telephonwerke AG & Co.
+       1001  Eumex 504PC ISDN TA
+       1002  Eumex 504PC (FlashLoad)
+       1003  TA33 ISDN TA
+       1004  TA33 (FlashLoad)
+       1005  Eumex 604PC HomeNet
+       1006  Eumex 604PC HomeNet (FlashLoad)
+       1007  Eumex 704PC DSL
+       1008  Eumex 704PC DSL (FlashLoad)
+       1009  Eumex 724PC DSL
+       100a  Eumex 724PC DSL (FlashLoad)
+       100b  OpenCom 30
+       100c  OpenCom 30 (FlashLoad)
+       100d  BeeTel Home 100
+       100e  BeeTel Home 100 (FlashLoad)
+       1011  USB2DECT
+       1012  USB2DECT (FlashLoad)
+       1013  Eumex 704PC LAN
+       1014  Eumex 704PC LAN (FlashLoad)
+       1021  OpenCom 40
+       1022  OpenCom 40 (FlashLoad)
+       1023  OpenCom 45
+       1024  OpenCom 45 (FlashLoad)
+       1025  Sinus 61 data
+       1029  dect BOX
+       102c  Eumex 604PC HomeNet [FlashLoad]
+       1030  Eumex 704PC DSL [FlashLoad]
+       1032  OpenCom 40 [FlashLoad]
+       1033  OpenCom 30 plus
+       1034  OpenCom 30 plus (FlashLoad)
+       1055  Eumex 220 ISDN TA
+       2000  OpenCom 1000
+086e  System TALKS, Inc.
+       1920  SGC-X2UL
+086f  MEC IMEX, Inc.
+0870  Metricom
+       0001  Ricochet GS
+0871  SanDisk, Inc.
+       0001  SDDR-01 Compact Flash Reader
+       0002  SDDR-31 Compact Flash Reader
+       0005  SDDR-05 Compact Flash Reader
+0873  Xpeed, Inc.
+0874  A-Tec Subsystem, Inc.
+0879  Comtrol Corp.
+087c  Adesso/Kbtek America, Inc.
+087d  Jaton Corp.
+       5704  Ethernet
+087e  Fujitsu Computer Products of America
+087f  Virtual IP Group, Inc.
+0880  APT Technologies, Inc.
+0883  Recording Industry Association of America (RIAA)
+0885  Boca Research, Inc.
+0886  XAC Automation Corp.
+       0630  Intel PC Camera CS630
+0887  Hannstar Electronics Corp.
+088b  MassWorks, Inc.
+       4944  MassWorks ID-75 TouchScreen
+0892  DioGraphy, Inc.
+       0101  Smartdio Reader/Writer
+089c  United Technologies Research Cntr.
+089d  Icron Technologies Corp.
+089e  NST Co., Ltd
+089f  Primex Aerospace Co.
+08a5  e9, Inc.
+08a8  Andrea Electronics
+08ae  Macally (Mace Group, Inc.)
+08b4  Sorenson Vision, Inc.
+08b8  J. Gordon Electronic Design, Inc.
+       01f4  USBSIMM1
+08b9  RadioShack Corp. (Tandy)
+08bb  Texas Instruments Japan
+       2702  Speakers
+       2900  PCM2900 Audio Codec
+       2904  PCM2904 Audio Codec
+08bd  Citizen Watch Co., Ltd
+       1100  X1-USB Floppy
+08c3  Precise Biometrics
+       0001  100 SC
+       0002  100 A
+       0003  100 SC BioKeyboard
+       0006  100 A BioKeyboard
+       0100  100 MC ISP
+       0101  100 MC FingerPrint and SmartCard Reader
+       0300  100 AX
+       0400  100 SC
+       0401  150 MC
+       0402  200 MC FingerPrint and SmartCard Reader
+       0404  100 SC Upgrade
+       0405  150 MC Upgrade
+       0406  100 MC Upgrade
+08c4  Proxim, Inc.
+       02f2  Farallon Home Phoneline Adapter
+08c7  Key Nice Enterprise Co., Ltd
+08c8  2Wire, Inc.
+08c9  Nippon Telegraph and Telephone Corp.
+08ca  Aiptek International, Inc.
+       0010  Tablet
+       0020  APT-6000U Tablet
+       0021  APT-2 Tablet
+       0022  Tablet
+       0023  Tablet
+       0024  Tablet
+       0100  Pen Drive
+       0102  DualCam
+       0103  Pocket DV Digital Camera
+       0104  Pocket DVII
+       0105  Mega DV(Disk)
+       0106  Pocket DV3100+
+       0107  Pocket DV 3100
+       0109  Nisis DV4 Digital Camera
+       010a  Trust 738AV LCD PV Mass Storage
+       0111  PenCam VGA Plus
+       2008  Mini PenCam 2
+       2010  Pocket CAM 3 Mega (webcam)
+       2011  Pocket CAM 3 Mega (storage)
+       2018  Pencam SD 2
+       2024  Pocket DV3500
+       2042  DV 5100M Composite Device
+       2043  DV 5100M(Disk)
+08cd  Jue Hsun Ind. Corp.
+08ce  Long Well Electronics Corp.
+08cf  Productivity Enhancement Products
+08d1  smartBridges, Inc.
+       0001  smartNIC Ethernet [catc]
+       0003  smartNIC 2 PnP Ethernet
+08d3  Virtual Ink
+08d4  Fujitsu Siemens Computers
+       0009  SCR SmartCard Reader
+08d9  Increment P Corp.
+08dd  Billionton Systems, Inc.
+       0112  Wireless LAN Adapter
+       0113  Wireless LAN Adapter
+       0986  USB-100N Ethernet [pegasus]
+       0987  USBLP-100 HomePNA Ethernet [pegasus]
+       0988  USBEL-100 Ethernet [pegasus]
+       1986  10/100 LAN Adapter
+       2103  DVB-T TV-Tuner Card-R
+       8511  USBE-100 Ethernet [pegasus2]
+       90ff  USB2AR Ethernet
+08de  ???
+       7a01  802.11b Adapter
+08df  Spyrus, Inc.
+       0001  Rosetta Token V1
+       0002  Rosetta Token V2
+       0003  Rosetta Token V3
+       0a00  Lynks Interface
+08e3  Olitec, Inc.
+       0002  USB-RS232 Bridge
+       0100  Interface ADSL
+       0101  Interface ADSL
+       0102  ADSL
+       0301  RNIS
+08e4  Pioneer Corp.
+08e5  Litronic
+08e6  Gemplus
+       0001  GemPC-Touch 430
+       0430  GemPC430 SmartCard Reader
+       0432  GemPC432 SmartCard Reader
+       0435  GemPC435 SmartCard Reader
+       0437  GemPC433 SL SmartCard Reader
+       1359  UA SECURE STORAGE TOKEN
+       2202  Gem e-Seal Pro Token
+       3437  GemPC Twin SmartCard Reader
+       3438  GemPC Key SmartCard Reader
+       3478  PinPad Smart Card Reader
+       4433  GemPC433-Swap
+       5501  GemProx-PU Contactless Smart Card Reader
+       ace0  UA HYBRID TOKEN
+08e7  Pan-International Wire & Cable
+08e8  Integrated Memory Logic
+08e9  Extended Systems, Inc.
+       0100  XTNDAccess IrDA Dongle
+08ea  Ericsson, Inc., Blue Ridge Labs
+       00c9  ADSL Modem HM120dp Loader
+       00ca  ADSL WAN Modem HM120dp
+       00ce  HM230d Virtual Bus for Helium
+       abba  USB Driver for Bluetooth Wireless Technology
+       abbb  Bluetooth Device in DFU State
+08ec  M-Systems Flash Disk Pioneers
+       0001  TravelDrive 2C
+       0002  TravelDrive 2C
+       0005  TravelDrive 2C
+       0008  TravelDrive 2C
+       0010  DiskOnKey
+       0011  DiskOnKey
+       0012  TravelDrive 2C
+       0014  TravelDrive 2C
+       0015  Kingston DataTraveler ELITE
+       0016  Kingston DataTraveler U3
+       0020  TravelDrive
+       0021  TravelDrive
+       0022  TravelDrive
+       0023  TravelDrive
+       0024  TravelDrive
+       0025  TravelDrive
+       0026  TravelDrive
+       0027  TravelDrive
+       0028  TravelDrive
+       0029  TravelDrive
+       0030  TravelDrive
+       0822  TravelDrive 2C
+       0832  Hi-Speed Mass Storage Device
+       0998  Kingston Data Traveler2.0 Disk Driver
+       0999  Kingston Data Traveler2.0 Disk Driver
+       1000  TravelDrive 2C
+       2000  TravelDrive 2C
+       2038  TravelDrive
+       2039  TravelDrive
+       204a  TravelDrive
+       204b  TravelDrive
+08ee  CCSI/Hesso
+08f0  Corex Technologies
+08f1  CTI Electronics Corp.
+08f5  SysTec Co., Ltd
+08f6  Logic 3 International, Ltd
+08f7  Vernier
+       0001  LabPro
+       0002  EasyTemp
+08f8  Keen Top International Enterprise Co., Ltd
+08f9  Wipro Technologies
+08fa  Caere
+08fb  Socket Communications
+08fc  Sicon Cable Technology Co., Ltd
+08fd  Digianswer A/S
+       0001  Bluetooth Device
+08ff  AuthenTec, Inc.
+       1600  AES1600
+       1610  AES1600
+       2500  AES2501
+       2501  AES2501
+       2502  AES2501
+       2503  AES2501
+       2504  AES2501
+       2505  AES2501
+       2506  AES2501
+       2507  AES2501
+       2508  AES2501
+       2509  AES2501
+       250a  AES2501
+       250b  AES2501
+       250c  AES2501
+       250d  AES2501
+       250e  AES2501
+       250f  AES2501
+       2510  AES2510
+       2580  AES2501 Fingerprint Sensor
+       2588  AES2501
+       2589  AES2501
+       258a  AES2501
+       258b  AES2501
+       258c  AES2501
+       258d  AES2501
+       258e  AES2501
+       258f  AES2501
+       3400  AES3400 TruePrint Sensor
+       3401  AES3400 Sensor
+       3402  AES3400 Sensor
+       3403  AES3400 Sensor
+       3404  AES3400 TruePrint Sensor
+       3405  AES3400 TruePrint Sensor
+       3406  AES3400 TruePrint Sensor
+       3407  AES3400 TruePrint Sensor
+       4902  BioMV with TruePrint AES3500
+       4903  BioMV with TruePrint AES3400
+       5500  AES4000
+       5501  AES4000 TruePrint Sensor
+       5503  AES4000 TruePrint Sensor
+       5505  AES4000 TruePrint Sensor
+       5507  AES4000 TruePrint Sensor
+       55ff  AES4000 TruePrint Sensor.
+       5700  AES3500 Fingerprint Reader
+       5701  AES3500 TruePrint Sensor
+       5702  AES3500 TruePrint Sensor
+       5703  AES3500 TruePrint Sensor
+       5704  AES3500-BZ TruePrint Sensor
+       5705  AES3500-BZ TruePrint Sensor
+       5706  AES3500-BZ TruePrint Sensor
+       5707  AES3500-BZ TruePrint Sensor
+       5710  AES3500 TruePrint Sensor
+       5711  AES3500 TruePrint Sensor
+       5712  AES3500 TruePrint Sensor
+       5713  AES3500 TruePrint Sensor
+       5714  AES3500-BZ TruePrint Sensor
+       5715  AES3500-BZ TruePrint Sensor
+       5716  AES3500-BZ TruePrint Sensor
+       5717  AES3500-BZ TruePrint Sensor
+       5730  AES3500 TruePrint Sensor
+       5731  AES3500 TruePrint Sensor
+       5732  AES3500 TruePrint Sensor
+       5733  AES3500 TruePrint Sensor
+       5734  AES3500-BZ TruePrint Sensor
+       5735  AES3500-BZ TruePrint Sensor
+       5736  AES3500-BZ TruePrint Sensor
+       5737  AES3500-BZ TruePrint Sensor
+       afe3  FingerLoc Sensor Module (Anchor)
+       afe4  FingerLoc Sensor Module (Anchor)
+       afe5  FingerLoc Sensor Module (Anchor)
+       afe6  FingerLoc Sensor Module (Anchor)
+       fffd  AES2510 Sensor (USB Emulator)
+       ffff  Sensor (Emulator)
+0900  Pinnacle Systems, Inc.
+0901  VST Technologies
+       0001  Hard Drive Adapter (TPP)
+       0002  SigmaDrive Adapter (TPP)
+0906  Faraday Technology Corp.
+0909  Audio-Technica Corp.
+090a  Trumpion Microelectronics, Inc.
+       1001  T33520 USB Flash Card Controller
+       1100  Comotron C3310 MP3 player
+       1200  MP3 player
+       1540  Digitex Container Flash Disk
+090b  Neurosmith
+090c  Feiya Technology Corp.
+       1000  Memory Bar
+       1132  5-in-1 Card Reader
+090d  Multiport Computer Vertriebs GmbH
+090e  Shining Technology, Inc.
+090f  Fujitsu Devices, Inc.
+0910  Alation Systems, Inc.
+0911  Philips Speech Processing
+       2512  SpeechMike Pro
+0912  Voquette, Inc.
+0915  GlobeSpan, Inc.
+       0001  DSL Modem
+       0002  ADSL ATM Modem
+       0005  LAN Modem
+       2000  802.11 Adapter
+       2002  802.11 Adapter
+       8000  ADSL LAN Modem
+       8005  DSL-302G Modem
+       8101  ADSL WAN Modem
+       8102  DSL-200 ADSL Modem
+       8103  DSL-200 ADSL Modem
+       8104  DSL-200 Modem
+       8400  DSL Modem
+       8401  DSL Modem
+       8402  DSL Modem
+       8500  DSL Modem
+       8501  DSL Modem
+0917  SmartDisk Corp.
+       0001  eFilm Reader-11 SM/CF
+       0002  eFilm Reader-11 SM
+       0003  eFilm Reader-11 CF
+       0200  FireFly
+       0201  FireLite
+       0202  STORAGE ADAPTER (FirePower)
+       0204  FlashTrax Storage
+       0205  STORAGE ADAPTER (CrossFire)
+       0206  FireFly 20G HDD
+       0207  FireLite
+       020f  STORAGE ADAPTER (FireLite)
+       da01  eFilm Reader-11 Test
+       ffff  eFilm Reader-11 (Class/PDR)
+0919  Tiger Electronics
+       0100  Fast Flicks Digital Camera
+091e  Garmin International
+       0003  GPSmap (various models)
+       0004  Garmin iQue 3600
+       0200  Data Card Programmer (install)
+       1200  Data Card Programmer
+0920  Echelon Co.
+       7500  Network Interface
+0921  GoHubs, Inc.
+       1001  GoCOM232 Serial
+0922  Dymo-CoStar Corp.
+       0007  LabelWriter 330
+       0009  LabelWriter 310
+0923  IC Media Corp.
+       010f  SIIG MobileCam
+0924  Xerox
+       23dd  DocuPrint M760 (X760_USB)
+       3d5b  Phaser 6115MFP TWAIN Scanner
+       420f  WorkCentre PE220 Series
+       421f  M20 Scanner
+       423b  Printing Support
+       ffef  WorkCenter M15
+       fffb  DocuPrint M750 (X750_USB)
+0925  Lakeview Research
+       8101  Phidgets, Inc., 1-Motor PhidgetServo v2.0
+       8104  Phidgets, Inc., 4-Motor PhidgetServo v2.0
+       8800  WiseGroup Ltd, MP-8800 Quad Joypad
+       8866  WiseGroup Ltd, MP-8866 Dual Joypad
+0927  Summus, Ltd
+0928  Oxford Semiconductor, Ltd
+0929  American Biometric Co.
+092a  Toshiba Information & Industrial Sys. And Services
+092b  Sena Technologies, Inc.
+092f  Northern Embedded Science/CAVNEX
+       0004  JTAG-4
+       0005  JTAG-5
+0930  Toshiba Corp.
+       0009  Gigabeat F/X (HDD audio player)
+       000c  Gigabeat F (mtp)
+       0010  Gigabeat S (mtp)
+       0301  PCX1100U Cable Modem (WDM)
+       0302  PCX2000 Cable Modem (WDM)
+       0305  Cable Modem PCX3000
+       0307  Cable Modem PCX2500
+       0308  PCX2200 Cable Modem (WDM)
+       0309  PCX5000 Cable Modem (WDM)
+       030b  Cable Modem PCX2600
+       0501  Bluetooth Controller
+       0502  Integrated Bluetooth
+       0503  Bluetooth Controller
+       0505  Integrated Bluetooth
+       0506  Integrated Bluetooth
+       0507  Bluetooth Adapter
+       0508  Integrated Bluetooth HCI
+       0509  BT EDR Dongle
+       0706  PocketPC e740
+       0707  Pocket PC e330 Series
+       0708  Pocket PC e350 Series
+       0709  Pocket PC e750 Series
+       070a  Pocket PC e400 Series
+       070b  Pocket PC e800 Series
+       1300  Wireless Broadband (CDMA EV-DO) SM-Bus Minicard Status Port
+       1301  Wireless Broadband (CDMA EV-DO) Minicard Status Port
+       1302  Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port
+       1303  Wireless Broadband (3G HSDPA) Minicard Status Port
+       1308  Broadband (3G HSDPA) SM-Bus Minicard Diagnostics Port
+       642f  TravelDrive
+       6506  TravelDrive 2C
+       6507  TravelDrive 2C
+       6508  TravelDrive 2C
+       6509  TravelDrive 2C
+       6510  TravelDrive 2C
+       6517  TravelDrive 2C
+       6518  TravelDrive 2C
+       6519  Kingston DataTraveler 2.0 USB Stick
+       651a  TravelDrive 2C
+       651b  TravelDrive 2C
+       651c  TravelDrive 2C
+       651d  TravelDrive 2C
+       651e  TravelDrive 2C
+       651f  TravelDrive 2C
+       6520  TravelDrive 2C
+       6521  TravelDrive 2C
+       6522  TravelDrive 2C
+       6523  TravelDrive
+       6524  TravelDrive
+       6525  TravelDrive
+       6526  TravelDrive
+       6527  TravelDrive
+       6528  TravelDrive
+       6529  TravelDrive
+       652a  TravelDrive
+       652b  TravelDrive
+       652c  TravelDrive
+       652d  TravelDrive
+       652f  TravelDrive
+       6530  TravelDrive
+       6531  TravelDrive
+       6532  256M USB Stick
+       6533  512M USB Stick
+       6534  TravelDrive
+       653c  Kingston DataTraveler 2.0 USB Stick (512M)
+       653d  Kingston DataTraveler 2.0 USB Stick (1GB)
+       653e  USB Flash Memory
+       6540  TransMemory USB Flash Memory
+0931  Harmonic Data Systems, Ltd
+0932  Crescentec Corp.
+       0300  VideoAdvantage
+       0302  Syntek DC-112X
+       0320  VideoAdvantage
+       1100  Video Enhamcement Device
+       1112  Veo Web Camera
+       a311  Video Enhancement Device
+0933  Quantum Corp.
+0934  Netcom Systems
+0939  Lumberg, Inc.
+093a  Pixart Imaging, Inc.
+       0007  CMOS 100K-R Rev. 1.90
+       010e  Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A
+       010f  Argus DC-1610/DC-1620/Emprex PCD3600/Philips P44417B keychain camera/Precision Mini,Model HA513A/Vivitar Vivicam 55
+       2460  Q-TEC WEBCAM 100
+       2468  Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye WebCam
+       2470  SoC PC-Camera
+       2471  SoC PC-Camera
+       2500  USB Optical Mouse
+       2600  Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508
+       2601  SPC 610NC Laptop Camera
+093b  Plextor Corp.
+       0010  Storage Adapter
+       0011  PlexWriter 40/12/40U
+       0042  PX-712UF DVD RW
+       a002  ConvertX M402U XLOADER
+       a003  ConvertX AV100U A/V Capture Audio
+       a004  ConvertX TV402U XLOADER
+       a005  KWorld EMP Audio Device
+       a102  ConvertX M402U A/V Capture
+       a104  ConvertX PX-TV402U/NA
+093c  Intrepid Control Systems, Inc.
+       0601  ValueCAN
+       0701  NeoVI Blue vehicle bus interface
+093d  InnoSync, Inc.
+093e  J.S.T. Mfg. Co., Ltd
+093f  Olympia Telecom Vertriebs GmbH
+0940  Japan Storage Battery Co., Ltd
+0941  Photobit Corp.
+0942  i2Go.com, LLC
+0943  HCL Technologies India Private, Ltd
+0944  KORG, Inc.
+0945  Pasco Scientific
+0948  Kronauer music in digital
+       0301  USB Pro (24/48)
+       0302  USB Pro (24/96 playback)
+       0303  USB Pro (24/96 record)
+       0304  USB Pro (16/48)
+       1105  USB One
+094b  Linkup Systems Corp.
+094d  Cable Television Laboratories
+094f  Yano
+       0101  U640MO-03
+       05fc  METALWEAR-HDD
+0951  Kingston Technology
+       0008  Ethernet
+       000a  KNU101TX 100baseTX Ethernet
+       1600  Data Traveler II Pen Drive
+       1601  Data Traveler II+ Pen Drive
+       1602  Data Traveler Mini
+       1603  Data Traveler 1GB/2GB Pen Drive
+0954  RPM Systems Corp.
+0955  NVidia Corp.
+0956  BSquare Corp.
+0957  Agilent Technologies, Inc.
+       0200  E-Video DC-350 Camera
+       0202  E-Video DC-350 Camera
+0958  CompuLink Research, Inc.
+0959  Cologne Chip AG
+       2bd0  Intelligent ISDN (Ver. 3.60.04)
+095a  Portsmith
+       3003  Express Ethernet
+095b  Medialogic Corp.
+095c  K-Tec Electronics
+095d  Polycom, Inc.
+       0001  Polycom ViaVideo
+0967  Acer (??)
+       0204  WarpLink 802.11b Adapter
+0968  Catalyst Enterprises, Inc.
+096e  Feitian Technologies, Inc.
+       0802  ePass2000 (G&D STARCOS SPK 2.4)
+0971  Gretag-Macbeth AG
+0973  Schlumberger
+       0001  e-gate Smart Card
+0974  Datagraphix, a business unit of Anacomp
+0975  OL'E Communications, Inc.
+0976  Adirondack Wire & Cable
+0977  Lightsurf Technologies
+0978  Beckhoff GmbH
+0979  Jeilin Technology Corp., Ltd
+       0224  JL2005A Toy Camera
+       0226  JL2005A Toy Camera
+097a  Minds At Work LLC
+       0001  Digital Wallet
+097b  Knudsen Engineering, Ltd
+097c  Marunix Co., Ltd
+097d  Rosun Technologies, Inc.
+097f  Barun Electronics Co., Ltd
+0981  Oak Technology, Ltd
+0984  Apricorn
+       0200  Hard Drive Storage (TPP)
+0985  cab Produkttechnik GmbH & Co KG
+       00a3  A3/200 or A3/300 Label Printer
+0986  Matsushita Electric Works, Ltd.
+098c  Vitana Corp.
+098d  INDesign
+098e  Integrated Intellectual Property, Inc.
+098f  Kenwood TMI Corp.
+0993  Gemstar eBook Group, Ltd
+       0001  REB1100 eBook Reader
+       0002  eBook
+0996  Integrated Telecom Express, Inc.
+099a  Zippy Technology Corp.
+       610c  EL-610 Super Mini Electron luminescent Keyboard
+09a3  PairGain Technologies
+09a4  Contech Research, Inc.
+09a5  VCON Telecommunications
+09a6  Poinchips
+       8001  Mass Storage Device
+09a7  Data Transmission Network Corp.
+09a8  Lin Shiung Enterprise Co., Ltd
+09a9  Smart Card Technologies Co., Ltd
+09aa  Intersil Corp.
+       1000  Prism GT 802.11b/g Adapter
+       3642  Prism 2.x 802.11b Adapter
+09ab  Japan Cash Machine Co., Ltd.
+09ae  Tripp Lite
+09b2  Franklin Electronic Publishers, Inc.
+       0001  eBookman Palm Computer
+09b3  Altius Solutions, Inc.
+09b4  MDS Telephone Systems
+09b5  Celltrix Technology Co., Ltd
+09bc  Grundig
+       0002  MPaxx MP150 MP3 Player
+09be  MySmart.Com
+       0001  MySmartPad
+09bf  Auerswald GmbH & Co. KG
+       00c0  COMpact 2104 ISDN PBX
+       00db  COMpact 4410/2206 ISDN ISDN
+       00f1  COMfort System Telephones
+09c1  Arris Interactive LLC
+       1337  TOUCHSTONE DEVICE
+09c2  Nisca Corp.
+09c3  ActivCard, Inc.
+       0007  Reader V2
+       0008  SmartCard Reader
+09c4  ACTiSYS Corp.
+       0011  ACT-IR2000U IrDA Dongle
+09c5  Memory Corp.
+09cc  Workbit Corp.
+       0404  BAFO USB-ATA/ATAPI Bridge Controller
+09cd  Psion Dacom Home Networks, Ltd
+09ce  City Electronics, Ltd
+09cf  Electronics Testing Center, Taiwan
+09d1  NeoMagic, Inc.
+09d2  Vreelin Engineering, Inc.
+09d3  Com One
+       0001  ISDN TA
+09d7  Novatel Wireless
+       0100  NovAtel FlexPack GPS receiver
+09d9  KRF Tech, Ltd
+09da  A4 Tech Co., Ltd
+       0006  Optical Mouse WOP-35 / Trust 450L Optical Mouse
+       000a  Port Mouse
+       0018  Trust Human Interface Device
+       001a  Wireless Mouse & RXM-15 Receiver
+       002a  Wireless Optical Mouse NB-30
+09db  Measurement Computing Corp.
+       0075  MiniLab 1008
+       0076  PMD-1024
+       007a  PMD-1208LS
+       0081  USB-1616FS
+       0088  USB-1616FS internal hub
+09dc  Aimex Corp.
+09dd  Fellowes, Inc.
+09df  Addonics Technologies Corp.
+09e1  Intellon Corp.
+       5121  MicroLink dLAN
+09e5  Jo-Dan International, Inc.
+09e6  Silutia, Inc.
+09e7  Real 3D, Inc.
+09e8  AKAI  Professional M.I. Corp.
+09e9  Chen-Source, Inc.
+09eb  IM Networks, Inc.
+       4331  iRhythm Tuner Remote
+09ef  Xitel
+       0101  MD-Port DG2 MiniDisc Interface
+09f5  AresCom
+       0168  Network Adapter
+       0188  LAN Adapter
+       0850  Adapter
+09f6  RocketChips, Inc.
+09f7  Edu-Science (H.K.), Ltd
+09f8  SoftConnex Technologies, Inc.
+09f9  Bay Associates
+09fa  Mtek Vision
+09fb  Altera
+09ff  Gain Technology Corp.
+0a00  Liquid Audio
+0a01  ViA, Inc.
+0a07  Ontrak Control Systems Inc.
+       0064  ADU100 Data Acquisition Interface
+       00c8  ADU200 Relay I/O Interface
+       00d0  ADU208 Data Acquisition Interface
+0a0b  Cybex Computer Products Co.
+0a11  Xentec, Inc.
+0a12  Cambridge Silicon Radio, Ltd
+       0001  Bluetooth Dongle (HCI mode)
+       0002  Frontline Test Equipment Bluetooth Device
+       0003  Nanosira
+       0004  Nanosira WHQL Reference Radio
+       0005  Nanosira-Multimedia
+       0006  Nanosira-Multimedia WHQL Reference Radio
+       0007  Nanosira3-ROM
+       0008  Nanosira3-ROM
+       0009  Nanosira4-EDR WHQL Reference Radio
+       000a  Nanosira4-EDR-ROM
+       000b  Nanosira5-ROM
+       0043  Bluetooth Device
+       0100  Casira with BlueCore2-External Module
+       0101  Casira with BlueCore2-Flash Module
+       0102  Casira with BlueCore3-Multimedia Module
+       0103  Casira with BlueCore3-Flash Module
+       0104  Casira with BlueCore4-External Module
+       0105  Casira with BlueCore4-Multimedia Module
+       1000  Bluetooth Dongle (HID proxy mode)
+       1010  Bluetooth Device
+       1011  Bluetooth Device
+       1012  Bluetooth Device
+       ffff  USB Bluetooth Device in DFU State
+0a13  Telebyte, Inc.
+0a14  Spacelabs Medical, Inc.
+0a15  Scalar Corp.
+0a16  Trek Technology (S) PTE, Ltd
+       1111  ThumbDrive
+       8888  IBM USB Memory Key
+       9988  Trek2000 TD-G2
+0a17  Pentax Corp.
+       0004  Pentax Optio 330
+       0006  Pentax Optio S
+       0007  Pentax Optio 550
+       0009  Pentax Optio 33WR
+       000a  Pentax Optio 555
+       000c  Pentax Optio 43WR (mass storage mode)
+       000d  Pentax Optio 43WR
+       0015  Pentax Optio S40/S5i
+       003b  Pentax Optio 50 (mass storage mode)
+       003d  Pentax Optio S55
+       0043  Pentax *ist DL
+       0047  Pentax Optio S60
+       0052  Optio 60 Digital Camera
+       006e  Pentax K10D
+       0070  Pentax K100D
+       1001  EI2000 Camera powered by Digita!
+0a18  Heidelberger Druckmaschinen AG
+0a19  Hua Geng Technologies, Inc.
+0a21  Medtronic Physio Control Corp.
+0a22  Century Semiconductor USA, Inc.
+0a2c  AK-Modul-Bus Computer GmbH
+       0008  GPIO Ports
+0a34  TG3 Electronics, Inc.
+       0110  Deck 82-key backlit keyboard
+0a39  Gilat Satellite Networks, Ltd
+0a3a  PentaMedia Co., Ltd
+       0163  KN-W510U 1.0 Wireless LAN Adapter
+0a3c  NTT DoCoMo, Inc.
+0a3d  Varo Vision
+0a3f  Swissonic AG
+0a43  Boca Systems, Inc.
+0a46  Davicom Semiconductor, Inc.
+       0268  ST268
+       9601  DM9601 To Fast Ethernet Adapter
+0a47  Hirose Electric
+0a48  I/O Interconnect
+       3233  Multimedia Card Reader
+       3239  Multimedia Card Reader
+       3258  Dane Elec zMate SD Reader
+       3259  Dane Elec zMate CF Reader
+       5000  MediaGear xD-SM
+       500a  Mass Storage Device
+       500f  Mass Storage Device
+       5010  Mass Storage Device
+       5011  Mass Storage Device
+       5014  Mass Storage Device
+       5020  Mass Storage Device
+       5021  Mass Storage Device
+       5022  Mass Storage Device
+       5023  Mass Storage Device
+       5024  Mass Storage Device
+       5025  Mass Storage Device
+0a4b  Fujitsu Media Devices, Ltd
+0a4c  Computex Co., Ltd
+0a4d  Evolution Electronics, Ltd
+       0064  MK-225 Driver
+       0065  MK-225C Driver
+       0066  MK-225C Driver
+       0067  MK-425C Driver
+       0078  MK-37 Driver
+       0079  MK-37C Driver
+       007a  MK-37C Driver
+       008c  TerraTec MIDI MASTER
+       008d  MK-249C Driver
+       008e  MK-249C MIDI Keyboard
+       008f  MK-449C Driver
+       0090  Keystation 49e Driver
+       0091  Keystation 61es Driver
+       00a0  MK-361 Driver
+       00a1  MK-361C Driver
+       00a2  MK-361C Driver
+       00a3  MK-461C MIDI Keyboard
+       00b5  Keystation Pro 88 Driver
+       00d2  E-Keys Driver
+       00f0  UC-16 Driver
+       00f1  X-Session Driver
+       00f5  UC-33e MIDI Controller
+0a4e  Steinberg Soft-und Hardware GmbH
+0a4f  Litton Systems, Inc.
+0a50  Mimaki Engineering Co., Ltd
+0a51  Sony Electronics, Inc.
+0a52  Jebsee Electronics Co., Ltd
+0a53  Portable Peripheral Co., Ltd
+       1000  Scanner
+       2000  Q-Scan A6 Scanner
+       2001  Q-Scan A6 Scanner
+       2013  Media Drive A6 Scanner
+       2014  Media Drive A6 Scanner
+       2015  BizCardReader 600C
+       2016  BizCardReader 600C
+       202a  Scanshell-CSSN
+       3000  Q-Scan A8 Scanner
+       3002  Q-Scan A8 Reader
+       3015  BizCardReader 300G
+       5001  BizCardReader 900C
+0a5a  Electronics For Imaging, Inc.
+0a5b  EAsics NV
+0a5c  Broadcom Corp.
+       0201  iLine10(tm) Network Adapter
+       2000  Bluetooth Device
+       2009  Bluetooth Controller
+       200a  Bluetooth dongle
+       200f  Bluetooth Controller
+       201d  Bluetooth Device
+       201e  IBM Integrated Bluetooth IV
+       2020  Bluetooth Dongle
+       2033  BCM2033 Bluetooth
+       2035  BCM2035 Bluetooth
+       2038  Blutonium Device
+       2039  Bluetooth Device
+       2045  Bluetooth Controller
+       2046  Bluetooth Device
+       2047  Bluetooth Device
+       205e  Bluetooth Device
+       2100  Bluetooth 2.0+eDR dongle
+       2101  A-Link BlueUsbA2 Bluetooth
+       2102  ANYCOM Blue USB-200/250
+       2110  Bluetooth Controller
+       2111  ANYCOM Blue USB-UHE 200/250
+       2120  2045 Bluetooth 2.0 USB-UHE Device with trace filter
+       2121  BCM2210 Bluetooth
+       2122  Bluetooth 2.0+EDR dongle
+       2130  2045 Bluetooth 2.0 USB-UHE Device with trace filter
+       2131  2045 Bluetooth 2.0 Device with trace filter
+       6300  Pirelli Remote NDIS Device
+0a5d  Diatrend Corp.
+0a5f  Zebra
+       0009  LP2844 Printer
+       930a  Printer
+0a62  MPMan
+       0010  MPMan MP-F40 MP3 Player
+0a66  ClearCube Technology
+0a67  Medeli Electronics Co., Ltd
+0a68  Comaide Corp.
+0a69  Chroma ate, Inc.
+0a6b  Green House Co., Ltd
+       0001  Compact Flash R/W with MP3 player
+0a6c  Integrated Circuit Systems, Inc.
+0a6d  UPS Manufacturing
+0a6e  Benwin
+0a6f  Core Technology, Inc.
+       0400  Xanboo
+0a70  International Game Technology
+0a72  Sanwa Denshi
+0a7d  NSTL, Inc.
+0a7e  Octagon Systems Corp.
+0a80  Rexon Technology Corp., Ltd
+0a81  Chesen Electronics Corp.
+       0101  Keyboard
+       0103  Keyboard
+       0203  Mouse
+       0205  PS/2 Keyboard+Mouse Adapter
+0a82  Syscan
+       4600  TravelScan 460/464
+0a83  NextComm, Inc.
+0a84  Maui Innovative Peripherals
+0a85  Idexx Labs
+0a86  NITGen Co., Ltd
+0a8d  Picturetel
+0a8e  Japan Aviation Electronics Industry, Ltd
+       2011  Filter Driver For JAE XMC R/W
+0a90  Candy Technology Co., Ltd
+0a91  Globlink Technology, Inc.
+       3801  Targus PAKP003 Mouse
+0a92  EGO SYStems, Inc.
+       0011  SYS WaveTerminal U2A
+       0021  GIGAPort
+       0031  GIGAPortAG
+       0053  AudioTrak Optoplay
+       0061  Waveterminal U24
+       0071  MAYA EX7
+       0091  Maya 44
+       00b1  MAYA EX5
+       1000  MIDI Mate
+       1010  RoMI/O
+       1020  M4U
+       1030  M8U
+       1090  KeyControl49
+       10a0  KeyControl25
+0a93  C Technologies AB
+       0002  C-Pen 10
+       0005  MyPen Light
+       000d  Input Pen
+       0010  C-Pen 20
+0a94  Intersense
+0aa3  Lava Computer Mfg., Inc.
+0aa4  Develco Elektronik
+0aa5  First International Digital
+       0002  irock! 500 Series
+       0801  MP3 Player
+0aa6  Perception Digital, Ltd
+       0101  Hercules Jukebox
+       1501  Store 'n' Go HD Drive
+0aa7  Wincor Nixdorf International GmbH
+       0100  POS Keyboard, TA58P-USB
+       0101  POS Keyboard, TA85P-USB
+       0102  POS Keyboard, TA59-USB
+       0103  POS Keyboard, TA60-USB
+       0104  SNIkey Keyboard, SNIKey-KB-USB
+       0200  Operator Display, BA63-USB
+       0201  Operator Display, BA66-USB
+       0202  Operator Display & Scanner, XiCheck-BA63
+       0203  Operator Display & Scanner, XiCheck-BA66
+       0204  Graphics Operator Display, BA63GV
+       0300  POS Printer (printer class mode), TH210
+       0301  POS Printer (native mode), TH210
+       0302  POS Printer (printer class mode), TH220
+       0303  POS Printer (native mode), TH220
+       0304  POS Printer, TH230
+       0305  Lottery Printer, XiPrintPlus
+       0306  POS Printer (printer class mode), TH320
+       0307  POS Printer (native mode), TH320
+       0308  POS Printer (printer class mode), TH420
+       0309  POS Printer (native mode), TH420
+       030a  POS Printer, TH200B
+       0400  Lottery Scanner, Xiscan S
+       0401  Lottery Scanner, Xiscan 3
+       4304  Banking Printer TP07
+0aa8  TriGem Computer, Inc.
+       0060  TG 11Mbps WLAN Mini Adapter
+       1001  DreamComboM4100
+       3002  InkJet Color Printer
+       8001  TG_iMON
+       8002  TG_KLOSS
+       a001  TG_X2
+       a002  TGVFD_KLOSS
+       ffda  iMON_VFD
+0aa9  Baromtec Co.
+       f01b  Medion MD 6242 MP3 Player
+0aaa  Japan CBM Corp.
+0aab  Vision Shape Europe SA
+0aac  iCompression, Inc.
+0aad  Rohde & Schwarz GmbH & Co. KG
+0aae  NEC infrontia Corp. (Nitsuko)
+0aaf  Digitalway Co., Ltd
+0ab0  Arrow Strong Electronics Co., Ltd
+0aba  Ellisys
+       8001  USB Tracker 110 Protocol Analyzer
+0abe  Stereo-Link
+       0101  SL1200 DAC
+0ac3  Sanyo Semiconductor Company Micro
+0ac4  Leco Corp.
+0ac5  I & C Corp.
+0ac6  Singing Electrons, Inc.
+0ac7  Panwest Corp.
+0ac8  Z-Star Microelectronics Corp.
+       0301  Web Camera
+       0302  ZC0302 WebCam
+       0321  USB 2.0 Webcam
+       0323  Luxya WC-1200 USB 2.0 Webcam
+       301b  ZC0301 WebCam
+       303b  ZC0303 WebCam
+       305b  ZC0305 WebCam
+       307b  USB 1.1 WebCam
+       c002  Visual Communication Camera VGP-VCC1
+0ac9  Micro Solutions, Inc.
+       0000  Backpack CD-ReWriter
+       0001  BACKPACK  2 Cable
+       0010  BACKPACK
+       0011  Backpack 40GB Hard Drive
+       0110  BACKPACK
+       0111  BackPack
+       1234  BACKPACK
+0aca  OPEN Networks Ltd
+       1060  OPEN NT1 Plus II
+0acc  Koga Electronics Co.
+0acd  ID Tech
+       0401  ID TECH Spectrum III Hybrid Smartcard Reader
+0ace  ZyDAS
+       1201  802.11b WiFi
+       1211  802.11b/g USB2 WiFi
+       1215  WLA-54L WiFi
+       1608  ONMI FAXMODEM 56K UNO (ZyXEL)
+0acf  Intoto, Inc.
+0ad0  Intellix Corp.
+0ad1  Remotec Technology, Ltd
+0ad2  Service & Quality Technology Co., Ltd
+0ae3  Allion Computer, Inc.
+0ae4  Taito Corp.
+0ae7  Neodym Systems, Inc.
+0ae8  System Support Co., Ltd
+0ae9  North Shore Circuit Design L.L.P.
+0aea  SciEssence, LLC
+0aeb  TTP Communications, Ltd
+0aec  Neodio Technologies Corp.
+       2101  SmartMedia Card Reader
+       2102  CompactFlash Card Reader
+       2103  MMC/SD Card Reader
+       2104  MemoryStick Card Reader
+       2201  SmartMedia+CompactFlash Card Reader
+       2202  SmartMedia+MMC/SD Card Reader
+       2203  SmartMedia+MemoryStick Card Reader
+       2204  CompactFlash+MMC/SD Card Reader
+       2205  CompactFlash+MemoryStick Card Reader
+       2206  MMC/SD+MemoryStick Card Reader
+       2301  SmartMedia+CompactFlash+MMC/SD Card Reader
+       2302  SmartMedia+CompactFlash+MemoryStick Card Reader
+       2303  SmartMedia+MMC/SD+MemoryStick Card Reader
+       2304  CompactFlash+MMC/SD+MemoryStick Card Reader
+       3016  MMC/SD+Memory Stick Card Reader
+       3050  ND3050 8-in-1 Card Reader
+       3060  1.1 FS Card Reader
+       3101  MMC/SD Card Reader
+       3102  MemoryStick Card Reader
+       3201  MMC/SD+MemoryStick Card Reader
+       3216  HS Card Reader
+       3260  7-in-1 Card Reader
+       5010  ND5010 Card Reader
+0af0  Option
+       5000  UMTS Card
+       6000  GlobeTrotter 3G datacard
+       6300  GT 3G Quad UMTS/GPRS Card
+       6600  GlobeTrotter 3G+ datacard
+0af6  Silver I Co., Ltd
+0af7  B2C2, Inc.
+       0101  Digital TV USB Receiver (DVB-S/T/C / ATSC)
+0af9  Hama, Inc.
+       0010  USB SightCam 100
+       0011  Micro Innovations IC50C WebCam
+0afc  Zaptronix Ltd
+0afd  Tateno Dennou, Inc.
+0afe  Cummins Engine Co.
+0aff  Jump Zone Network Products, Inc.
+0b00  INGENICO
+0b05  ASUSTek Computer, Inc.
+       1101  Mass Storage (UISDMC4S)
+       1706  WL-167G 802.11g Adapter [ralink]
+       1707  WL-167g Wireless Adapter
+       1708  Mass Storage Device
+       170b  Mass Storage Device
+       170c  WL-159g
+       170d  802.11b/g Wireless Network Adapter
+       1712  BT-183 Bluetooth 2.0+EDR adapter
+       1715  2045 Bluetooth 2.0 Device with trace filter
+       1716  Bluetooth Device
+       171b  A9T wireless
+       171c  802.11b/g Wireless Network Adapter
+       1723  WL-167G v2 802.11g Adapter [ralink]
+       1724  RT2573
+       1726  Laptop OLED Display
+       172a  ASUS 802.11n Network Adapter
+       172b  802.11n Network Adapter
+       1731  ASUS 802.11n Network Adapter
+       1732  802.11n Network Adapter
+       173c  BT-183 Bluetooth 2.0
+       1742  802.11n Network Adapter
+       6101  Cable Modem
+       620a  Remote NDIS Device
+0b0c  Todos Data System AB
+       0009  Todos Argos Mini II Smart Card Reader
+0b0e  GN Netcom
+0b0f  AVID Technology
+0b10  Pcally
+0b11  I Tech Solutions Co., Ltd
+0b1e  Electronic Warfare Assoc., Inc. (EWA)
+0b1f  Insyde Software Corp.
+0b20  TransDimension, Inc.
+0b21  Yokogawa Electric Corp.
+0b22  Japan System Development Co., Ltd
+0b23  Pan-Asia Electronics Co., Ltd
+0b24  Link Evolution Corp.
+0b27  Ritek Corp.
+0b28  Kenwood Corp.
+0b2c  Village Center, Inc.
+0b30  PNY Technologies, Inc.
+       0006  SM Media-Shuttle Card Reader
+0b33  Contour Design, Inc.
+       0020  ShuttleXpress
+0b37  Hitachi ULSI Systems Co., Ltd
+0b39  Omnidirectional Control Technology, Inc.
+       0109  USB TO Ethernet
+       0421  Serial
+       0801  USB-Parallel Bridge
+       0901  OCT To Fast Ethernet Converter
+       0c03  LAN DOCK Serial Converter
+0b3a  IPaxess
+0b3b  Tekram Technology Co., Ltd
+       0163  TL-WN320G 1.0 WLAN Adapter
+       1601  Allnet 0193 802.11b Adapter
+       1602  ZyXEL ZyAIR B200 802.11b Adapter
+       1612  AIR.Mate 2@net 802.11b Adapter
+       1613  802.11b Wireless LAN Adapter
+       1620  Allnet USB 2.0 Wireless Network Adapter
+       1630  QuickWLAN
+       5630  ZD1211
+       6630  ZD1211
+0b3c  Olivetti Techcenter
+       a010  Simple_Way Printer/Scanner/Copier
+0b3e  Kikusui Electronics Corp.
+0b41  Hal Corp.
+       0011  Crossam2+USB IR commander
+0b43  Play.com, Inc.
+       0003  PS2 Controller Converter
+0b47  Sportbug.com, Inc.
+0b48  TechnoTrend AG
+       1003  Technotrend/Hauppauge USB-Nova
+       1004  TT-PCline
+       1005  Technotrend/Hauppauge USB-Nova
+       1006  Technotrend/Hauppauge DEC3000-s
+       1007  TT-micro plus Device
+       1008  Technotrend/Hauppauge DEC2000-t
+       1009  Technotrend/Hauppauge DEC2540-t
+0b49  ASCII Corp.
+       064f  Trance Vibrator
+0b4b  Pine Corp. Ltd.
+       0100  D'music MP3 Player
+0b4d  Graphtec America, Inc.
+       110a  Graphtec CC200-20
+0b4e  Musical Electronics, Ltd
+       6500  MP3 Player
+       8028  MP3 Player
+       8920  MP3 Player
+0b50  Dumpries Co., Ltd
+0b51  Comfort Keyboard Co.
+       0020  Comfort Keyboard
+0b52  Colorado MicroDisplay, Inc.
+0b54  Sinbon Electronics Co., Ltd
+0b56  TYI Systems, Ltd
+0b57  Beijing HanwangTechnology Co., Ltd
+0b59  Lake Communications, Ltd
+0b5a  Corel Corp.
+0b5f  Green Electronics Co., Ltd
+0b60  Nsine, Ltd
+0b61  NEC Viewtechnology, Ltd
+0b62  Orange Micro, Inc.
+       000b  Bluetooth Device
+       0059  iBOT2 WebCam
+0b63  ADLink Technology, Inc.
+0b64  Wonderful Wire Cable Co., Ltd
+0b65  Expert Magnetics Corp.
+0b69  CacheVision
+0b6a  Maxim Integrated Products
+0b6f  Nagano Japan Radio Co., Ltd
+0b70  PortalPlayer, Inc.
+       00ba  iRiver H10 20GB
+0b71  SHIN-EI Sangyo Co., Ltd
+0b72  Embedded Wireless Technology Co., Ltd
+0b73  Computone Corp.
+0b75  Roland DG Corp.
+0b79  Sunrise Telecom, Inc.
+0b7a  Zeevo, Inc.
+       07d0  Bluetooth Dongle
+0b7b  Taiko Denki Co., Ltd
+0b7c  ITRAN Communications, Ltd
+0b7d  Astrodesign, Inc.
+0b84  Rextron Technology, Inc.
+0b85  Elkat Electronics, Sdn., Bhd.
+0b86  Exputer Systems, Inc.
+       5100  XMC5100 Zippy Drive
+       5110  XMC5110 Flash Drive
+       5200  XMC5200 Zippy Drive
+       5201  XMC5200 Zippy Drive
+       5202  XMC5200 Zippy Drive
+       5280  XMC5280 Storage Drive
+       fff0  ISP5200 Debugger
+0b87  Plus-One I & T, Inc.
+0b88  Sigma Koki Co., Ltd, Technology Center
+0b89  Advanced Digital Broadcast, Ltd
+0b95  ASIX Electronics Corp.
+       1720  10/100 Ethernet
+       1780  AX88178
+       7720  AX88772
+0b96  Sewon Telecom
+0b97  O2 Micro, Inc.
+       7732  Smart Card Reader
+       7761  Oz776 1.1 Hub
+       7762  Oz776 SmartCard Reader
+       7772  OZ776 CCID Smartcard Reader
+0b98  Playmates Toys, Inc.
+0b99  Audio International, Inc.
+0b9b  Dipl.-Ing. Stefan Kunde
+       4012  Reflex RC-controller Interface
+0b9d  Softprotec Co.
+0b9f  Chippo Technologies
+0baf  U.S. Robotics
+       00e5  USR6000
+       00eb  USR1120 802.11b Adapter
+       00ec  56K Faxmodem
+       00f1  SureConnect ADSL ATM Adapter
+       00f2  SureConnect ADSL Loader
+       00f5  SureConnect ADSL ATM Adapter
+       00f6  SureConnect ADSL Loader
+       00f7  SureConnect ADSL ATM Adapter
+       00f8  SureConnect ADSL Loader
+       00f9  SureConnect ADSL ATM Adapter
+       00fa  SureConnect ADSL Loader
+       00fb  SureConnect ADSL Ethernet/USB Router
+       0118  U5 802.11g Adapter
+       011b  Wireless MAXg Adapter
+       0121  USR5423 WLAN
+       6112  FaxModem Model 5633
+0bb0  Concord Camera Corp.
+       0100  Sound Vision Stream
+       5007  3340z/Rollei DC3100
+0bb1  Infinilink Corp.
+0bb2  Ambit Microsystems Corp.
+       0302  WLAN
+       6098  USB Cable Modem
+0bb3  Ofuji Technology
+0bb4  High Tech Computer Corp.
+       00ce  mmO2 XDA GSM/GPRS Pocket PC
+       00cf  SPV C500 Smart Phone
+       0a01  PocketPC Sync
+       0a02  Himalaya GSM/GPRS Pocket PC
+       0a03  PocketPC Sync
+       0a04  PocketPC Sync
+       0a05  PocketPC Sync
+       0a06  PocketPC Sync
+       0a07  Magician PocketPC SmartPhone / O2 XDA
+       0a08  PocketPC Sync
+       0a09  PocketPC Sync
+       0a0a  PocketPC Sync
+       0a0b  PocketPC Sync
+       0a0c  PocketPC Sync
+       0a0d  PocketPC Sync
+       0a0e  PocketPC Sync
+       0a0f  PocketPC Sync
+       0a10  PocketPC Sync
+       0a11  PocketPC Sync
+       0a12  PocketPC Sync
+       0a13  PocketPC Sync
+       0a14  PocketPC Sync
+       0a15  PocketPC Sync
+       0a16  PocketPC Sync
+       0a17  PocketPC Sync
+       0a18  PocketPC Sync
+       0a19  PocketPC Sync
+       0a1a  PocketPC Sync
+       0a1b  PocketPC Sync
+       0a1c  PocketPC Sync
+       0a1d  PocketPC Sync
+       0a1e  PocketPC Sync
+       0a1f  PocketPC Sync
+       0a20  PocketPC Sync
+       0a21  PocketPC Sync
+       0a22  PocketPC Sync
+       0a23  PocketPC Sync
+       0a24  PocketPC Sync
+       0a25  PocketPC Sync
+       0a26  PocketPC Sync
+       0a27  PocketPC Sync
+       0a28  PocketPC Sync
+       0a29  PocketPC Sync
+       0a2a  PocketPC Sync
+       0a2b  PocketPC Sync
+       0a2c  PocketPC Sync
+       0a2d  PocketPC Sync
+       0a2e  PocketPC Sync
+       0a2f  PocketPC Sync
+       0a30  PocketPC Sync
+       0a31  PocketPC Sync
+       0a32  PocketPC Sync
+       0a33  PocketPC Sync
+       0a34  PocketPC Sync
+       0a35  PocketPC Sync
+       0a36  PocketPC Sync
+       0a37  PocketPC Sync
+       0a38  PocketPC Sync
+       0a39  PocketPC Sync
+       0a3a  PocketPC Sync
+       0a3b  PocketPC Sync
+       0a3c  PocketPC Sync
+       0a3d  PocketPC Sync
+       0a3e  PocketPC Sync
+       0a3f  PocketPC Sync
+       0a40  PocketPC Sync
+       0a41  PocketPC Sync
+       0a42  PocketPC Sync
+       0a43  PocketPC Sync
+       0a44  PocketPC Sync
+       0a45  PocketPC Sync
+       0a46  PocketPC Sync
+       0a47  PocketPC Sync
+       0a48  PocketPC Sync
+       0a49  PocketPC Sync
+       0a4a  PocketPC Sync
+       0a4b  PocketPC Sync
+       0a4c  PocketPC Sync
+       0a4d  PocketPC Sync
+       0a4e  PocketPC Sync
+       0a4f  PocketPC Sync
+       0a50  HTC SmartPhone Sync
+       0a51  SPV C400 / T-Mobile SDA GSM/GPRS Pocket PC
+       0a52  SmartPhone Sync
+       0a53  SmartPhone Sync
+       0a54  SmartPhone Sync
+       0a55  SmartPhone Sync
+       0a56  SmartPhone Sync
+       0a57  SmartPhone Sync
+       0a58  SmartPhone Sync
+       0a59  SmartPhone Sync
+       0a5a  SmartPhone Sync
+       0a5b  SmartPhone Sync
+       0a5c  SmartPhone Sync
+       0a5d  SmartPhone Sync
+       0a5e  SmartPhone Sync
+       0a5f  SmartPhone Sync
+       0a60  SmartPhone Sync
+       0a61  SmartPhone Sync
+       0a62  SmartPhone Sync
+       0a63  SmartPhone Sync
+       0a64  SmartPhone Sync
+       0a65  SmartPhone Sync
+       0a66  SmartPhone Sync
+       0a67  SmartPhone Sync
+       0a68  SmartPhone Sync
+       0a69  SmartPhone Sync
+       0a6a  SmartPhone Sync
+       0a6b  SmartPhone Sync
+       0a6c  SmartPhone Sync
+       0a6d  SmartPhone Sync
+       0a6e  SmartPhone Sync
+       0a6f  SmartPhone Sync
+       0a70  SmartPhone Sync
+       0a71  SmartPhone Sync
+       0a72  SmartPhone Sync
+       0a73  SmartPhone Sync
+       0a74  SmartPhone Sync
+       0a75  SmartPhone Sync
+       0a76  SmartPhone Sync
+       0a77  SmartPhone Sync
+       0a78  SmartPhone Sync
+       0a79  SmartPhone Sync
+       0a7a  SmartPhone Sync
+       0a7b  SmartPhone Sync
+       0a7c  SmartPhone Sync
+       0a7d  SmartPhone Sync
+       0a7e  SmartPhone Sync
+       0a7f  SmartPhone Sync
+       0a80  SmartPhone Sync
+       0a81  SmartPhone Sync
+       0a82  SmartPhone Sync
+       0a83  SmartPhone Sync
+       0a84  SmartPhone Sync
+       0a85  SmartPhone Sync
+       0a86  SmartPhone Sync
+       0a87  SmartPhone Sync
+       0a88  SmartPhone Sync
+       0a89  SmartPhone Sync
+       0a8a  SmartPhone Sync
+       0a8b  SmartPhone Sync
+       0a8c  SmartPhone Sync
+       0a8d  SmartPhone Sync
+       0a8e  SmartPhone Sync
+       0a8f  SmartPhone Sync
+       0a90  SmartPhone Sync
+       0a91  SmartPhone Sync
+       0a92  SmartPhone Sync
+       0a93  SmartPhone Sync
+       0a94  SmartPhone Sync
+       0a95  SmartPhone Sync
+       0a96  SmartPhone Sync
+       0a97  SmartPhone Sync
+       0a98  SmartPhone Sync
+       0a99  SmartPhone Sync
+       0a9a  SmartPhone Sync
+       0a9b  SmartPhone Sync
+       0a9c  SmartPhone Sync
+       0a9d  SmartPhone Sync
+       0a9e  SmartPhone Sync
+       0a9f  SmartPhone Sync
+       0b04  Hermes / TyTN / T-Mobile MDA Vario II / O2 Xda Trion
+       0b06  Athena / Advantage x7500 / Dopod U1000 / T-Mobile AMEO
+       0b0c  Elf / Touch / P3450 / T-Mobile MDA Touch / O2 Xda Nova / Dopod S1
+       0bce  Vario MDA
+0bb5  Murata Manufacturing Co., Ltd
+0bb6  Network Alchemy
+0bb7  Joytech Computer Co., Ltd
+0bb8  Hitachi Semiconductor and Devices Sales Co., Ltd
+0bb9  Eiger M&C Co., Ltd
+0bba  ZAccess Systems
+0bbb  General Meters Corp.
+0bbc  Assistive Technology, Inc.
+0bbd  System Connection, Inc.
+0bc0  Knilink Technology, Inc.
+0bc1  Fuw Yng Electronics Co., Ltd
+0bc2  Seagate RSS LLC
+       2000  Storage Adapter V3 (TPP)
+0bc3  IPWireless, Inc.
+0bc4  Microcube Corp.
+0bc5  JCN Co., Ltd
+0bc6  ExWAY, Inc.
+0bc7  X10 Wireless Technology, Inc.
+       0001  ActiveHome (ACPI-compliant)
+       0002  Firecracker Interface (ACPI-compliant)
+       0003  VGA Video Sender (ACPI-compliant)
+       0004  X10 Receiver
+       0005  Wireless Transceiver (ACPI-compliant)
+       0006  Wireless Transceiver (ACPI-compliant)
+       0007  Wireless Transceiver (ACPI-compliant)
+       0008  Wireless Transceiver (ACPI-compliant)
+       0009  Wireless Transceiver (ACPI-compliant)
+       000a  Wireless Transceiver (ACPI-compliant)
+       000b  Transceiver (ACPI-compliant)
+       000c  Transceiver (ACPI-compliant)
+       000d  Transceiver (ACPI-compliant)
+       000e  Transceiver (ACPI-compliant)
+       000f  Transceiver (ACPI-compliant)
+0bc8  Telmax Communications
+0bc9  ECI Telecom, Ltd
+0bca  Startek Engineering, Inc.
+0bcb  Perfect Technic Enterprise Co., Ltd
+0bd7  Andrew Pargeter & Associates
+       a021  Amptek DP4 multichannel signal analyzer
+0bda  Realtek Semiconductor Corp.
+       0103  USB 2.0 Card Reader
+       0104  Mass Storage Device
+       0106  Mass Storage Device
+       0107  Mass Storage Device
+       0108  Mass Storage Device
+       0111  Card Reader
+       0113  Mass Storage Device
+       0115  Mass Storage Device
+       0116  Mass Storage Device
+       0117  Mass Storage Device
+       0118  Mass Storage Device
+       0151  Mass Stroage Device
+       0152  Mass Stroage Device
+       0153  Mass Stroage Device
+       0156  Mass Stroage Device
+       0157  Mass Stroage Device
+       0158  Mass Stroage Device
+       0161  Mass Stroage Device
+       0168  Mass Stroage Device
+       0169  Mass Stroage Device
+       0171  Mass Stroage Device
+       0176  Mass Stroage Device
+       0178  Mass Stroage Device
+       2831  2831U Device
+       8150  RTL8150 Fast Ethernet Adapter
+       8151  RTL8151 Adapteon Business Mobile Networks BV
+       8187  RTL8187 Wireless Adapter
+       8189  RTL8187B Wireless 802.11g 54Mbps Network Adapter
+       8197  RTL8187B Wireless Adapter
+0bdb  Ericsson Business Mobile Networks BV
+       1000  BV Bluetooth Device
+       1002  Bluetooth Device 1.2
+0bdc  Y Media Corp.
+0bdd  Orange PCS
+0be2  Kanda Tsushin Kogyo Co., Ltd
+0be3  TOYO Corp.
+0be4  Elka International, Ltd
+0be5  DOME imaging systems, Inc.
+0be6  Dong Guan Humen Wonderful Wire Cable Factory
+0bee  LTK Industries, Ltd
+0bef  Way2Call Communications
+0bf0  Pace Micro Technology PLC
+0bf1  Intracom S.A.
+       0001  netMod Driver Ver 2.4.17 (CAPI)
+       0002  netMod Driver Ver 2.4 (CAPI)
+       0003  netMod Driver Ver 2.4 (CAPI)
+0bf2  Konexx
+0bf6  Addonics Technologies, Inc.
+       0103  Storage Device
+       1234  Storage Device
+       a000  Cable 205 (TPP)
+       a001  Cable 205
+       a002  IDE Bridge
+0bf7  Sunny Giken, Inc.
+0bf8  Fujitsu Siemens Computers
+       1001  Fujitsu Pocket Loox 600 PDA
+0c04  MOTO Development Group, Inc.
+0c05  Appian Graphics
+0c06  Hasbro Games, Inc.
+0c07  Infinite Data Storage, Ltd
+0c08  Agate
+       0378  Q 16MB Storage Device
+0c09  Comjet Information System
+       a5a5  Litto Version USB2.0
+0c0a  Highpoint Technologies, Inc.
+0c0b  Dura Micro, Inc. (Acomdata)
+       27cb  6-in-1 Flash Reader and Writer
+       27d7  Multi Memory reader/writer MD-005
+       27da  Multi Memory reader/writer MD-005
+       27dc  Multi Memory reader/writer MD-005
+       27e7  3,5'' HDD case MD-231
+       27ee  3,5'' HDD case MD-231
+       2814  3,5'' HDD case MD-231
+       2815  3,5'' HDD case MD-231
+       281d  3,5'' HDD case MD-231
+       a109  CF/SM Reader and Writer
+       a10c  SD/MS Reader and Writer
+       b001  USB 2.0 Mass Storage IDE adapter
+       b004  MMC/SD Reader and Writer
+0c12  Zeroplus
+       0005  PSX Vibration Feedback Converter
+       8809  Red Octane Ignition Xbox DDR Pad
+0c15  Iris Graphics
+0c16  Gyration, Inc.
+       0080  eHome Infrared Receiver
+       0081  eHome Infrared Receiver
+0c17  Cyberboard A/S
+0c18  SynerTek Korea, Inc.
+0c19  cyberPIXIE, Inc.
+0c1a  Silicon Motion, Inc.
+0c1b  MIPS Technologies
+0c1c  Hang Zhou Silan Electronics Co., Ltd
+0c22  Tally Printer Corp.
+0c23  Lernout + Hauspie
+0c24  Taiyo Yuden
+       0001  Bluetooth Adaptor
+       0002  Bluetooth Device2
+       0005  Bluetooth Device(BC04-External)
+       000b  Bluetooth Device(BC04-External)
+       000c  Bluetooth Adaptor
+       000e  Bluetooth Device(BC04-External)
+       000f  Bluetooth Driver (V2.0+EDR)
+       0010  Bluetooth Device(BC04-External)
+       0012  Bluetooth Device(BC04-External)
+       0018  Bluetooth Device(BC04-External)
+       0019  Bluetooth Device
+       0c24  Bluetooth Device(SAMPLE)
+       ffff  Bluetooth module with BlueCore in DFU mode
+0c25  Sampo Corp.
+       0310  Scream Cam
+0c27  RFIDeas, Inc
+       3bfa  pcProx Card Reader
+0c2e  Metro
+       0200  Metrologic Scanner
+0c35  Eagletron, Inc.
+0c36  E Ink Corp.
+0c37  e.Digital
+0c38  Der An Electric Wire & Cable Co., Ltd
+0c39  IFR
+0c3a  Furui Precise Component (Kunshan) Co., Ltd
+0c3b  Komatsu, Ltd
+0c3c  Radius Co., Ltd
+0c3d  Innocom, Inc.
+0c3e  Nextcell, Inc.
+0c44  Motorola iDEN
+       0021  iDEN P2k0 Device
+       0022  iDEN P2k1 Device
+       03a2  iDEN Smartphone
+0c45  Microdia
+       1020  Mass Storage Reader
+       1028  Mass Storage Reader
+       1030  Mass Storage Reader
+       1031  Sonix Mass Storage Device
+       1032  Mass Storage Reader
+       1033  Sonix Mass Storage Device
+       1034  Mass Storage Reader
+       1035  Mass Storage Reader
+       1036  Mass Storage Reader
+       1037  Sonix Mass Storage Device
+       1050  CF Card Reader
+       1058  HDD Reader
+       1060  iFlash SM-Direct Card Reader
+       1061  Mass Storage Reader
+       1062  Mass Storage Reader
+       1063  Sonix Mass Storage Device
+       1064  Mass Storage Reader
+       1065  Mass Storage Reader
+       1066  Mass Storage Reader
+       1067  Mass Storage Reader
+       1158  A56AK
+       184c  VoIP Phone
+       6001  Genius VideoCAM NB
+       6005  Sweex Mini WebCam
+       6007  VideoCAM Eye
+       6009  VideoCAM ExpressII
+       600d  TwinkleCam USB camera
+       6011  PC Camera (SN9C102)
+       6019  PC Camera (SN9C102)
+       6024  VideoCAM ExpressII
+       6025  VideoCAM ExpressII
+       6028  Typhoon Easycam USB 330K (older)
+       6029  Triplex i-mini PC Camera
+       602a  Meade ETX-105EC Camera
+       602b  VideoCAM NB 300
+       602c  Clas Ohlson TWC-30XOP WebCam
+       602d  VideoCAM ExpressII
+       602e  VideoCAM Messenger
+       6030  VideoCAM ExpressII
+       603f  VideoCAM ExpressII
+       6040  CCD PC Camera (PC390A)
+       606a  CCD PC Camera (PC390A)
+       607a  CCD PC Camera (PC390A)
+       607b  Win2 PC Camera
+       607c  CCD PC Camera (PC390A)
+       607e  CCD PC Camera (PC390A)
+       6080  Audio (Microphone)
+       6082  VideoCAM Look
+       6083  VideoCAM Look
+       608c  VideoCAM Look
+       608e  VideoCAM Look
+       608f  VideoCAM Look
+       60a8  VideoCAM Look
+       60aa  VideoCAM Look
+       60ab  PC Camera
+       60af  VideoCAM Look
+       60b0  Genius VideoCam Look
+       60c0  PC Camera with Mic (SN9C105)
+       60c8  Win2 PC Camera
+       60cc  Composite Device
+       60ec  Composite Device
+       60ef  Win2 PC Camera
+       60fa  PC Camera with Mic (SN9C105)
+       60fb  Composite Device
+       60fc  PC Camera with Mic (SN9C105)
+       60fe  Audio (Microphone)
+       6108  Win2 PC Camera
+       6122  PC Camera (SN9C110)
+       6123  PC Camera (SN9C110)
+       612a  PC Camera (SN9C110)
+       612c  PC Camera (SN9C110)
+       612e  PC Camera (SN9C110)
+       612f  PC Camera (SN9C110)
+       6130  PC Camera (SN9C120)
+       6138  Win2 PC Camera
+       613a  PC Camera (SN9C120)
+       613b  Win2 PC Camera
+       613c  PC Camera (SN9C120)
+       613e  PC Camera (SN9C120)
+       6240  PC Camera (SN9C201)
+       6242  PC Camera (SN9C201)
+       6243  PC Camera (SN9C201)
+       6248  PC Camera (SN9C201)
+       624b  PC Camera (SN9C201)
+       624c  PC Camera (SN9C201)
+       624e  PC Camera (SN9C201)
+       624f  PC Camera (SN9C201)
+       6260  PC Camera (SN9C201)
+       6270  U-CAM PC Camera NE878
+       627a  PC Camera (SN9C201)
+       627b  PC Camera (SN9C201)
+       627c  PC Camera (SN9C201)
+       627f  PC Camera (SN9C201)
+       6280  Composite Device
+       6282  Audio (Microphone)
+       6283  Audio (Microphone)
+       6288  Audio (Microphone)
+       628a  Composite Device
+       628b  PC Camera (SN9C202)
+       628c  PC Camera (SN9C202)
+       628e  Composite Device
+       628f  Composite Device
+       62a0  Audio (Microphone)
+       62b0  Audio (Microphone)
+       62ba  PC Camera (SN9C202)
+       62bb  PC Camera (SN9C202)
+       62bc  Composite Device
+       62c0  Pavilion Webcam
+       8000  DC31VC
+       8006  Dual Mode Camera (8006 VGA)
+       800a  Vivitar Vivicam3350B
+0c46  WaveRider Communications, Inc.
+0c4b  Reiner SCT Kartensysteme GmbH
+       0100  cyberJack e-com/pinpad
+       0300  cyberJack pinpad(a)
+0c52  Sealevel Systems, Inc.
+       2101  Serial Converter
+0c53  ViewPLUS, Inc.
+0c54  Glory, Ltd
+0c55  Spectrum Digital, Inc.
+       0510  Spectrum Digital XDS510 JTAG Debugger
+       0540  SPI540
+       5416  TMS320C5416 DSK
+       6416  TMS320C6416 DDB
+0c56  Billion Bright, Ltd
+0c57  Imaginative Design Operation Co., Ltd
+0c58  Vidar Systems Corp.
+0c59  Dong Guan Shinko Wire Co., Ltd
+0c5a  TRS International Mfg., Inc.
+0c5e  Xytronix Research & Design
+0c62  Chant Sincere Co., Ltd
+0c63  Toko, Inc.
+0c64  Signality System Engineering Co., Ltd
+0c65  Eminence Enterprise Co., Ltd
+0c66  Rexon Electronics Corp.
+0c67  Concept Telecom, Ltd
+0c70  MCT Elektronikladen
+       0000  USB08 Development board
+0c74  Optronic Laboratories Inc.
+       0002  OL 700-30 Goniometer
+0c76  JMTek, LLC.
+       0001  Mass Storage Controller
+       0002  Mass Storage Controller
+       0003  USBdisk
+       0004  Mass Storage Controller
+       0005  Transcend USB Flash disk
+       0006  Transcend JetFlash
+       0007  Mass Storage Device
+0c77  Sipix Group, Ltd
+       1001  SiPix Web2
+       1002  SiPix SC2100
+       1010  SiPix Snap
+       1011  SiPix Blink 2
+       1015  SiPix CAMeleon
+0c78  Detto Corp.
+0c79  NuConnex Technologies Pte., Ltd
+0c7a  Wing-Span Enterprise Co., Ltd
+0c86  NDA Technologies, Inc.
+0c88  Kyocera Wireless Corp.
+       0021  Handheld
+       17da  Qualcomm Kyocera CDMA Technologies MSM
+0c89  Honda Tsushin Kogyo Co., Ltd
+0c8a  Pathway Connectivity, Inc.
+0c8b  Wavefly Corp.
+0c8c  Coactive Networks
+0c8d  Tempo
+0c8e  Cesscom Co., Ltd
+       6000  Luxian Series
+0c8f  Applied Microsystems
+0c98  Berkshire Products, Inc.
+       1140  USB PC Watchdog
+0c99  Innochips Co., Ltd
+0c9a  Hanwool Robotics Corp.
+0c9b  Jobin Yvon, Inc.
+0c9d  SemTek
+       0170  3873 Manual Insert card reader
+0ca2  Zyfer
+0ca3  Sega Corp.
+0ca4  ST&T Instrument Corp.
+0ca5  BAE Systems Canada, Inc.
+0ca6  Castles Technology Co., Ltd
+       0010  EZUSB PC/SC Smart Card Reader
+       0050  EZ220PU Reader Controller
+       1077  Bludrive Family Smart Card Reader
+       107e  Reader Controller
+       2010  myPad110 PC/SC Smart Card Reader
+0ca7  Information Systems Laboratories
+0cad  Motorola CGISS
+       9001  PowerPad Pocket PC Device
+0cae  Ascom Business Systems, Ltd
+0caf  Buslink
+       2507  Hi-Speed USB-to-IDE Bridge Controller
+       2515  Flash Disk Embedded Hub
+       2516  Flash Disk Security Device
+       2517  Flash Disk Mass Storage Device
+       25c7  Hi-Speed USB-to-IDE Bridge Controller
+       3a00  Hard Drive
+       3a20  Mass Storage Device
+       3acd  Mass Storage Device
+0cb0  Flying Pig Systems
+0cb1  Innovonics, Inc.
+0cb6  Celestix Networks, Pte., Ltd
+0cb7  Singatron Enterprise Co., Ltd
+0cb8  Opticis Co., Ltd
+0cba  Trust Electronic (Shanghai) Co., Ltd
+0cbb  Shanghai Darong Electronics Co., Ltd
+0cbc  Palmax Technology Co., Ltd
+       0101  Pocket PC P6C
+       0201  Personal Digital Assistant
+       0301  Personal Digital Assistant P6M+
+       0401  Pocket PC
+0cbd  Pentel Co., Ltd (Electronics Equipment Div.)
+0cbe  Keryx Technologies, Inc.
+0cbf  Union Genius Computer Co., Ltd
+0cc0  Kuon Yi Industrial Corp.
+0cc1  Given Imaging, Ltd
+0cc2  Timex Corp.
+0cc3  Rimage Corp.
+0cc4  emsys GmbH
+0cc5  Sendo
+0cc6  Intermagic Corp.
+0cc7  Kontron Medical AG
+0cc8  Technotools Corp.
+0cc9  BroadMAX Technologies, Inc.
+0cca  Amphenol
+0ccb  SKNet Co., Ltd
+0ccc  Domex Technology Corp.
+0ccd  TerraTec Electronic GmbH
+       0012  PHASE 26
+       0013  PHASE 26
+       0014  PHASE 26
+       0015  Flash Update for TerraTec PHASE 26
+       0021  Cameo Grabster 200
+       0023  Mystify Claw
+       0028  Aureon 5.1 MkII
+       0032  MIDI HUBBLE
+       0035  Miditech Play'n Roll
+       0036  Cinergy 250 Audio
+       0037  Cinergy 250 Audio
+       0038  Cinergy T^2 DVB-T Receiver
+       0039  Grabster AV 400
+       003b  Cinergy 400
+       003c  Grabster AV 250
+       0042  Cinergy Hybrid T XS
+       0043  Cinergy T XS
+       004e  Cinergy T XS
+       004f  Cinergy Analog XS
+       005c  Cinergy T²
+       0069  Cinergy T XE DVB-T Receiver
+0cd4  Bang Olufsen
+       0101  BeolinkPC2
+0cd7  NewChip S.r.l.
+0cd8  JS Digitech, Inc.
+       2007  Smart Card Reader/JSTU-9700
+0cd9  Hitachi Shin Din Cable, Ltd
+0cde  Z-Com
+       0001  M4Y-750
+       0002  XI-725/726 Prism2.5 802.11b Adapter
+       0003  Sagem 802.11b Dongle
+       0004  Sagem 802.11b Dongle
+       0005  XI-735 Prism3 802.11b Adapter
+       0006  Medion 40900 802.11b Adapter
+       0008  Sitecom Wireless Network Adapter 100G+ WL-125
+       0009  (ZD1211)IEEE 802.11b+g Adapter
+       0011  ZD1211
+       0012  AR5523
+       0013  AR5523 driver (no firmware)
+       0014  NB 802.11g Wireless LAN Adapter(3887A)
+       0015  Zoom Wireless-G
+       0016  NB 802.11g Wireless LAN Adapter(3887A)
+       0018  NB 802.11a/b/g Wireless LAN Adapter(3887A)
+       001a  ZD1211B
+       001c  802.11b/g Wireless Network Adapter
+       0020  Wi-Fi Wireless LAN Adapter
+       0022  802.11b/g/n Wireless Network Adapter
+0ce9  pico Technology
+       1001  PicoScope3204
+0cf1  e-Conn Electronic Co., Ltd
+0cf2  ENE Technology, Inc.
+0cf3  Atheros Communications, Inc.
+       0001  AR5523
+       0002  AR5523 (no firmware)
+       0003  AR5523
+       0004  AR5523 (no firmware)
+       0005  AR5523
+       0006  AR5523 (no firmware)
+0cf4  Fomtex Corp.
+0cf5  Cellink Co., Ltd
+0cf6  Compucable Corp.
+0cf7  ishoni Networks
+0cf8  Clarisys, Inc.
+       0750  Claritel-i750 - vp
+0cf9  Central System Research Co., Ltd
+0cfa  Inviso, Inc.
+0cfc  Minolta-QMS, Inc.
+0cff  SAFA MEDIA Co., Ltd.
+       0320  SR-380N
+0d06  telos EDV Systementwicklung GmbH
+0d08  UTStarcom
+       0602  DV007 [serial]
+       0603  DV007 [storage]
+0d0b  Contemporary Controls
+0d0c  Astron Electronics Co., Ltd
+0d0d  MKNet Corp.
+0d0e  Hybrid Networks, Inc.
+0d0f  Feng Shin Cable Co., Ltd
+0d10  Elastic Networks
+       0001  StormPort (WDM)
+0d11  Maspro Denkoh Corp.
+0d12  Hansol Electronics, Inc.
+0d13  BMF Corp.
+0d14  Array Comm, Inc.
+0d15  OnStream b.v.
+0d16  Hi-Touch Imaging Technologies Co., Ltd
+       0001  PhotoShuttle
+       0002  Photo Printer 730 series
+       0004  Photo Printer 63xPL/PS
+       0100  Photo Printer 63xPL/PS
+       0102  Photo Printer 64xPS
+       0103  Photo Printer 730 series
+       0104  Photo Printer 63xPL/PS
+       0105  Photo Printer 64xPS
+       0200  Photo Printer 64xDL
+0d17  NALTEC, Inc.
+0d18  coaXmedia
+0d19  Hank Connection Industrial Co., Ltd
+0d32  Leo Hui Electric Wire & Cable Co., Ltd
+0d33  AirSpeak, Inc.
+0d34  Rearden Steel Technologies
+0d35  Dah Kun Co., Ltd
+0d3a  Posiflex Technologies, Inc.
+0d3c  Sri Cable Technology, Ltd
+0d3d  Tangtop Technology Co., Ltd
+       0001  HID Keyboard
+0d3e  Fitcom, inc.
+0d3f  MTS Systems Corp.
+0d40  Ascor, Inc.
+0d41  Ta Yun Terminals Industrial Co., Ltd
+0d42  Full Der Co., Ltd
+0d46  Kobil Systems GmbH
+       2012  KAAN Standard Plus (Smartcard reader)
+       3003  mIDentity Light / KAAN SIM III
+       4000  mIDentity (mass storage)
+       4001  mIDentity Basic/Classic (composite device)
+       4081  mIDentity Basic/Classic (installationless)
+0d49  Maxtor
+       3000  Drive
+       3010  3000LE Drive
+       3100  Hi-Speed USB-IDE Bridge Controller
+       5000  5000XT Drive
+       5010  5000LE Drive
+       5020  Mobile Hard Disk Drive
+       7000  OneTouch
+       7010  OneTouch
+0d4a  NF Corp.
+0d4b  Grape Systems, Inc.
+0d4c  Tedas AG
+0d4d  Coherent, Inc.
+0d4e  Agere Systems Netherland BV
+       047a  WLAN Card
+       1000  Wireless Card Model 0801
+       1001  Wireless Card Model 0802
+0d4f  EADS Airbus France
+0d50  Cleware GmbH
+       0011  USB-Temp2 Thermometer
+0d51  Volex (Asia) Pte., Ltd
+0d53  HMI Co., Ltd
+0d54  Holon Corp.
+0d55  ASKA Technologies, Inc.
+0d56  AVLAB Technology, Inc.
+0d57  Solomon Microtech, Ltd
+0d5c  Belkin
+       a002  F5D6050 802.11b Adapter
+0d5e  Myacom, Ltd
+       2346  BT Digital Access adapter
+0d5f  CSI, Inc.
+0d60  IVL Technologies, Ltd
+0d61  Meilu Electronics (Shenzhen) Co., Ltd
+0d62  Darfon Electronics Corp.
+       0003  Smartcard Reader
+       0004  Filter Driver
+       0306  M530 Mouse
+       0800  Magic Wheel
+       2021  AM805 Keyboard
+       2026  TECOM Bluetooth Device
+       a100  Benq Mouse
+0d63  Fritz Gegauf AG
+0d64  DXG Technology Corp.
+       0105  Dual Mode Digital Camera 1.3M
+       0107  Horus MT-409 Camera
+       0108  Dual Mode Digital Camera
+       0202  Dual Mode Video Camera Device
+       0303  DXG-305V Camera
+       1001  SiPix Stylecam/UMAX AstraPix 320s
+       1002  Fashion Cam 01 Dual-Mode DSC (Video Camera)
+       1003  Fashion Cam Dual-Mode DSC (Controller)
+       1021  D-Link DSC 350F
+       1208  Dual Mode Still Camera Device
+       2208  Mass Storage
+       3105  Dual Mode Digital Camera Disk
+       3108  Digicam Mass Storage Device
+0d65  KMJP Co., Ltd
+0d66  TMT
+0d67  Advanet, Inc.
+0d68  Super Link Electronics Co., Ltd
+0d69  NSI
+0d6a  Megapower International Corp.
+0d6b  And-Or Logic
+0d70  Try Computer Co., Ltd
+0d71  Hirakawa Hewtech Corp.
+0d72  Winmate Communication, Inc.
+0d73  Hit's Communications, Inc.
+0d76  MFP Korea, Inc.
+0d77  Power Sentry/Newpoint
+0d78  Japan Distributor Corp.
+0d7a  MARX Datentechnik GmbH
+0d7b  Wellco Technology Co., Ltd
+0d7c  Taiwan Line Tek Electronic Co., Ltd
+0d7d  Phison Electronics Corp.
+       0100  PS1001/1011/1006/1026 Flash Disk
+       0110  Gigabyte FlexDrive
+       0120  Disk Pro 64MB
+       0124  GIGABYTE Disk
+       0240  I/O-Magic/Transcend 6-in-1 Card Reader
+       110e  NEC uPD720121/130 USB-ATA/ATAPI Bridge
+       1240  Apacer 6-in-1 Card Reader 2.0
+       1270  Wolverine SixPac 6000
+       1300  Flash Disk
+       1320  PS2031 Flash Disk
+       1400  Attache 256MB USB 2.0 Flash Drive
+       1420  PS2044 Pen Drive
+       1470  Vosonic X's-Drive II+ VP2160
+       1900  USB Thumb Drive
+0d7e  American Computer & Digital Components
+       2507  Hi-Speed USB-to-IDE Bridge Controller
+       2517  Hi-Speed Mass Storage Device
+       25c7  Hi-Speed USB-to-IDE Bridge Controller
+0d7f  Essential Reality LLC
+0d80  H.R. Silvine Electronics, Inc.
+0d81  TechnoVision
+0d83  Think Outside, Inc.
+0d89  Oz Software
+0d8a  King Jim Co., Ltd
+       0101  TEPRA PRO
+0d8b  Ascom Telecommunications, Ltd
+0d8c  C-Media Electronics, Inc.
+       0001  Audio Device
+       0002  Composite Device
+       0003  Sound Device
+       0006  Storm HP-USB500 5.1 Headset
+       000c  Audio Adapter
+       000d  Composite Device
+       000e  Audio Adapter (Planet UP-100, Genius G-Talk)
+       0102  CM106 Like Sound Device
+       0103  Turtle Beach Audio Advantage Micro
+       0201  CM6501
+       5000  Mass Storage Controller
+       5200  Mass Storage Controller(0D8C,5200)
+       b213  USB Phone CM109 (aka CT2000,VPT1000)
+0d8d  Promotion & Display Technology, Ltd
+       0234  V-234 Composite Device
+       0550  V-550 Composite Device
+       0551  V-551 Composite Device
+       0552  V-552 Composite Device
+       0651  V-651 Composite Device
+       0652  V-652 Composite Device
+       0653  V-653 Composite Device
+       0654  V-654 Composite Device
+       0655  V-655 Composite Device
+       0656  V-656 Composite Device
+       0657  V-657 Composite Device
+       0658  V-658 Composite Device
+       0659  V-659 Composite Device
+       0660  V-660 Composite Device
+       0661  V-661 Composite Device
+       0662  V-662 Composite Device
+       0850  V-850 Composite Device
+       0851  V-851 Composite Device
+       0852  V-852 Composite Device
+       0901  V-901 Composite Device
+       0902  V-902 Composite Device
+       0903  V-903 Composite Device
+       4754  Voyager DMP Composite Device
+       bb00  Bloomberg Composite Device
+       bb01  Bloomberg Composite Device
+       bb02  Bloomberg Composite Device
+       bb03  Bloomberg Composite Device
+       bb04  Bloomberg Composite Device
+       bb05  Bloomberg Composite Device
+       fffe  Global Tuner Composite Device
+       ffff  Voyager DMP Composite Device
+0d8e  Global Sun Technology, Inc.
+       0163  802.11g 54 Mbps Wireless Dongle
+       1621  802.11b Wireless Adapter
+       3762  802.11g Wireless Mini adapter
+       3763  802.11g Wireless dongle
+       7100  802.11b Adapter
+       7110  WL-210
+       7801  AR5523
+       7802  AR5523 (no firmware)
+       7811  AR5523
+       7812  AR5523 (no firmware)
+       7a01  PRISM25 802.11b Adapter
+0d8f  Pitney Bowes
+0d90  Sure-Fire Electrical Corp.
+0d96  Skanhex Technology, Inc.
+       0000  Jenoptik JD350 video
+       3300  SX330z Camera
+       4100  SX410z Camera
+       4102  MD 9700 Camera
+       4104  Jenoptik JD-4100z3s
+       410a  Medion 9801/Novatech SX-410z
+       5200  SX-520z Camera
+0d97  Santa Barbara Instrument Group
+       0001  SBIG Astronomy Camera (without firmware)
+       0101  SBIG Astronomy Camera (with firmware)
+0d98  Mars Semiconductor Corp.
+       0300  Avaya Wireless Card
+0d99  Trazer Technologies, Inc.
+0d9a  RTX Telecom AS
+       0001  Bluetooth Device
+0d9b  Tat Shing Electrical Co.
+0d9c  Chee Chen Hi-Technology Co., Ltd
+0d9d  Sanwa Supply, Inc.
+0d9e  Avaya
+       0300  Wireless Card
+0d9f  Powercom Co., Ltd
+0da0  Danger Research
+0da1  Suzhou Peter's Precise Industrial Co., Ltd
+0da2  Land Instruments International, Ltd
+0da3  Nippon Electro-Sensory Devices Corp.
+0da4  Polar Electro OY
+       0001  Interface
+0da7  IOGear, Inc.
+0da8  softDSP Co., Ltd
+       0001  SDS 200A Oscilloscope
+0dab  Cubig Group
+       0100  DVR/CVR-M140 MP3 Player
+0dad  Westover Scientific
+0db0  Micro Star International
+       1020  PC2PC WLAN Card
+       1967  Bluetooth Dongle
+       4011  Medion Flash XL V2.0 Card Reader
+       4600  802.11b/g Turbo Wireless Adapter
+       5501  Mass Storage Device
+       5502  Mass Storage Device
+       5513  MP3 Player
+       5515  MP3 Player
+       5516  MP3 Player
+       6823  UB11B/MS-6823 802.11b Wi-Fi adapter
+       6826  IEEE 802.11g Wireless Network Adapter
+       6855  Bluetooth Device
+       6861  MSI-6861 802.11g WiFi adapter
+       6865  RT2570
+       6869  RT2570
+       6874  RT2573
+       6877  RT2573
+       6881  Bluetooth Class I EDR Device
+       688a  Bluetooth Class I EDR Device
+       6970  Bluetooth adapter
+       697a  Bluetooth Dongle
+       6982  Medion Flash XL Card Reader
+       a861  RT2573
+       a874  RT2573
+       a970  Bluetooth dongle
+       a97a  Bluetooth EDR Device
+       b970  Bluetooth EDR Device
+       b97a  Bluetooth EDR Device
+0db1  Wen Te Electronics Co., Ltd
+0db2  Shian Hwi Plug Parts, Plastic Factory
+0db3  Tekram Technology Co., Ltd
+0db4  Chung Fu Chen Yeh Enterprise Corp.
+0db7  ELCON Systemtechnik
+       0002  Goldpfeil P-LAN
+0dbe  Jiuh Shiuh Precision Industry Co., Ltd
+0dbf  Quik Tech Solutions
+       0002  SmartDongle Security Key
+       0200  HDD Storage Solution
+       021b  USB-2.0 IDE Adapter
+       0300  Storage Adapter
+       0333  Storage Adapter
+       0707  ZIV Drive
+0dc0  Great Notions
+0dc1  Tamagawa Seiki Co., Ltd
+0dc3  Athena Smartcard Solutions, Inc.
+       0801  ASEDrive III
+       0802  ASEDrive IIIe
+       1104  ASEDrive IIIe KB
+       1701  ASEKey
+       1702  ASEKey
+0dc4  Macpower Peripherals, Ltd
+       0040  Mass Storage Device
+       0041  Mass Storage Device
+       0042  Mass Storage Device
+       0101  Hi-Speed Mass Storage Device
+0dc5  SDK Co., Ltd
+0dc6  Precision Squared Technology Corp.
+0dc7  First Cable Line, Inc.
+0dcd  NetworkFab Corp.
+       0001  Remote Interface Adapter
+       0002  High Bandwidth Codec
+0dd0  Access Solutions
+       1002  Triple Talk Speech Synthesizer
+0dd1  Contek Electronics Co., Ltd
+0dd2  Power Quotient International Co., Ltd
+       0003  Mass Storage (P)
+0dd3  MediaQ
+0dd4  Custom Engineering SPA
+0dd5  California Micro Devices
+0dd7  Kocom Co., Ltd
+0dd8  Netac Technology Co., Ltd
+       1060  USB-CF-Card
+       e007  OnlyDisk U222 Pendrive
+0dd9  HighSpeed Surfing
+0dda  Integrated Circuit Solution, Inc.
+       0001  Multi-Card Reader 6in1
+       0002  Multi-Card Reader 7in1
+       0003  Flash Disk
+       0005  Internal Multi-Card Reader 6in1
+       0008  SD single card reader
+       0009  MS single card reader
+       000a  MS+SD Dual Card Reader
+       000b  SM single card reader
+       0101  All-In-One Card Reader
+       0102  All-In-One Card Reader
+       0301  MP3 Player
+       0302  Multi-Card MP3 Player
+       1001  Multi-Flash Disk
+       2001  Multi-Card Reader
+       2002  Q018 default PID
+       2003  Multi-Card Reader
+       2005  Datalux DLX-1611 16in1 Card Reader
+       2006  All-In-One Card Reader
+       2007  USB to ATAPI bridge
+       2008  All-In-One Card Reader
+       2013  SD/MS Combo Card Reader
+       2014  SD/MS Single Card Reader
+       2023  card reader SD/MS DEMO board with ICSI brand name (MaskROM version)
+       2024  card reader SD/MS DEMO board with Generic brand name (MaskROM version)
+       2026  USB2.0 Card Reader
+       2027  USB 2.0 Card Reader
+       2315  UFD MP3 player (model 2)
+       2318  UFD MP3 player (model 1)
+       2321  UFD MP3 player
+0ddb  Tamarack, Inc.
+0ddd  Datelink Technology Co., Ltd
+0dde  Ubicom, Inc.
+0de0  BD Consumer Healthcare
+0dea  UTECH Electronic (D.G.) Co., Ltd.
+0ded  Novasonics
+0dee  Lifetime Memory Products
+       4010  Storage Adapter
+0def  Full Rise Electronic Co., Ltd
+0df6  Sitecom Europe B.V.
+       0001  C-Media VOIP Device
+       0004  Bluetooth 2.0 Adapter 100m
+       0007  Bluetooth 2.0 Adapter 10m
+       000b  Bluetooth 2.0.USB Adapter DFU
+       000d  WL-168 Wireless Network Adapter 54g
+       0017  WL-182
+       0019  Bluetooth 2.0 adapter 10m CN-512v2 001
+       001a  Bluetooth 2.0 adapter 100m CN-521v2 001
+       061c  LN-028
+       21f4  44 St Bluetooth Device
+       2200  Sitecom bluetooth2.0 class 2 dongle CN-512
+       2208  Sitecom bluetooth2.0 class 2 dongle CN-520
+       2209  Sitecom bluetooth2.0 class 1 dongle CN-521
+       9071  zd1211 802.11g Adapter
+       9075  ZD1211B
+       90ac  WL-172
+       9712  WL-113 rev 2
+0df7  Mobile Action Technology, Inc.
+       0620  MA-620 Infrared Adapter
+       0700  MA-700 Bluetooth Adapter
+       0720  MA-720 Bluetooth Adapter
+       0722  Bluetooth Dongle
+       0800  Data Cable
+       0820  Data Cable
+       1800  Generic Card Reader
+       1802  Card Reader
+0dfa  Toyo Communication Equipment Co., Ltd
+0dfc  GeneralTouch Technology Co., Ltd
+       0001  Touchscreen
+0e03  Nippon Systemware Co., Ltd
+0e08  Winbest Technology Co., Ltd
+0e0c  Gesytec
+       0101  LonUSB LonTalk Network Adapter
+0e16  JMTek, LLC
+0e17  Walex Electronic, Ltd
+0e1b  Crewave
+0e21  Cowon Systems, Inc.
+       0300  iAudio CW200
+       0400  MP3 Player
+       0510  iAudio X5
+       0513  iAudio X5, side USB port
+       0520  iAudio M5
+       0700  iAudio U3
+0e22  Symbian Ltd.
+0e23  Liou Yuane Enterprise Co., Ltd
+0e25  VinChip Systems, Inc.
+0e26  J-Phone East Co., Ltd
+0e30  HeartMath LLC
+0e34  Micro Computer Control Corp.
+0e35  3Pea Technologies, Inc.
+0e36  TiePie engineering
+       0008  Handyscope HS3
+       0009  Handyscope HS3 (br)
+       000a  Handyscope HS4
+       000b  Handyscope HS4 (br)
+       000e  Handyscope HS4 Diff
+       000f  Handyscope HS4 Diff (br)
+       0010  Handyscope HS2
+       0018  Handyprobe HP2
+       0042  TiePieSCOPE HS801
+       00fd  USB To Parallel adapter
+       00fe  USB To Parallel adapter
+0e38  Stratitec, Inc.
+0e39  Smart Modular Technologies, Inc.
+       0137  Bluetooth Device
+0e3a  Neostar Technology Co., Ltd
+       1100  CW-1100 Wireless Network Adapter
+0e3b  Mansella, Ltd
+0e41  Line6, Inc.
+       4250  BassPODxt
+       4252  BassPODxt Pro
+       4642  BassPODxt Live
+       4650  PODxt Live
+       4750  GuitarPort
+       5044  PODxt
+       5050  PODxt Pro
+       534d  SeaMonkey
+0e44  Sun-Riseful Technology Co., Ltd.
+0e48  Julia Corp., Ltd
+       0100  CardPro SmartCard Reader
+0e4a  Shenzhen Bao Hing Electric Wire & Cable Mfr. Co.
+0e4c  Radica Games, Ltd
+0e55  Speed Dragon Multimedia, Ltd
+       110b  MS3303H USB-to-Serial Bridge
+0e56  Kingston Technology Company, Inc.
+       6021  K-PEX 100
+0e5a  Active Co., Ltd
+0e5b  Union Power Information Industrial Co., Ltd
+0e5c  Bitland Information Technology Co., Ltd
+       6118  LCD Device
+       6119  remote receive and control device
+       6441  C-Media Sound Device
+0e5d  Neltron Industrial Co., Ltd
+0e66  Hawking
+       400b  UF100 10/100 Network Adapter
+       400c  UF100 Ethernet [pegasus2]
+0e67  Fossil, Inc.
+       0002  Wrist PDA
+0e6a  Megawin Technology Co., Ltd
+0e70  Tokyo Electronic Industry Co., Ltd
+0e72  Hsi-Chin Electronics Co., Ltd
+0e75  TVS Electronics, Ltd
+0e79  Archos, Inc.
+       1106  Pocket Medai Assistant - PMA400
+0e7b  On-Tech Industry Co., Ltd
+0e7e  Gmate, Inc.
+       0001  Yopy 3000 PDA
+       1001  YP3X00 PDA
+0e82  Ching Tai Electric Wire & Cable Co., Ltd
+0e83  Shin An Wire & Cable Co.
+0e8c  Well Force Electronic Co., Ltd
+0e8d  MediaTek Inc.
+0e8f  GreenAsia Inc.
+       0012  Joystick
+0e90  WiebeTech, LLC
+       0100  Storage Adapter V1
+0e91  VTech Engineering Canada, Ltd
+0e92  C's Glory Enterprise Co., Ltd
+0e93  eM Technics Co., Ltd
+0e95  Future Technology Co., Ltd
+0e96  Aplux Communications, Ltd
+       c001  TRUST 380 USB2 SPACEC@M
+0e97  Fingerworks, Inc.
+0e98  Advanced Analogic Technologies, Inc.
+0e99  Parallel Dice Co., Ltd
+0e9a  TA HSING Industries, Ltd
+0e9b  ADTEC Corp.
+0e9c  Streamzap, Inc.
+       0000  Streamzap Remote Control
+0e9f  Tamura Corp.
+0ea0  Ours Technology, Inc.
+       2126  7-in-1 Card Reader
+       2168  Transcend JetFlash 2.0 / Astone USB Drive
+       6803  OTI-6803 Flash Disk
+       6808  OTI-6808 Flash Disk
+       6828  OTI-6828 Flash Disk
+0ea6  Nihon Computer Co., Ltd
+0ea7  MSL Enterprises Corp.
+0ea8  CenDyne, Inc.
+0ead  Humax Co., Ltd
+0eb0  NovaTech
+       9020  NovaTech NV-902W
+       9021  RT2573
+0eb1  WIS Technologies, Inc.
+       6666  WinFast WalkieTV TV Loader
+       6668  WinFast WalkieTV TV Loader
+       7007  WinFast WalkieTV WDM Capture
+0eb2  Y-S Electronic Co., Ltd
+0eb3  Saint Technology Corp.
+0eb7  Endor AG
+0ebe  VWeb Corp.
+0ebf  Omega Technology of Taiwan, Inc.
+0ec0  LHI Technology (China) Co., Ltd
+0ec1  Abit Computer Corp.
+0ec2  Sweetray Industrial, Ltd
+0ec3  Axell Co., Ltd
+0ec4  Ballracing Developments, Ltd
+0ec5  GT Information System Co., Ltd
+0ec6  InnoVISION Multimedia, Ltd
+0ec7  Theta Link Corp.
+       1008  So., Show 301 Digital Camera
+0ecd  Lite-On IT Corp.
+       1400  CD\RW 40X
+0ece  TaiSol Electronics Co., Ltd
+0ecf  Phogenix Imaging, LLC
+0ed1  WinMaxGroup
+       6660  USB Flash Disk 64M-C
+       6680  USB Flash Disk 64M-B
+       7634  MP3 Player
+0ed2  Kyoto Micro Computer Co., Ltd
+0ed3  Wing-Tech Enterprise Co., Ltd
+0ed5  Fiberbyte
+       e000  USB-inSync Device
+       f000  Fiberbyte USB-inSync Device
+       f201  Fiberbyte USB-inSync DAQ-2500X
+0eda  Noriake Itron Corp.
+0edf  e-MDT Co., Ltd
+       2060  FID irock! 100 Series
+0ee0  Shima Seiki Mfg., Ltd
+0ee1  Sarotech Co., Ltd
+0ee2  AMI Semiconductor, Inc.
+0ee3  ComTrue Technology Corp.
+       1000  Image Tank 1.5
+0ee4  Sunrich Technology, Ltd
+0eee  Digital Stream Technology, Inc.
+       8810  Mass Storage Drive
+0eef  D-WAV Scientific Co., Ltd
+       0001  eGalax TouchScreen
+       0002  Touchscreen Controller(Professional)
+0ef0  Hitachi Cable, Ltd
+0ef1  Aichi Micro Intelligent Corp.
+0ef2  I/O Magic Corp.
+0ef3  Lynn Products, Inc.
+0ef4  DSI Datotech
+0ef5  PointChips
+       2202  Flash Disk
+       2366  Flash Disk
+0ef6  Yield Microelectronics Corp.
+0ef7  SM Tech Co., Ltd (Tulip)
+0efd  Oasis Semiconductor
+0efe  Wem Technology, Inc.
+0f06  Visual Frontier Enterprise Co., Ltd
+0f08  CSL Wire & Plug (Shen Zhen) Co.
+0f0c  CAS Corp.
+0f0d  Hori Co., Ltd
+0f0e  Energy Full Corp.
+0f12  Mars Engineering Corp.
+0f13  Acetek Technology Co., Ltd
+0f19  Oracom Co., Ltd
+0f1b  Onset Computer Corp.
+0f1c  Funai Electric Co., Ltd
+0f1d  Iwill Corp.
+0f21  IOI Technology Corp.
+0f22  Senior Industries, Inc.
+0f23  Leader Tech Manufacturer Co., Ltd
+0f24  Flex-P Industries, Snd., Bhd.
+0f2d  ViPower, Inc.
+0f2e  Geniality Maple Technology Co., Ltd
+0f2f  Priva Design Services
+0f30  Jess Technology Co., Ltd
+       001c  PS3 Guitar Controller Dongle
+       0110  10-Button Joypad
+0f31  Chrysalis Development
+0f32  YFC-BonEagle Electric Co., Ltd
+0f37  Kokuyo Co., Ltd
+0f38  Nien-Yi Industrial Corp.
+0f3d  Airprime, Incorporated
+       0112  CDMA 1xEVDO PC Card, PC 5220
+0f41  RDC Semiconductor Co., Ltd
+0f42  Nital Consulting Services, Inc.
+0f44  Polhemus
+       ef11  Patriot (firmware not loaded)
+       ef12  Patriot
+       ff11  Liberty (firmware not loaded)
+       ff12  Liberty
+0f4b  St. John Technology Co., Ltd
+0f4c  WorldWide Cable Opto Corp.
+0f4d  Microtune, Inc.
+       1000  Bluetooth Dongle
+0f4e  Freedom Scientific
+0f52  Wing Key Electrical Co., Ltd
+0f53  Dongguan White Horse Cable Factory, Ltd
+0f54  Kawai Musical Instruments Mfg. Co., Ltd
+0f55  AmbiCom, Inc.
+0f5c  Prairiecomm, Inc.
+0f5d  NewAge International, LLC
+       9455  Compact Drive
+0f5f  Key Technology Corp.
+0f60  NTK, Ltd
+0f61  Varian, Inc.
+0f62  Acrox Technologies Co., Ltd
+       1001  Targus Mini Trackball Optical Mouse
+0f68  Kobe Steel, Ltd
+0f69  Dionex Corp.
+0f6a  Vibren Technologies, Inc.
+0f6e  INTELLIGENT SYSTEMS
+       0100  GameBoy Color Emulator
+       0201  GameBoy Advance Flash Gang Writer
+       0202  GameBoy Advance Capture
+       0300  Gamecube DOL Viewer
+       0400  NDS Emulator
+       0401  NDS UIC
+       0402  NDS Writer
+       0403  NDS Capture
+       0404  NDS Emulator (Lite)
+0f73  DFI
+0f7c  DQ Technology, Inc.
+0f7d  NetBotz, Inc.
+0f7e  Fluke Corp.
+0f88  VTech Holdings, Ltd
+       3012  RT2570
+       3014  ZD1211B
+0f8b  Yazaki Corp.
+0f8c  Young Generation International Corp.
+0f8d  Uniwill Computer Corp.
+0f8e  Kingnet Technology Co., Ltd
+0f8f  Soma Networks
+0f97  CviLux Corp.
+0f98  CyberBank Corp.
+0f9c  Hyun Won, Inc.
+       0301  M-Any Premium DAH-610 MP3/WMA Player
+       0332  mobiBLU DAH-1200 MP3/Ogg Player
+0f9e  Lucent Technologies
+0fa3  Starconn Electronic Co., Ltd
+0fa4  ATL Technology
+0fa5  Sotec Co., Ltd
+0fa7  Epox Computer Co., Ltd
+0fa8  Logic Controls, Inc.
+0faf  Winpoint Electronic Corp.
+0fb0  Haurtian Wire & Cable Co., Ltd
+0fb1  Inclose Design, Inc.
+0fb2  Juan-Chern Industrial Co., Ltd
+0fb8  Wistron Corp.
+       0002  eHome Infrared Receiver
+0fb9  AACom Corp.
+0fba  San Shing Electronics Co., Ltd
+0fbb  Bitwise Systems, Inc.
+0fc1  Mitac Internatinal Corp.
+0fc2  Plug and Jack Industrial, Inc.
+0fc5  Delcom Engineering
+       1222  I/O Development Board
+0fc6  Dataplus Supplies, Inc.
+0fca  Research In Motion, Ltd.
+       0001  Blackberry Handheld
+0fce  Sony Ericsson Mobile Communications AB
+       1010  WMC Modem
+       d008  V800-Vodafone 802SE WMC Modem
+       d016  K750i Phone
+       d017  K608i Phone
+       d019  VDC EGPRS Modem
+       d025  520 WMC Data Modem
+       d038  W850i Phone
+       d041  K510i Phone
+       d042  W810i Phone
+       d046  K610i Phone
+0fcf  Dynastream Innovations, Inc.
+0fd0  Tulip Computers B.V.
+0fd1  Giant Electronics Ltd.
+0fd4  Tenovis GmbH & Co., KG
+0fd5  Direct Access Technology, Inc.
+0fdc  Micro Plus
+0fe4  IN-Tech Electronics, Ltd
+0fe5  Greenconn (U.S.A.), Inc.
+0fe9  DVICO
+       db00  FusionHDTV DVB-T (MT352+LgZ201) (uninitialized)
+       db01  FusionHDTV DVB-T (MT352+LgZ201) (initialized)
+       db10  FusionHDTV DVB-T (MT352+Thomson7579) (uninitialized)
+       db11  FusionHDTV DVB-T (MT352+Thomson7579) (initialized)
+0fea  United Computer Accessories
+0feb  CRS Electronic Co., Ltd
+0fec  UMC Electronics Co., Ltd
+0fed  Access Co., Ltd
+0fee  Xsido Corp.
+0fef  MJ Research, Inc.
+0ff6  Core Valley Co., Ltd
+0ff7  CHI SHING Computer Accessories Co., Ltd
+0fff  Aopen, Inc.
+1000  Speed Tech Corp.
+1001  Ritronics Components (S) Pte., Ltd
+1003  Sigma Corp.
+       0100  Sigma SD10
+1004  LG Electronics, Inc.
+       1fae  U8120 3G Cellphone
+       6000  VX4400/VX6000 Cellphone
+       6005  T5100
+       6800  CDMA Modem
+       7000  LG LDP-7024D(LD)USB
+1005  Apacer Technology, Inc.
+       1001  MP3 Player
+       1004  MP3 Player
+       1006  MP3 Player
+       b113  Handy Steno 2.0/HT203
+       b223  CD-RW + 6 in 1 Card Reader Digital Storage / Converter
+1006  iRiver, Ltd.
+       3001  iHP-100
+       3002  iHP-120/140 MP3 Player
+       3003  H320/H340
+       3004  H340 (mtp)
+1009  Emuzed, Inc.
+       000e  eHome Infrared Receiver
+       0013  Angel MPEG Device
+       0015  Lumanate Wave PAL SECAM DVBT Device
+       0016  Lumanate Wave NTSC/ATSC Combo Device
+100a  AV Chaseway, Ltd
+       2402  MP3 Player
+       2404  MP3 Player
+       2405  MP3 Player
+       2406  MP3 Player
+       a0c0  MP3 Player
+100b  Chou Chin Industrial Co., Ltd
+100d  Netopia, Inc.
+       3342  Cayman 3352 DSL Modem
+       3382  3380 Series Network Interface
+       cb01  Cayman 3341 Ethernet DSL Router
+1010  Fukuda Denshi Co., Ltd
+1011  Mobile Media Tech.
+       0001  AccFast Mp3
+1012  SDKM Fibres, Wires & Cables Berhad
+1013  TST-Touchless Sensor Technology AG
+1014  Densitron Technologies PLC
+1015  Softronics Pty., Ltd
+1016  Xiamen Hung's Enterprise Co., Ltd
+1017  Speedy Industrial Supplies, Pte., Ltd
+1019  Elitegroup Computer Systems (ECS)
+       0c55  USB Flash Reader, Desknote UCR-61S2B
+1020  Labtec
+       000a  Wireless Optical Mouse
+1022  Shinko Shoji Co., Ltd
+1025  Hyper-Paltek
+       005e  USB DVB-T device
+       005f  USB DVB-T device
+       0300  MP3 Player
+       0350  MP3 Player
+1026  Newly Corp.
+1027  Time Domain
+1028  Inovys Corp.
+1029  Atlantic Coast Telesys
+102a  Ramos Technology Co., Ltd
+102b  Infotronic America, Inc.
+102c  Etoms Electronics Corp.
+       6251  Q-Cam
+102d  Winic Corp.
+1031  Comax Technology, Inc.
+1032  C-One Technology Corp.
+1033  Nucam Corp.
+       0068  3,5'' HDD case MD-231
+1038  Ideazon, Inc.
+       0100  Zboard
+1039  devolo AG
+       2140  dsl+ 1100 duo
+103d  Stanton
+       0100  ScratchAmp
+       0101  ScratchAmp
+1043  iCreate Technologies Corp.
+       160f  Wireless Network Adapter
+       4901  AV-836 Video Capture Device
+       8006  Flash Disk 32-256 MB
+1044  Chu Yuen Enterprise Co., Ltd
+       7001  U7000 TV tuner device
+       8001  GN-54G
+       8002  GN-BR402W
+       8003  GN-WLBM101
+       8004  GN-WLBZ101 802.11b Adapter
+       8005  GN-WLBZ201 802.11b Adapter
+       8006  GN-WBZB-M 802.11b Adapter
+       8007  GN-WBKG
+       8008  GN-WB01GS
+       800a  GN-WI05GS
+       800b  GN-WB30N 802.11n WLAN Card
+1046  Winbond Electronics Corp. [hex]
+       8901  Bluetooth Device
+       9967  W9967CF/W9968CF WebCam IC
+1048  Targus Group International
+104c  AMCO TEC International, Inc.
+1053  Immanuel Electronics Co., Ltd
+1054  BMS International Beheer N.V.
+       5004  DSL 7420 Loader
+       5005  DSL 7420 LAN Modem
+1055  Complex Micro Interconnection Co., Ltd
+1056  Hsin Chen Ent Co., Ltd
+1057  ON Semiconductor
+1058  Western Digital Technologies, Inc.
+       0200  Firewire USB Combo
+       0400  External HDD
+       0500  hub
+       0702  Passport External HDD
+       0901  MyBook External HDD
+       1001  External Hard Disk
+1059  Giesecke & Devrient GmbH
+       000b  StarSign Bio Token 3.0
+105c  Hong Ji Electric Wire & Cable (Dongguan) Co., Ltd
+105d  Delkin Devices, Inc.
+105e  Valence Semiconductor Design, Ltd
+105f  Chin Shong Enterprise Co., Ltd
+1060  Easthome Industrial Co., Ltd
+1063  Motorola Electronics Taiwan, Ltd [hex]
+       1555  MC141555 Hub
+       4100  SB4100 USB Cable Modem
+1065  CCYU Technology
+       0020  USB-DVR2 Dev Board
+       2136  EasyDisk ED1064
+106a  Loyal Legend, Ltd
+106c  Curitel Communications, Inc.
+       1101  CDMA 2000 1xRTT USB modem (HX-550C)
+       1102  Packet Service
+       1103  Packet Service Diagnostic Serial Port (WDM)
+       1104  Packet Service Diagnostic Serial Port (WDM)
+       1105  Composite Device
+       1106  Packet Service Diagnostic Serial Port (WDM)
+       1301  Composite Device
+       1302  Packet Service Diagnostic Serial Port (WDM)
+       1303  Packet Service
+       1304  Packet Service
+       1401  Composite Device
+       1402  Packet Service
+       1403  Packet Service Diagnostic Serial Port (WDM)
+       1501  Packet Service
+       1502  Packet Service Diagnostic Serial Port (WDM)
+       1503  Packet Service
+       1601  Packet Service
+       1602  Packet Service Diagnostic Serial Port (WDM)
+       1603  Packet Service
+       2101  AudioVox 8900 Cell Phone
+       2102  Packet Service
+       2103  Packet Service Diagnostic Serial Port (WDM)
+       2301  Packet Service
+       2302  Packet Service Diagnostic Serial Port (WDM)
+       2303  Packet Service
+       2401  Packet Service Diagnostic Serial Port (WDM)
+       2402  Packet Service
+       2403  Packet Service Diagnostic Serial Port (WDM)
+       2501  Packet Service
+       2502  Packet Service Diagnostic Serial Port (WDM)
+       2503  Packet Service
+       2601  Packet Service
+       2602  Packet Service Diagnostic Serial Port (WDM)
+       2603  Packet Service
+       3701  Broadband Wireless modem
+       3702  Pantech PX-500
+       3eb4  Packet Service Diagnostic Serial Port (WDM)
+       4101  Packet Service Diagnostic Serial Port (WDM)
+       4102  Packet Service
+       4301  Composite Device
+       4302  Packet Service Diagnostic Serial Port (WDM)
+       4401  Composite Device
+       4402  Packet Service
+       4501  Packet Service
+       4502  Packet Service Diagnostic Serial Port (WDM)
+       4601  Composite Device
+       4602  Packet Service Diagnostic Serial Port (WDM)
+       5101  Packet Service
+       5102  Packet Service Diagnostic Serial Port (WDM)
+       5301  Packet Service Diagnostic Serial Port (WDM)
+       5302  Packet Service
+       5401  Packet Service
+       5402  Packet Service Diagnostic Serial Port (WDM)
+       5501  Packet Service Diagnostic Serial Port (WDM)
+       5502  Packet Service
+       5601  Packet Service Diagnostic Serial Port (WDM)
+       5602  Packet Service
+       7101  Composite Device
+       7102  Packet Service
+       a000  Packet Service
+       a001  Packet Service Diagnostic Serial Port (WDM)
+       c100  Packet Service
+       c200  Packet Service
+       c500  Packet Service Diagnostic Serial Port (WDM)
+       e200  Packet Service
+106d  San Chieh Manufacturing, Ltd
+106e  ConectL
+106f  Money Controls
+1076  GCT Semiconductor, Inc.
+       0031  Bluetooth Device
+       0032  Bluetooth Device
+107d  Arlec Australia, Ltd
+107e  Midoriya Electric Co., Ltd
+107f  KidzMouse, Inc.
+1082  Shin-Etsukaken Co., Ltd
+1083  Canon Electronics, Inc.
+1084  Pantech Co., Ltd
+108a  Chloride Power Protection
+108b  Grand-tek Technology Co., Ltd
+108c  Robert Bosch GmbH
+108e  Lotes Co., Ltd.
+1099  Surface Optics Corp.
+109a  DATASOFT Systems GmbH
+109f  eSOL Co., Ltd
+       3163  Trigem Mobile SmartDisplay84
+       3164  Trigem Mobile SmartDisplay121
+10a0  Hirotech, Inc.
+10a3  Mitsubishi Materials Corp.
+10a9  SK Teletech Co., Ltd
+10aa  Cables To Go
+10ab  USI Co., Ltd
+       1002  Bluetooth Device
+       1003  BC02-EXT in DFU
+       1005  Bluetooth Adptr
+       1006  BC04-EXT in DFU
+       10c5  Sony-Ericsson / Samsung DataCable
+10ac  Honeywell, Inc.
+10ae  Princeton Technology Corp.
+10af  Liebert Corp.
+       0000  UPS
+       0001  PowerSure PSA UPS
+       0002  PowerSure PST UPS
+       0003  PowerSure PSP UPS
+       0004  PowerSure PSI UPS
+       0005  UPStation GXT 2U UPS
+       0006  UPStation GXT UPS
+       0007  Nfinity Power Systems UPS
+       0008  PowerSure Interactive UPS
+10b5  Comodo (PLX?)
+       9060  Test Board
+10b8  DiBcom
+       0bb8  DiBcom USB DVB-T reference design (MOD300) (cold)
+       0bb9  DiBcom USB DVB-T reference design (MOD300) (warm)
+       0bc6  DiBcom USB2.0 DVB-T reference design (MOD3000P) (cold)
+       0bc7  DiBcom USB2.0 DVB-T reference design (MOD3000P) (warm)
+10bb  TM Technology, Inc.
+10bc  Dinging Technology Co., Ltd
+10bd  TMT Technology, Inc.
+       1427  Ethernet
+10bf  SmartHome
+       0001  SmartHome PowerLinc
+10c4  Cygnal Integrated Products, Inc.
+       0002  F32x USBXpress Device
+       80a9  CP210x to UART Bridge Controller
+       80ca  ATM2400 Sensor Device
+       ea60  CP210x Composite Device
+10c5  Sanei Electric, Inc.
+10c6  Intec, Inc.
+10cb  Eratech
+10cc  GBM Connector Co., Ltd
+       1101  MP3 Player
+10cd  Kycon, Inc.
+10ce  Silicon Labs
+       ea6a  MobiData EDGE USB Modem
+10cf  Velleman Components, Inc.
+       5500  8055 Experiment Interface Board (address=0)
+       5501  8055 Experiment Interface Board (address=1)
+       5502  8055 Experiment Interface Board (address=2)
+       5503  8055 Experiment Interface Board (address=3)
+10d1  Hottinger Baldwin Measurement
+       0101  USB-Module for Spider8, CP32
+       0202  CP22 - Communication Processor
+       0301  CP42 - Communication Processor
+10d4  Man Boon Manufactory, Ltd
+10d5  Uni Class Technology Co., Ltd
+10d6  Actions Semiconductor Co., Ltd
+       1000  MP3 Player
+       1100  MPMan MP-Ki 128 MP3 Player/Recorder
+       1101  D-Wave 2GB MP4 Player
+       8888  ADFU Device
+       ff51  ADFU Device
+10de  Authenex, Inc.
+10df  In-Win Development, Inc.
+10e0  Post-Op Video, Inc.
+10e1  CablePlus, Ltd
+10e2  Nada Electronics, Ltd
+10ec  Vast Technologies, Inc.
+10f5  Turtle Beach
+       0200  Audio Advantage Roadie
+10fb  Pictos Technologies, Inc.
+10fd  Anubis Electronics, Ltd
+       804d  Typhoon Webshot II Webcam [zc0301]
+       8050  FlyCAM-USB 300 XP2
+       de00  WinFast WalkieTV WDM Capture Driver.
+1100  VirTouch, Ltd
+       0001  VTPlayer VTP-1 Braille Mouse
+1101  EasyPass Industrial Co., Ltd
+       0001  FSK Electronics Super GSM Reader
+1108  Brightcom Technologies, Ltd
+1110  Analog Devices Canada, Ltd (Allied Telesyn)
+       5c01  Huawei MT-882 Remote NDIS Network Device
+       6489  ADSL ETH/USB RTR
+       9000  ADSL LAN Adapter
+       9001  ADSL Loader
+       900f  AT-AR215 DSL Modem
+       9010  AT-AR215 DSL Modem
+       9021  ADSL WAN Adapter
+       9022  ADSL Loader
+       9023  ADSL WAN Adapter
+       9024  ADSL Loader
+       9031  ADSL LAN Adapter
+       9032  ADSL Loader
+1111  Pandora International Ltd.
+       8888  Evolution Device
+1112  YM ELECTRIC CO., Ltd
+1113  Medion AG
+111e  VSO Electric Co., Ltd
+112e  Master Hill Electric Wire and Cable Co., Ltd
+112f  Cellon International, Inc.
+1130  Tenx Technology, Inc.
+       f211  USB audio headset
+1131  Integrated System Solution Corp.
+       1001  KY-BT100 Bluetooth Adapter
+       1002  Bluetooth Device
+       1003  Bluetooth Device
+       1004  Bluetooth Device
+1132  Toshiba Corp., Digital Media Equipment [hex]
+       4331  PDR-M4/M5/M70 Digital Camera
+       4332  PDR-M60 Digital Camera
+       4333  PDR-M2300/PDR-M700
+       4334  PDR-M65
+       4335  PDR-M61
+       4337  PDR-M11
+       4338  PDR-M25
+113c  Arin Tech Co., Ltd
+113d  Mapower Electronics Co., Ltd
+1141  V One Multimedia, Pte., Ltd
+1142  CyberScan Technologies, Inc.
+1145  Japan Radio Company
+       0001  AirH PHONE AH-J3001V/J3002V
+1146  Shimane SANYO Electric Co., Ltd.
+1147  Ever Great Electric Wire and Cable Co., Ltd
+114b  Sphairon Access Systems GmbH
+       0110  Turbolink UB801R WLAN USB Adapter
+114c  Tinius Olsen Testing Machine Co., Inc.
+114d  Alpha Imaging Technology Corp.
+115b  Salix Technology Co., Ltd.
+1162  Secugen Corp.
+1163  DeLorme Publishing, Inc.
+       0100  Earthmate GPS
+1164  YUAN High-Tech Development Co., Ltd
+       0300  ELSAVISION 460D
+       0601  Analog TV Tuner
+       0900  TigerBird BMP837 USB2.0 WDM Encoder
+       0bc7  Digital TV Tuner
+1165  Telson Electronics Co., Ltd
+1166  Bantam Interactive Technologies
+1167  Salient Systems Corp.
+1168  BizConn International Corp.
+116e  Gigastorage Corp.
+116f  Silicon 10 Technology Corp.
+1175  Shengyih Steel Mold Co., Ltd
+117d  Santa Electronic, Inc.
+117e  JNC, Inc.
+1182  Venture Corp., Ltd
+1183  Compaq Computer Corp. [hex] (Digital Dream ??)
+       0001  DigitalDream l'espion XS
+       19c7  ISDN TA
+       4008  56k FaxModem
+       504a  PJB-100 Personal Jukebox
+1184  Kyocera Elco Corp.
+1188  Bloomberg L.P.
+1189  Acer Communications & Multimedia
+       0893  EP-1427X-2 Ethernet Adapter
+118f  You Yang Technology Co., Ltd
+1190  Tripace
+1191  Loyalty Founder Enterprise Co., Ltd
+1196  Yankee Robotics, LLC
+       0010  Trifid Camera without code
+       0011  Trifid Camera
+1197  Technoimagia Co., Ltd
+1198  StarShine Technology Corp.
+1199  Sierra Wireless, Inc.
+       0019  AC595U
+       0021  AC597E
+       0110  Composite Device
+       0112  CDMA 1xEVDO PC Card, AirCard 580
+       0120  AC595U
+       0218  MC5720 Wireless Modem
+       6467  MP Series Network Adapter
+       6468  MP Series Network Adapter
+       6469  MP Series Network Adapter
+       6802  MC8755 Device
+       6803  MC8765 Device
+       6804  MC8755 Device
+       6805  MC8765 Device
+       6812  MC8775 Device
+       6820  AC875 Device
+       6832  MC8780 Device
+       6833  MC8781 Device
+       683a  MC8785 Device
+       6850  AirCard 880 Device
+       6851  AirCard 881 Device
+       6852  AirCard 880E Device
+       6853  AirCard 881E Device
+       6854  AirCard 885 Device
+       6870  MC8780 Device
+       6871  MC8781 Device
+119a  ZHAN QI Technology Co., Ltd
+119b  ruwido austria GmbH
+       0400  Infrared Keyboard V2.01
+11a0  Chipcon AS
+       eb11  CC2400EB 2.0 ZigBee Sniffer
+11a3  Technovas Co., Ltd
+       8031  MP3 Player
+       8032  MP3 Player
+11aa  GlobalMedia Group, LLC
+       1518  iREZ K2
+11ab  Exito Electronics Co., Ltd
+11b0  ATECH FLASH TECHNOLOGY
+11db  Topfield Co., Ltd.
+       1000  PVR
+       1100  PVR
+11e6  K.I. Technology Co. Ltd.
+11f5  Siemens AG (?)
+       0001  SX1
+       0003  Mobile phone USB cable
+       0004  X75
+11f6  Prolific
+       2001  Willcom WSIM
+11f7  Alcatel (?)
+       02df  TD10 Mobile phone USB cable
+1209  InterBiometrics
+       1001  USB Hub
+       1002  USB Relais
+       1003  IBSecureCam-P
+       1004  IBSecureCam-O
+       1005  IBSecureCam-N
+120e  Hudson Soft Co., Ltd
+121e  Jungsoft Co., Ltd
+       3403  Muzio JM250 Audio Player
+1223  SKYCABLE ENTERPRISE. CO., LTD.
+1230  Chipidea-Microelectronica, S.A.
+1235  Novation EMS
+       0001  ReMOTE Audio/XStation
+       0002  Speedio
+       4661  ReMOTE25
+1241  Belkin
+       1111  Mouse
+       1122  Typhoon Stream Optical Mouse USB+PS/2
+       1155  PS2/USB Browser Combo Mouse
+       1166  MI-2150 Trust Mouse
+       1177  F8E842-DL Mouse
+       1503  Keyboard
+124a  AirVast
+       4017  PC-Chips 802.11b Adapter
+124b  Nyko (Honey Bee)
+       4d01  Airflo EX Joystick
+125f  A-DATA Technology Co., Ltd.
+1264  Covidien Energy-based Devices
+1267  Logic3 / SpectraVideo plc
+       0103  G-720 Keyboard
+       0201  A4Tech SWOP-3 Mouse
+       a001  JP260 PC Game Pad
+       c002  Wireless Optical Mouse
+126c  Aristocrat Technologies
+126d  Bel Stewart
+126e  Strobe Data, Inc.
+126f  TwinMOS
+       1325  Mobile Disk
+       2168  Mobile Disk III
+       a006  G240
+1275  Xaxero Marine Software Engineering, Ltd.
+       0002  WeatherFax 2000 Demodulator
+       0080  SkyEye Weather Satellite Receiver
+1286  Marvell Semiconductor, Inc.
+       8001  BLOB boot loader firmware
+1292  Innomedia
+       0258  Creative Labs VoIP Blaster
+1293  Belkin Components [hex]
+       0002  F5U002 Parallel Port [uss720]
+       2101  104-key keyboard
+1294  RISO KAGAKU CORP.
+129b  CyberTAN Technology
+       1666  TG54USB
+12a7  Trendchip Technologies Corp.
+12ab  Honey Bee Electronic International Ltd.
+12ba  Licensed by Sony Computer Entertainment America
+       0200  Harmonix Guitar for PlayStation(R)3
+       0210  Harmonix Drum Kit for PlayStation(R)3
+12d1  Huawei Technologies Co., Ltd.
+       1001  E620 USB Modem
+       1003  E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
+12d2  LINE TECH INDUSTRIAL CO., LTD.
+12d7  BETTER WIRE FACTORY CO., LTD.
+12ef  Tapwave, Inc.
+       0100  Tapwave Handheld [Tapwave Zodiac]
+12f5  Dynamic System Electronics Corp.
+12f7  Memorex Products, Inc.
+       1a00  TD Classic 003B
+       1e23  TravelDrive 2007 Flash Drive
+12fd  AIN Comm. Technology Co., Ltd
+       1001  AWU2000b 802.11b Stick
+1307  Transcend Information, Inc.
+       0163  512MB USB Flash Drive
+       1169  TS2GJF210 JetFlash 210 2GB
+1310  Roper
+       0001  Class 1 Bluetooth Dongle
+1312  ICS Electronics
+131d  Natural Point
+       0155  TrackIR 3 Pro Head Tracker
+132b  Konica Minolta
+       0000  Dimage A2 Camera
+       0001  Minolta DiMAGE A2 (ptp)
+       0003  Dimage Xg Camera
+       0006  Dimage Z2 Camera
+       0007  Minolta DiMAGE Z2 (PictBridge mode)
+       0008  Dimage X21 Camera
+       000a  Dimage Scan Dual IV
+       000b  Dimage Z10 Camera
+       000d  Dimage X50 Camera [storage?]
+       000f  Dimage X50 Camera [p2p?]
+       0010  Dimage G600 Camera
+       0012  Dimage Scan Elite5400 2
+       0013  Dimage X31 Camera
+       0015  Dimage G530 Camera
+       0017  Dimage Z3 Camera
+       0018  Minolta DiMAGE Z3 (PictBridge mode)
+       0019  Dimage A200 Camera
+       0021  Dimage Z5 Camera
+       0022  Minolta DiMAGE Z5 (PictBridge mode)
+1342  Mobility
+       0200  EasiDock 200 Hub
+       0201  EasiDock 200 Keyboard and Mouse Port
+       0202  EasiDock 200 Serial Port
+       0203  EasiDock 200 Printer Port
+       0204  Ethernet
+       0304  EasiDock Ethernet
+1348  Katsuragawa Electric Co., Ltd.
+134e  Digby's Bitpile, Inc. DBA D Bit
+136b  STEC
+1370  Swissbit
+       6828  Victorinox Flash Drive
+1371  Dick Smith Electronics
+       9022  RT2573
+       9032  C-Net CWD-854 rev F
+1376  Vimtron Electronics Co., Ltd.
+1385  Netgear, Inc
+       4250  WG111T
+       4251  WG111T (no firmware)
+       5f00  WPN111 RangeMax(TM) Wireless USB 2.0 Adapter
+       5f01  WPN111 (no firmware)
+138e  Jungo LTD
+       9000  Raisonance S.A. STM32 ARM evaluation board
+1390  TOMTOM B.V.
+1395  Sennheiser Communications
+       3556  USB Headset
+1398  Q-tec
+       2103  USB 2.0 Storage Device
+13ad  Baltech
+       9999  Card reader
+13b0  PerkinElmer Optoelectronics
+       000a  Alesis Photon X25 MIDI Controller
+13b1  Linksys
+       000b  WUSB11 v4.0 802.11b Adapter
+       000d  WUSB54G Wireless Adapter
+       0011  WUSB54GP v4.0 802.11g Adapter
+       0018  USB200M 10/100 Ethernet Adapter
+       001a  HU200TS Wireless Adapter
+       0020  WUSB54GC 802.11g Adapter [ralink rt73]
+       0023  WUSB54GR
+       0024  WUSBF54G v1.1 802.11g Adapter w/ Wi-Fi Finder
+13b3  Nippon Dics Co., Ltd.
+13be  Ricoh Printing Systems, Ltd.
+13ca  JyeTai Precision Industrial Co., Ltd.
+13cf  Wisair Ltd.
+13d1  A-Max Technology Macao Commercial Offshore Co. Ltd.
+13d2  Shark Multimedia
+       0400  Pocket Ethernet [klsi]
+13d3  IMC Networks
+       3201  VisionDTV USB-Ter/HAMA USB DVB-T device cold
+       3202  VisionDTV USB-Ter/HAMA USB DVB-T device warm
+       3203  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       3204  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       3205  DNTV Live! Tiny USB2 BDA (No Remote)
+       3206  DNTV Live! Tiny USB2 BDA (No Remote)
+       3207  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       3208  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       3209  DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+       3211  DTV-DVB Hybrid Analog/Capture / Pinnacle PCTV 310e
+       3212  DTV-DVB UDTT704C - DVBT/NTSC/PAL Driver(PCM4)
+       3213  DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver (PCM4)
+       3214  DTV-DVB UDTT704F -(MiniCard) DVBT/NTSC/PAL Driver(Without HID)
+       3215  DTV-DVB UDAT7240 - ATSC/NTSC/PAL Driver(PCM4)
+       3216  DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver
+       3217  Digital-TV Receiver.
+       3219  DTV-DVB UDTT7049 - DVB-T Driver(Without HID)
+       3220  DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver
+       3223  DNTV Live! Tiny USB2 BDA (No Remote)
+       3224  DNTV Live! Tiny USB2 BDA (No Remote)
+       3226  DigitalNow TinyTwin DVB-T Receiver
+       3236  DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver
+       3237  DTV-DVB UDTT 704J - dual DVB-T Driver
+       3239  DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver(Without HID)
+       3240  DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+       3241  DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+       3242  DTV-DVB UDAT7240LP - ATSC/NTSC/PAL Driver(Without HID)
+       3243  DTV-DVB UDXTTM6010 - A/D Driver(Without HID)
+       3244  DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver
+       3247  802.11 n/g/b Wireless LAN Adapter
+       7020  DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005)
+       7022  DTV-DVB UDST7022BDA DVB-S Box(Without HID)
+13dc  ALEREON, INC.
+13dd  i.Tech Dynamic Limited
+13e1  Kaibo Wire & Cable (Shenzhen) Co., Ltd.
+13e5  Rane
+       0001  SL-1
+13e6  TechnoScope Co., Ltd.
+13fd  Initio Corporation
+13fe  Kingston Technology Company Inc.
+       1a00  512MB/1GB Flash Drive
+       1a23  512MB Flash Drive
+       1d00  DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive
+       1f00  DataTraveler 2.0 4GB Flash Drive
+1400  Axxion Group Corp.
+1402  Bowe Bell & Howell
+1403  Sitronix
+       0001  Digital Photo Frame
+140e  Telechips, Inc.
+1410  Novatel Wireless
+       1110  Merlin S620
+       1120  Merlin EX720
+       1130  Merlin S720
+       1400  Merlin U740
+       2110  Ovation U720/MCD3000
+       4100  U727
+1415  Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc.
+       0000  Sony SingStar USBMIC
+       2000  Sony Playstation Eye
+1419  ABILITY ENTERPRISE CO., LTD.
+1429  Vega Technologies Industrial (Austria) Co.
+1430  RedOctane
+1431  Pertech Resources, Inc.
+1435  Wistron NeWeb
+       0711  UR055G
+       0826  AR5523
+       0827  AR5523 (no firmware)
+       0828  AR5523
+       0829  AR5523 (no firmware)
+1436  Denali Software, Inc.
+143c  Altek Corporation
+1453  Radio Shack
+       4026  26-183 Serial Cable
+1456  Extending Wire & Cable Co., Ltd.
+1457  First International Computer, Inc.
+       5117  OpenMoko Neo1973 kernel usbnet (g_ether, CDC Ethernet) mode
+       5118  OpenMoko Neo1973 Debug board (V2+)
+       5119  OpenMoko Neo1973 u-boot cdc_acm serial port
+       5120  OpenMoko Neo1973 u-boot usbtty generic serial
+       5121  OpenMoko Neo1973 kernel mass storage (g_storage) mode
+       5122  OpenMoko Neo1973 kernel cdc_ether USB network
+       5123  OpenMoko Neo1973 internal USB CSR4 module
+       5124  OpenMoko Neo1973 Bluetooth Device ID service
+1461  Staccato Communications
+1462  Micro Star International
+       5512  MegaStick-1 Flash Stick
+1472  Huawei-3Com
+       0009  Aolynk WUB320g
+147a  Formosa Industrial Computing, Inc.
+       e015  eHome Infrared Receiver
+       e016  eHome Infrared Receiver
+147f  Hama GmbH & Co., KG
+1484  Elsa AG [hex]
+       1746  Ecomo 19H99 Monitor
+       7616  Elsa Hub
+1485  Silicom
+       0001  U2E
+       0002  Psion Gold Port Ethernet
+1487  DSP Group, Ltd.
+148e  EVATRONIX SA
+148f  Ralink Technology, Corp.
+       1706  RT2500USB Wireless Adapter
+       2570  802.11g WiFi
+       2573  RT2501USB Wireless Adapter
+       2671  RT2601USB Wireless Adapter
+       9020  RT2500USB Wireless Adapter
+       9021  RT2501USB Wireless Adapter
+1497  Panstrong Company Ltd.
+149a  Imagination Technologies
+       2107  DBX1 DSP core
+14aa  AVerMedia (again) or C&E
+       0001  Avermedia AverTV DVBT USB1.1 (cold)
+       0002  Avermedia AverTV DVBT USB1.1 (warm)
+       0201  AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (cold)
+       0221  AVermedia DVBT Tuner Dongle
+       0301  AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (warm)
+14ad  CTK Corporation
+14ae  Printronix Inc.
+14af  ATP Electronics Inc.
+14b0  StarTech.com Ltd.
+14b2  Atheros Communications Inc
+       3a93  USB WLAN Device
+       3c02  C54RU WLAN
+       3c22  C54RU
+14c0  Rockwell Automation, Inc.
+14c2  Gemlight Computer, Ltd
+       0250  Storage Adapter V2
+       0350  Storage Adapter V2
+14cd  Super Top
+       6600  USB 2.0 IDE DEVICE
+14d8  JAMER INDUSTRIES CO., LTD.
+14dd  Raritan Computer, Inc.
+14e5  SAIN Information & Communications Co., Ltd.
+14ea  Planex Communications
+       ab10  GW-US54GZ
+       ab11  GU-1000T
+       ab13  GW-US54Mini
+14ed  Shure Inc.
+1500  Ellisys
+1501  Pine-Tum Enterprise Co., Ltd.
+1513  Hypercom
+1516  CompUSA
+       8628  128M Pen Drive
+1518  Cheshire Engineering Corp.
+       0001  HDReye High Dynamic Range Camera
+       0002  HDReye (before firmware loads)
+1520  Bitwire Corp.
+1524  ENE Technology Inc
+       6680  UTS 6680
+1527  Silicon Portals
+       0200  YAP Phone (no firmware)
+       0201  YAP Phone
+1529  UBIQUAM Co., Ltd.
+       3100  CDMA 1xRTT USB Modem (U-100/105/200/300/520)
+152d  JMicron Technology Corp. / JMicron USA Technology Corp.
+       2338  JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
+152e  LG (HLDS)
+       e001  GSA-5120D DVD-RW
+1532  Razer USA, Ltd
+       0001  RZ01-020300 Optical Mouse [Diamondback]
+       0003  Krait Mouse
+       0007  DeathAdder Mouse
+       0102  Tarantula Keyboard
+1546  U-Blox AG
+154b  PNY
+       0010  USB 2.0 Flash Drive
+154d  ConnectCounty Holdings Berhad
+154e  D&M Holdings, Inc. (Denon/Marantz)
+       3000  Marantz RC9001 Remote Control
+1554  Prolink Microsystems Corp.
+1557  OQO
+       0002  model 01 WiFi interface
+       0003  model 01 Bluetooth interface
+       7720  model 01+ Ethernet
+       8150  model 01 Ethernet interface
+1568  Sunf Pu Technology Co., Ltd
+156f  Quantum Corporation
+1570  ALLTOP TECHNOLOGY CO., LTD.
+157b  Ketron SRL
+157e  TRENDnet
+       3006  TEW-444UB EU
+       3007  TEW-444UB EU (no firmware)
+       300a  TEW-429UB 802.11g Adapter with HotSpot Detector
+       300b  TEW-429UB
+       300d  TEW-429UB C1
+       3204  ALL0298 v2
+       3205  AR5523
+       3206  AR5523 (no firmware)
+1582  Fiberline
+       6003  WL-430U
+1587  SMA Technologie AG
+158d  Oakley Inc.
+1598  Kunshan Guoji Electronics Co., Ltd.
+15a2  Freescale Semiconductor, Inc.
+15a8  Teams Power Limited
+15aa  Gearway Electronics (Dong Guan) Co., Ltd.
+15ba  Olimex Ltd.
+       0003  OpenOCD JTAG
+       0004  OpenOCD JTAG TINY
+15c2  SoundGraph Inc.
+       ffdc  iMON PAD Remote Controller
+15c6  Laboratoires MXM
+       1000  DigistimSP (cold)
+       1001  DigistimSP (warm)
+       1002  DigimapSP USB (cold)
+       1003  DigimapSP USB (warm)
+15c9  D-Box Technologies
+15ca  Textech International Ltd.
+       00c3  Mini Optical Mouse
+15d5  Coulomb Electronics Ltd.
+15dc  Hynix Semiconductor Inc.
+15e0  Seong Ji Industrial Co., Ltd.
+15e1  RSA
+       2007  RSA SecurID (R) Authenticator
+15e8  SohoWare
+       9100  NUB100 Ethernet [pegasus]
+       9110  10/100 USB Ethernet
+15e9  Pacific Digital Corp.
+       04ce  MemoryFrame MF-570
+       1968  MemoryFrame MF-570
+       1969  Digital Frame
+15ec  Belcarra Technologies Corp.
+15f4  HanfTek
+       0001  HanfTek UMT-010 USB2.0 DVB-T (cold)
+       0025  HanfTek UMT-010 USB2.0 DVB-T (warm)
+1604  Tascam
+       8000  US-428 Audio/Midi Controller (without fw)
+       8001  US-428 Audio/Midi Controller
+       8004  US-224 Audio/Midi Controller (without fw)
+       8005  US-224 Audio/Midi Controller
+       8006  US-122 Audio/Midi Interface (without fw)
+       8007  US-122 Audio/Midi Interface
+1606  Umax [hex]
+       0002  Astra 1236U Scanner
+       0010  Astra 1220U
+       0030  Astra 2000U
+       0050  Scanner
+       0060  Astra 3400U
+       0130  Astra 2100U
+       0160  Astra 5400U
+       0230  Astra 2200/2200SU
+       0350  Astra 4800/4850 Scanner
+       1030  Astra 4000U
+       1220  Genesys Logic Scanner Controller NT5.0
+       2010  AstraCam Digital Camera
+       2020  AstraCam 1000
+       2030  AstraCam 1800 Digital Camera
+1608  Inside Out Networks [hex]
+       0001  EdgePort/4 Serial Port
+       0002  Edgeport/8
+       0003  Rapidport/4
+       0004  Edgeport/4
+       0005  Edgeport/2
+       0006  Edgeport/4i
+       0007  Edgeport/2i
+       0008  Edgeport/8
+       000c  Edgeport/421
+       000d  Edgeport/21
+       000e  Edgeport/4
+       000f  Edgeport/8
+       0010  Edgeport/2
+       0011  Edgeport/4
+       0012  Edgeport/416
+       0014  Edgeport/8i
+       0018  Edgeport/412
+       0019  Edgeport/412
+       001a  Edgeport/2+2i
+       0101  Edgeport/4
+       0105  Edgeport/2
+       0106  Edgeport/4i
+       0107  Edgeport/2i
+       010c  Edgeport/421
+       010d  Edgeport/21
+       0110  Edgeport/2
+       0111  Edgeport/4
+       0112  Edgeport/416
+       0114  Edgeport/8i
+       0201  Edgeport/4
+       0203  Rapidport/4
+       0204  Edgeport/4
+       0205  Edgeport/2
+       0206  Edgeport/4i
+       0207  Edgeport/2i
+       020c  Edgeport/421
+       020d  Edgeport/21
+       020e  Edgeport/4
+       020f  Edgeport/8
+       0210  Edgeport/2
+       0211  Edgeport/4
+       0212  Edgeport/416
+       0214  Edgeport/8i
+       0215  Edgeport/1
+       0216  EPOS/44
+       0217  Edgeport/42
+       021a  Edgeport/2+2i
+       021b  Edgeport/2c
+       021c  Edgeport/221c
+       021d  Edgeport/22c
+       021e  Edgeport/21c
+       021f  Edgeport/62
+       0240  Edgeport/1
+       0241  Edgeport/1i
+       0242  Edgeport/4s
+       0243  Edgeport/8s
+       0244  Edgeport/8
+       0245  Edgeport/22c
+       0301  Watchport/P
+       0302  Watchport/M
+       0303  Watchport/W
+       0304  Watchport/T
+       0305  Watchport/H
+       0306  Watchport/E
+       0307  Watchport/L
+       0308  Watchport/R
+       0309  Watchport/A
+       030a  Watchport/D
+       030b  Watchport/D
+       030c  Power Management Port
+       030e  Power Management Port
+       030f  Watchport/G
+       0310  Watchport/Tc
+       0311  Watchport/Hc
+       1403  MultiTech Systems MT4X56 Modem
+       1a17  Agilent Technologies (E6473)
+1619  L & K Precision Technology Co., Ltd.
+1621  Wionics Research
+1628  Stonestreet One, Inc.
+162a  Airgo Networks Inc.
+162f  WiQuest Communications, Inc.
+1631  Good Way Technology
+       6200  GWUSB2E
+       c019  RT2573
+1645  Entrega [hex]
+       0001  1S Serial Port
+       0002  2S Serial Port
+       0003  1S25 Serial Port
+       0004  4S Serial Port
+       0005  E45 Ethernet [klsi]
+       0006  Parallel Port
+       0007  U1-SC25 SCSI
+       0008  Ethernet
+       0016  Bi-directional to Parallel Printer Converter
+       0080  1 port to Serial Converter
+       0081  1 port to Serial Converter
+       0093  1S9 Serial Port
+       8000  EZ-USB
+       8001  1 port to Serial
+       8002  2x Serial Port
+       8003  1 port to Serial
+       8004  2U4S serial/usb hub
+       8005  Ethernet
+       8080  1 port to Serial
+       8081  1 port to Serial
+       8093  PortGear Serial Port
+164a  ChipX
+1657  Struck Innovative Systeme GmbH
+       3150  SIS3150 USB2.0 to VME interface
+1660  Creatix Polymedia GmbH
+1668  Actiontec Electronics, Inc. [hex]
+       0009  Gateway
+       0333  Modem
+       0358  InternetPhoneWizard
+       0405  Gateway
+       0408  Prism2.5 802.11b Adapter
+       0413  Gateway
+       0421  Prism2.5 802.11b Adapter
+       0441  IBM Integrated Bluetooth II
+       0500  BTM200B BlueTooth Adapter
+       1050  802.11g Wireless Mini adapter
+       1441  IBM Integrated Bluetooth II
+       2441  BMDC-2 IBM Bluetooth III w.56k
+       3441  IBM Integrated Bluetooth III
+       6010  Gateway
+       6097  802.11b Wireless Adapter
+       6106  ROPEX FreeLan 802.11b
+       7605  UAT1 Wireless Ethernet Adapter
+1669  PiKRON Ltd. [hex]
+       1001  uLan2USB Converter - PS1 protocol
+1679  Total Phase
+       2001  Beagle USB 12 Protocol Analyzer
+1682  Maxwise Production Enterprise Ltd.
+1684  Godspeed Computer Corp.
+1686  ZOOM Corporation
+       0045  H4 Digital Recorder
+1687  Kingmax Digital Inc.
+168c  Atheros Communications
+       0001  AR5523
+       0002  AR5523 (no firmware)
+1690  Askey Computer Corp. [hex]
+       0101  Creative Modem Blaster DE5670
+       0102  CDC Modem Board
+       0103  Askey 1456 VQE-R3 Modem [conexant]
+       0104  HCF V90 Data Fax RTAD Modem
+       0107  HCF V.90 Data,Fax,RTAD Modem
+       0109  Askey MagicXpress V.90 Pocket Modem [conexant]
+       0203  Voyager ADSL Modem Loader
+       0204  Voyager ADSL Modem
+       0205  DSL Modem
+       0206  GlobeSpan ADSL WAN Modem
+       0208  DSL Modem
+       0209  Voyager 100 ADSL Modem
+       0211  Globespan Virata ADSL LAN Modem
+       0212  DSL Modem
+       0213  HM121d DSL Modem
+       0214  HM121d DSL Modem
+       0215  Voyager 105 ADSL Modem
+       0701  WLAN
+       0710  SMCWUSBT-G
+       0711  SMCWUSBT-G (no firmware)
+       0712  AR5523
+       0713  AR5523 (no firmware)
+       0715  Voyager 1055 Laptop Adapter
+       0722  RT2573
+       0726  Wi-Fi Wireless LAN Adapter
+       0901  Voyager 205 ADSL Router
+1696  Hitachi Video and Information System, Inc.
+1697  VTec Test, Inc.
+16a5  Shenzhen Zhengerya Cable Co., Ltd.
+16ab  Global Sun Technology
+       7801  AR5523
+       7802  AR5523 (no firmware)
+       7811  AR5523
+       7812  AR5523 (no firmware)
+16ac  Dongguan ChingLung Wire & Cable Co., Ltd.
+16c0  VOTI
+       03e8  free for internal lab use 1000
+       03e9  free for internal lab use 1001
+       03ea  free for internal lab use 1002
+       03eb  free for internal lab use 1003
+       03ec  free for internal lab use 1004
+       03ed  free for internal lab use 1005
+       03ee  free for internal lab use 1006
+       03ef  free for internal lab use 1007
+       03f0  free for internal lab use 1008
+       03f1  free for internal lab use 1009
+       076b  OpenPCD 13.56MHz RFID Reader
+       076c  OpenPICC 13.56MHz RFID Simulator (native)
+       08ac  OpenBeacon USB stick
+16cc  silex technology, Inc.
+16d3  Frontline Test Equipment, Inc.
+16d5  AnyDATA Corporation
+       6501  CDMA 2000 1xRTT/EV-DO USB Modem
+16d8  CMOTECH Co., Ltd.
+       5141  CMOTECH CDMA Technologies USB modem
+       5543  CDMA 2000 1xRTT/1xEVDO USB modem
+       6280  CMOTECH CDMA Technologies USB modem
+16df  King Billion Electronics Co., Ltd.
+16f5  Futurelogic Inc.
+1706  BlueView Technologies, Inc.
+1707  ARTIMI
+170b  Swissonic
+       0011  MIDI-USB 1x1
+170d  Avnera
+1733  Cellink Technology Co., Ltd
+       0101  RF Wireless Optical Mouse OP-701
+1736  CANON IMAGING SYSTEM TECHNOLOGIES INC.
+1737  Linksys
+       0039  USB1000
+1740  Senao
+       2000  NUB-8301
+1743  General Atomics
+174c  ASMedia Technology Inc.
+174f  Syntek
+       5a35  1.3MPixel Web Cam - Asus G1s
+       6a31  Web Cam - Asus A8J, F3S, F5R, VX2S, V1S
+       6a33  Web Cam - Asus F3SA, F9J, F9S
+       6a51  2.0MPixel Web Cam - Asus Z96J, Z96S, S96S
+       6a54  Web Cam
+       6d51  2.0Mpixel Web Cam - Eurocom D900C
+       8a12  0.3MPixel Web Cam - Packard Bell MX37-T-003
+       a311  1.3MPixel Web Cam - Asus A3A, A6J, A6K, A6M, A6R, A6T, A6V, A7T, A7sv, A7U
+       a312  1.3MPixel Web Cam
+       a821  Web Cam - Packard Bell BU45, PB Easynote MX66-208W
+       aa11  Web Cam
+1759  LucidPort Technology, Inc.
+1772  System Level Solutions, Inc.
+1781  Multiple Vendors
+       083e  MetaGeek Wi-Spy
+       0938  Iguanaworks USB IR Transceiver
+1782  Spreadtrum Communications Inc.
+1784  TopSeed Technology Corp.
+1788  ShenZhen Litkconn Technology Co., Ltd.
+1796  Printrex, Inc.
+1797  JALCO CO., LTD.
+17a5  Advanced Connection Technology Inc.
+17a7  MICOMSOFT CO., LTD.
+17b3  Grey Innovation
+       0004  Linux-USB Midi Gadget
+17c3  Singim International Corp.
+17cc  Native Instruments
+       0815  Audio Kontrol 1
+       1940  RigKontrol3
+       1969  RigKontrol2
+       1978  Audio 8 DJ
+       4711  Kore Controller
+       4712  Kore Controller 2
+17cf  Hip Hing Cable & Plug Mfy. Ltd.
+17d0  Sanford L.P.
+17d3  Korea Techtron Co., Ltd.
+17e9  Newnham Research
+       0051  USB VGA Adaptor
+17eb  Cornice, Inc.
+17ef  Lenovo
+       3815  ChipsBnk 2GB USB Stick
+17f5  K.K. Rocky
+17f6  Unicomp, Inc
+1822  Twinhan
+       3201  VisionDTV USB-Ter/HAMA USB DVB-T device cold
+       3202  VisionDTV USB-Ter/HAMA USB DVB-T device warm
+1831  Gwo Jinn Industries Co., Ltd.
+1832  Huizhou Shenghua Industrial Co., Ltd.
+1854  Memory Devices Ltd.
+185b  Compro
+       d000  Compro Videomate DVB-U2000 - DVB-T USB cold
+       d001  Compro Videomate DVB-U2000 - DVB-T USB warm
+1861  Tech Technology Industrial Company
+1862  Teridian Semiconductor Corp.
+1871  Aveo Technology Corp.
+1894  Topseed
+       5632  Atek Tote Remote
+       5641  TSAM-004 Presentation Remote
+1897  Evertop Wire Cable Co.
+18b6  Mikkon Technology Limited
+18b7  Zotek Electronic Co., Ltd.
+18c5  AMIT
+       0002  CG-WLUSB2GO
+18d5  Starline International Group Limited
+18d9  Kaba
+       01xy  LEGIC advant desktop reader
+18e3  Fitipower Integrated Technology Inc
+18e8  Qcom
+       6196  RT2573
+       6229  RT2573
+18ea  Matrox Graphics, Inc.
+       0002  DualHead2Go [Analog Edition]
+       0004  TripleHead2Go [Digital Edition]
+18fd  FineArch Inc.
+190d  Motorola GSG
+1914  Alco Digital Devices Limited
+1915  Linksys
+       2233  WUSB11 v2.8 802.11b Adapter
+       2234  WUSB54G 802.11g Adapter
+192f  Avago Technologies, Pte.
+1930  Shenzhen Xianhe Technology Co., Ltd.
+1931  Ningbo Broad Telecommunication Co., Ltd.
+1949  Lab126
+1951  Hyperstone AG
+1953  Ironkey Inc.
+1954  Radiient Technologies
+195d  Itron Technology iONE
+       7002  Libra-Q11 IR remote
+       7006  Libra-Q26 / 1.0 Remote
+       7777  Scorpius wireless keyboard
+1967  CASIO HITACHI Mobile Communications Co., Ltd.
+196b  Wispro Technology Inc.
+1970  Dane-Elec Corp. USA
+1975  Dongguan Guneetal Wire & Cable Co., Ltd.
+1976  Chipsbrand Microelectronics (HK) Co., Ltd.
+1977  T-Logic
+       0111  TL203 MP3 Player and Voice Recorder
+1989  Nuconn Technology Corp.
+198f  Beceem Communications Inc.
+1990  Acron Precision Industrial Co., Ltd.
+1995  Trillium Technology Pty. Ltd.
+       3202  REC-ADPT-USB (recorder)
+       3203  REC-A-ADPT-USB (recorder)
+199e  The Imaging Source Europe GmbH
+199f  Benica Corporation
+19a8  Biforst Technology Inc.
+19af  S Life
+       6611  Celestia VoIP Phone
+19b5  B & W Group
+19b6  Infotech Logistic, LLC
+19ca  Mindtribe
+       0001  Sandio 3D HID Mouse
+19cf  Parrot SA
+19e1  WeiDuan Electronic Accessory (S.Z.) Co., Ltd.
+19e8  Industrial Technology Research Institute
+19ef  Pak Heng Technology (Shenzhen) Co., Ltd.
+19ff  Best Buy
+       0201  Rocketfish Wireless 2.4G Laser Mouse
+1a08  Bellwood International, Inc.
+1a0a  USB-IF non-workshop
+       badd  USB OTG Compliance test device
+1a12  KES Co., Ltd.
+1a25  Amphenol East Asia Ltd.
+1a2a  Seagate Branded Solutions
+1a36  Biwin Technology Ltd.
+1a40  TERMINUS TECHNOLOGY INC.
+1a41  Action Electronics Co., Ltd.
+1a4a  Silicon Image
+1a4b  SafeBoot International B.V.
+1a61  Abbott Diabetes Care
+1a6a  Spansion Inc.
+1a6d  SamYoung Electronics Co., Ltd
+1a6e  Global Unichip Corp.
+1a6f  Sagem Orga GmbH
+1a79  Bayer Health Care LLC
+1a7b  Lumberg Connect  GmbH & Co. KG
+1a89  Dynalith Systems Co., Ltd.
+1a8b  SGS Taiwan Ltd.
+1a98  Leica Camera AG
+1aa4  Data Drive Thru, Inc.
+1aa5  UBeacon Technologies, Inc.
+1aa6  eFortune Technology Corp.
+1acb  Salcomp Plc
+1ad1  Desay Wire Co., Ltd.
+1ae4  ic-design Reinhard Gottinger GmbH
+1aed  High Top Precision Electronic Co., Ltd.
+1aef  Conntech Electronic (Suzhou) Corporation
+1b04  Meilhaus Electronic GmBH
+       0630  ME-630
+       0940  ME-94
+       0950  ME-95
+       0960  ME-96
+       1000  ME-1000
+       100a  ME-1000
+       100b  ME-1000
+       1400  ME-1400
+       140a  ME-1400A
+       140b  ME-1400B
+       140c  ME-1400C
+       140d  ME-1400D
+       140e  ME-1400E
+       14ea  ME-1400EA
+       14eb  ME-1400EB
+       1604  ME-1600/4U
+       1608  ME-1600/8U
+       160c  ME-1600/12U
+       160f  ME-1600/16U
+       168f  ME-1600/16U8I
+       4610  ME-4610
+       4650  ME-4650
+       4660  ME-4660
+       4661  ME-4660I
+       4662  ME-4660
+       4663  ME-4660I
+       4670  ME-4670
+       4671  ME-4670I
+       4672  ME-4670S
+       4673  ME-4670IS
+       4680  ME-4680
+       4681  ME-4680I
+       4682  ME-4680S
+       4683  ME-4680IS
+       6004  ME-6000/4
+       6008  ME-6000/8
+       600f  ME-6000/16
+       6014  ME-6000I/4
+       6018  ME-6000I/8
+       601f  ME-6000I/16
+       6034  ME-6000ISLE/4
+       6038  ME-6000ISLE/8
+       603f  ME-6000ISLE/16
+       6044  ME-6000/4/DIO
+       6048  ME-6000/8/DIO
+       604f  ME-6000/16/DIO
+       6054  ME-6000I/4/DIO
+       6058  ME-6000I/8/DIO
+       605f  ME-6000I/16/DIO
+       6074  ME-6000ISLE/4/DIO
+       6078  ME-6000ISLE/8/DIO
+       607f  ME-6000ISLE/16/DIO
+       6104  ME-6100/4
+       6108  ME-6100/8
+       610f  ME-6100/16
+       6114  ME-6100I/4
+       6118  ME-6100I/8
+       611f  ME-6100I/16
+       6134  ME-6100ISLE/4
+       6138  ME-6100ISLE/8
+       613f  ME-6100ISLE/16
+       6144  ME-6100/4/DIO
+       6148  ME-6100/8/DIO
+       614f  ME-6100/16/DIO
+       6154  ME-6100I/4/DIO
+       6158  ME-6100I/8/DIO
+       615f  ME-6100I/16/DIO
+       6174  ME-6100ISLE/4/DIO
+       6178  ME-6100ISLE/8/DIO
+       617f  ME-6100ISLE/16/DIO
+       6259  ME-6200I/9/DIO
+       6359  ME-6300I/9/DIO
+       810a  ME-8100A
+       810b  ME-8100B
+       820a  ME-8200A
+       820b  ME-8200B
+1b20  MStar Semiconductor, Inc.
+1b22  WiLinx Corp.
+1b26  Cellex Power Products, Inc.
+1b27  Current Electronics Inc.
+1b28  NAVIsis Inc.
+1b32  Ugobe Life Forms, Inc.
+1b36  ViXS Systems, Inc.
+1b3f  Generalplus Technology Inc.
+1b47  Energizer Holdings, Inc.
+       0001  CHUSB Duo Charger (NiMH AA/AAA USB smart charger)
+1b48  Plastron Precision Co., Ltd.
+1b59  K.S. Terminals Inc.
+1b5a  Chao Zhou Kai Yuan Electric Co., Ltd.
+1b65  The Hong Kong Standards and Testing Centre Ltd.
+1b72  ATERGI TECHNOLOGY CO., LTD.
+1b76  Legend Silicon Corp.
+1b86  Dongguan Guanshang Electronics Co., Ltd.
+1b88  ShenMing Electron (Dong Guan) Co., Ltd.
+1b8c  Altium Limited
+1b8d  e-MOVE Technology Co., Ltd.
+1b8e  Amlogic, Inc.
+1b8f  MA LABS, Inc.
+1b98  YMax Communications Corp.
+1b99  Shenzhen Yuanchuan Electronic
+1ba1  JINQ CHERN ENTERPRISE CO., LTD.
+1ba2  Lite Metals & Plastic (Shenzhen) Co., Ltd.
+1ba4  Ember Corporation
+       0001  InSight USB Link
+1ba8  China Telecommunication Technology Labs
+1bad  Harmonix Music
+       0002  Harmonix Guitar for Xbox 360
+       0003  Harmonix Drum Kit for Xbox 360
+1bbb  T & A Mobile Phones
+1bc4  Ford Motor Co.
+1bc5  AVIXE Technology (China) Ltd.
+1bce  Contac Cable Industrial Limited
+1bcf  Sunplus Innovation Technology Inc.
+1bd0  Hangzhou Riyue Electronic Co., Ltd.
+1bde  P-TWO INDUSTRIES, INC.
+1bef  Shenzhen Tongyuan Network-Communication Cables Co., Ltd
+1bf0  RealVision Inc.
+1bf5  Extranet Systems Inc.
+1bf6  Orient Semiconductor Electronics, Ltd.
+1bfd  TouchPack
+       1688  Resistive Touch Screen
+1c02  Kreton Corporation
+1c04  QNAP System Inc.
+1c0d  Relm Wireless
+1c10  Lanterra Industrial Co., Ltd.
+1c13  ALECTRONIC LIMITED
+1c1a  Datel Electronics Ltd.
+1c1b  Volkswagen of America, Inc.
+1c1f  Goldvish S.A.
+1c20  Fuji Electric Device Technology Co., Ltd.
+1c21  ADDMM LLC
+1c22  ZHONGSHAN CHIANG YU ELECTRIC CO., LTD.
+1c26  Shanghai Haiying Electronics Co., Ltd.
+1c27  HuiYang D & S Cable Co., Ltd.
+1c31  LS Cable Ltd.
+1c37  Authorizer Technologies, Inc.
+1c3d  NONIN MEDICAL INC.
+1c3e  Wep Peripherals
+1c49  Cherng Weei Technology Corp.
+1c6b  Philips & Lite-ON Digital Solutions Corporation
+1c6c  Skydigital Inc.
+1c77  Kaetat Industrial Co., Ltd.
+1c78  Datascope Corp.
+1c79  Unigen Corporation
+1c7a  LighTuning Technology Inc.
+1c7b  LUXSHARE PRECISION INDUSTRY (SHENZHEN) CO., LTD.
+1c87  2N TELEKOMUNIKACE a.s.
+1c88  Somagic, Inc.
+1c89  HONGKONG WEIDIDA ELECTRON LIMITED
+1c8e  ASTRON INTERNATIONAL CORP.
+1c98  ALPINE ELECTRONICS, INC.
+1ca0  ACCARIO Inc.
+1cb3  Aces Electronic Co., Ltd.
+1cb4  OPEX CORPORATION
+1cbe  Luminary Micro Inc.
+1cbf  FORTAT SKYMARK INDUSTRIAL COMPANY
+1cc0  PlantSense
+1cca  NextWave Broadband Inc.
+1ccd  Bodatong Technology (Shenzhen) Co., Ltd.
+1cd4  adp corporation
+1cd5  Firecomms Ltd.
+1cd6  Antonio Precise Products Manufactory Ltd.
+1cde  Telecommunications Technology Association (TTA)
+1cdf  WonTen Technology Co., Ltd.
+1ce0  EDIMAX TECHNOLOGY CO., LTD.
+1ce1  Amphenol KAE
+1cfc  ANDES TECHNOLOGY CORPORATION
+1cfd  Flextronics Digital Design Japan, LTD.
+1d08  NINGBO HENTEK DRAGON ELECTRONICS CO., LTD.
+1d09  TechFaith Wireless Technology Limited
+1d0a  Johnson Controls, Inc. The Automotive Business Unit
+1d0b  HAN HUA CABLE & WIRE TECHNOLOGY (J.X.) CO., LTD.
+1d14  ALPHA-SAT TECHNOLOGY LIMITED
+1d1f  Diostech Co., Ltd.
+1d20  SAMTACK INC.
+1d50  OpenMoko, Inc.
+1d5b  Smartronix, Inc.
+1d6b  Linux Foundation
+       0001  1.1 root hub
+       0002  2.0 root hub
+       0003  3.0 root hub
+1ebb  NuCORE Technology, Inc.
+2001  D-Link Corp. [hex]
+       0001  DWL-120 WIRELESS ADAPTER
+       0201  DHN-120 10Mb Home Phoneline Adapter
+       1a00  10/100 Ethernet
+       200c  10/100 Ethernet
+       3200  DWL-120 802.11b (Atmel RFMD503A) [usbvnetr]
+       3500  Elitegroup Computer Systems WLAN card WL-162
+       3700  DWL-122 802.11b
+       3701  DWL-G120 Spinnaker 802.11b
+       3702  DWL-120 rev F
+       3703  DWL-122 802.11b
+       3704  DWL-G122 802.11g rev. A2
+       3705  AirPlus G DWL-G120 Wireless Adapter(rev.C)
+       3761  IEEE 802.11g USB2.0 Wireless Network Adapter-PN
+       3a00  DWL-AG132
+       3a01  DWL-AG132 (no firmware)
+       3a02  DWL-G132
+       3a03  DWL-G132 (no firmware)
+       3a04  DWL-AG122
+       3a05  DWL-AG122 (no firmware)
+       3a80  AirPlus Xtreme G DWL-G132 Wireless Adapter
+       3a81  predator Bootloader Download
+       3a82  AirPremier AG DWL-AG132 Wireless Adapter
+       3a83  predator Bootloader Download
+       3b00  AirPlus DWL-120+ Wireless Adapter
+       3b01  WLAN Boot Device
+       3c00  DWL-G122 802.11g rev. B1 [ralink]
+       3c01  AirPlus AG DWL-AG122 Wireless Adapter
+       3c02  AirPlus G DWL-G122 Wireless Adapter
+       3c05  DUB-E100 Fast Ethernet [asix]
+       4000  DSB-650C Ethernet [klsi]
+       4001  DSB-650TX Ethernet [pegasus]
+       4002  DSB-650TX Ethernet [pegasus]
+       4003  DSB-650TX-PNA Ethernet [pegasus]
+       400b  10/100 Ethernet
+       4102  10/100 Ethernet
+       5100  DSL-200 ADSL ATM Modem
+       5102  DSL-200 ADSL Loader
+       5b00  Remote NDIS Network Device
+       9414  Cable Modem
+       9b00  Broadband Cable Modem Remote NDIS Device
+       abc1  DSB-650 Ethernet [pegasus]
+       f013  DLink 7 port USB2.0 Hub
+       f10d  Accent Communications Modem
+       f110  DUB-AV300 A/V Capture
+       f111  DBT-122 Bluetooth adapter
+       f112  DUB-T210 Audio Device
+       f116  Formosa 2
+       f117  Formosa 3
+       f118  Formosa 4
+2019  PLANEX
+       3220  GW-US11S WLAN
+       5303  GW-US54GXS
+       ab01  GW-US54HP
+       ab50  GW-US54Mini2
+       c002  GW-US54SG
+       c007  GW-US54GZL
+       ed02  GW-USMM
+2040  Hauppauge
+       6502  WinTV HVR-900
+       6503  WinTV HVR-930
+       7050  Nova-T Stick
+       9300  WinTV NOVA-T USB2 (cold)
+       9301  WinTV NOVA-T USB2 (warm)
+2101  ActionStar
+       0201  SIIG 4-to-2 Printer Switch
+2162  Creative (?)
+       2031  Network Blaster Wireless Adapter
+       500c  DE5771 Modem Blaster
+       8001  Broadxent BritePort DSL Bridge 8010U
+2222  MacAlly
+       0004  iWebKey Keyboard
+       4050  AirStick joystick
+2233  RadioShack Corporation
+       6323  USB Electronic Scale
+22b8  Motorola PCS
+       0001  Wally 2.2 chipset
+       0002  Wally 2.4 chipset
+       0005  V.60c/V.60i GSM Phone
+       0850  Bluetooth Device
+       1001  Patriot 1.0 (GSM) chipset
+       1002  Patriot 2.0 chipset
+       1005  T280e GSM/GPRS Phone
+       1101  Patriot 1.0 (TDMA) chipset
+       1801  Rainbow chipset flash
+       2035  Bluetooth Device
+       2805  GSM Modem
+       2821  T720 GSM Phone
+       2822  V.120e GSM Phone
+       2823  Flash Interface
+       2a01  MSM6050 chipset
+       2a02  CDMA modem
+       2a03  MSM6050 chipset flash
+       2a21  V710 GSM Phone (P2K)
+       2a22  V710 GSM Phone (AT)
+       2a23  MSM6100 chipset flash
+       2a41  MSM6300 chipset
+       2a42  Usb Modem
+       2a43  MSM6300 chipset flash
+       2a61  E815 GSM Phone (P2K)
+       2a62  E815 GSM Phone (AT)
+       2a63  MSM6500 chipset flash
+       2a81  MSM6025 chipset
+       2a83  MSM6025 chipset flash
+       2ac1  MSM6100 chipset
+       2ac3  MSM6100 chipset flash
+       3001  A835/E1000 GSM Phone (P2K)
+       3002  A835/E1000 GSM Phone (AT)
+       3801  C350L/C450 (P2K)
+       3802  C330/C350L/C450/EZX GSM Phone (AT)
+       3803  Neptune LT chipset flash
+       4001  OMAP 1.0 chipset
+       4002  A920/A925 UMTS Phone
+       4003  OMAP 1.0 chipset flash
+       4008  OMAP 1.0 chipset RDL
+       4204  MPx200 Smartphone
+       4214  MPc GSM
+       4224  MPx220 Smartphone
+       4234  MPc CDMA
+       4244  MPx100 Smartphone
+       4801  Neptune LTS chipset
+       4803  Neptune LTS chipset flash
+       4810  Triplet GSM Phone (storage)
+       4901  Triplet GSM Phone (P2K)
+       4902  Triplet GSM Phone (AT)
+       4903  Neptune LTE chipset flash
+       4a01  Neptune LTX chipset
+       4a03  Neptune LTX chipset flash
+       4a32  L6-imode Phone
+       5801  Neptune ULS chipset
+       5803  Neptune ULS chipset flash
+       5901  Neptune VLT chipset
+       5903  Neptune VLT chipset flash
+       6001  Dalhart EZX
+       6003  Dalhart flash
+       6004  EZX GSM Phone (CDC Net)
+       6008  Dalhart RDL
+       6009  EZX GSM Phone (P2K)
+       600a  Dalhart EZX config 17
+       600b  Dalhart EZX config 18
+       600c  EZX GSM Phone (USBLAN)
+       6021  JUIX chipset
+       6023  JUIX chipset flash
+       6026  Flash RAM Downloader/miniOS
+       6027  USBLAN
+       604c  EZX GSM Phone (Storage)
+       6101  Talon integrated chipset
+       6401  Argon chipset
+       6403  Argon chipset flash
+       6415  ROKR Z6 (MTP mode)
+       6604  Washington CDMA Phone
+       6631  CDC Modem
+22b9  eTurboTouch Technology, Inc.
+22ba  Technology Innovation Holdings, Ltd
+2304  Pinnacle Systems, Inc. [hex]
+       0109  Studio PCTV USB (SECAM)
+       0110  Studio PCTV USB (PAL)
+       0111  Miro PCTV USB
+       0112  Studio PCTV USB (NTSC) with FM radio
+       0201  Systems MovieBox Device
+       0204  MovieBox USB_B
+       0205  DVC 150B
+       0206  Systems MovieBox Deluxe Device
+       0207  Dazzle DVC90 Video Device
+       0208  Studio PCTV USB2
+       020e  PCTV 200e
+       020f  PCTV 400e BDA Device
+       0210  Studio PCTV USB (PAL) with FM radio
+       0212  Studio PCTV USB (NTSC)
+       0213  500-USB Device
+       0214  Studio PCTV USB (PAL) with FM radio
+       0216  PCTV 60e
+       0219  PCTV 260e
+       021a  Dazzle DVC100 Audio Device
+       021b  Dazzle DVC130/DVC170
+       021d  Dazzle DVC130
+       021e  Dazzle DVC170
+       021f  PCTV Sat HDTV Pro BDA Device
+       0222  PCTV Sat Pro BDA Device
+       0223  DazzleTV Sat BDA Device
+       0226  PCTV 330e
+       0227  PCTV for Mac, HD Stick
+       0228  PCTV DVB-T Flash Stick
+       022a  PCTV 160e
+       022b  PCTV 71e
+       0232  PCTV 170e
+       0300  Studio Linx Video input cable (NTSC)
+       0301  Studio Linx Video input cable (PAL)
+       0302  Dazzle DVC120
+       0419  PCTV Bungee USB (PAL) with FM radio
+       061d  PCTV Deluxe (NTSC) Device
+       061e  PCTV Deluxe (PAL) Device
+2318  Shining Technologies, Inc. [hex]
+       0011  CitiDISK Jr. IDE Enclosure
+2375  Digit@lway, Inc.
+       0001  Digital Audio Player
+2406  SANHO Digital Electronics Co., Ltd.
+       6688  PD7X Portable Storage
+2478  Tripp-Lite
+       2008  U209-000-R Serial Port
+2632  TwinMOS
+       3209  7-in-1 Card Reader
+2650  Electronics For Imaging, Inc. [hex]
+2730  Citizen
+       200f  CT-S310 Label printer
+2735  DigitalWay
+       0003  MPIO 1.5GB Hard Disc Drive
+2770  NHJ, Ltd
+       0a01  ScanJet 4600 series
+       905c  Che-Ez Snap SNAP-U/Digigr8/Soundstar TDC-35
+       9060  A130
+       9120  Che-ez! Snap / iClick Tiny VGA Digital Camera
+       9130  TCG 501
+       913c  Argus DC-1730
+       9150  Mini Cam
+       9153  iClick 5X
+       915d  Cyberpix S-210S / Little Tikes My Real Digital Camera
+       930b  CCD Webcam(PC370R)
+       930c  CCD Webcam(PC370R)
+2899  Toptronic Industrial Co., Ltd
+2c02  Planex Communications
+       14ea  GW-US11H WLAN
+2fb2  Fujitsu, Ltd
+3125  Eagletron
+       0001  TrackerPod Camera Stand
+3176  Whanam Electronics Co., Ltd
+3275  VidzMedia Pte Ltd
+       4fb1  MonsterTV P2H
+3334  AEI
+       1701  Fast Ethernet
+3340  Yakumo
+       043a  Mio A701 DigiWalker PPCPhone
+       0e3a  Pocket PC 300 GPS SL / Typhoon MyGuide 3500
+       a0a3  deltaX 5 BT (D) PDA
+3504  Micro Star
+       f110  Security Key
+3538  Power Quotient International Co., Ltd
+       0001  Travel Flash
+       0015  Mass Storge Device
+       0022  Hi-Speed Mass Storage Device
+       0042  Cool Drive U339 Flash Disk
+3579  DIVA
+       6901  Media Reader
+3636  InVibro
+3838  WEM
+       0001  5-in-1 Card Reader
+3923  National Instruments Corp.
+       12c0  DAQPad-6020E
+       12d0  DAQPad-6507
+       12e0  NI 4350
+       12f0  NI 5102
+       1750  DAQPad-6508
+       17b0  USB-ISA-Bridge
+       1820  DAQPad-6020E (68 pin I/O)
+       1830  DAQPad-6020E (BNC)
+       1f00  DAQPad-6024E
+       1f10  DAQPad-6024E
+       1f20  DAQPad-6025E
+       1f30  DAQPad-6025E
+       1f40  DAQPad-6036E
+       1f50  DAQPad-6036E
+       2f80  DAQPad-6052E
+       2f90  DAQPad-6052E
+       703c  USB-485 RS485 Cable
+       7254  NI MIO (data acquisition card) firmware updater
+       729e  USB-6251 (OEM) data acquisition card
+40bb  I-O Data
+       0a09  USB2.0-SCSI Bridge USB2-SC
+4101  i-rocks
+       1301  IR-2510 usb phone
+4102  iRiver, Ltd.
+       1001  iFP-100 series mp3 player
+       1003  iFP-300 series mp3 player
+       1005  iFP-500 series mp3 player
+       1007  iFP-700 series mp3/ogg vorbis player
+       1008  iFP-800 series mp3/ogg vorbis player
+       100a  iFP-1000 series mp3/ogg vorbis player
+       1014  T20 series mp3/ogg vorbis player (ums firmware)
+       1101  iFP-100 series mp3 player (ums firmware)
+       1103  iFP-300 series mp3 player (ums firmware)
+       1105  iFP-500 series mp3 player (ums firmware)
+       1113  T10 (alternate)
+       1117  T10
+       1119  T30 series mp3/ogg/wma player
+       2002  H10 6GB
+       2101  H10 20GB (mtp)
+       2102  H10 5GB (mtp)
+       2105  H10 5/6GB (mtp)
+413c  Dell Computer Corp.
+       0058  Port Replicator
+       1001  Keyboard Hub
+       1002  Keyboard Hub
+       2001  Keyboard HID Support
+       2002  SK-8125 Keyboard
+       2003  Keyboard
+       2005  RT7D50 Keyboard
+       2100  SK-3106 Keyboard
+       2101  SmartCard Reader Keyboard
+       2500  DRAC4 Remote Access Card
+       3010  Optical Wheel Mouse
+       3200  Mouse
+       4001  Axim X5
+       4002  Axim X3
+       4003  Axim X30
+       4004  Axim Sync
+       4005  Axim Sync
+       4006  Axim Sync
+       4007  Axim Sync
+       4008  Axim Sync
+       4009  Axim Sync
+       4011  Axim X51v
+       5103  AIO Printer A940
+       5105  AIO Printer A920
+       5107  AIO Printer A960
+       5109  Photo AIO Printer 922
+       5110  Photo AIO Printer 962
+       5111  Photo AIO Printer 942
+       5112  Photo AIO Printer 924
+       5113  Photo AIO Printer 944
+       5114  Photo AIO Printer 964
+       5115  Photo AIO Printer 926
+       5116  AIO Printer 946
+       5117  Photo AIO Printer 966
+       5118  AIO 810
+       5124  Laser MFP 1815
+       5128  Photo AIO 928
+       5200  Laser Printer
+       5202  Printing Support
+       5203  Printing Support
+       5210  Printing Support
+       5211  Printing Support
+       5220  Laser MFP 1600n
+       5225  Printing Support
+       5226  Printing Support
+       5300  Laser Printer
+       5400  Laser Printer
+       5401  Laser Printer
+       5601  Laser Printer 3100cn
+       5602  Laser Printer 3000cn
+       5631  Laser Printer 5100cn
+       5905  Printing Support
+       8000  BC02 Bluetooth USB Adapter
+       8010  TrueMobile Bluetooth Module in
+       8100  TrueMobile 1180 802.11b Adapter
+       8102  TrueMobile 1300 USB2.0 WLAN Card
+       8103  Wireless 350 Bluetooth
+       8104  Wireless 1450 Dual-band (802.11a/b/g) USB2.0 Adapter
+       8105  U2 in HID - Driver
+       8106  Wireless 350 Bluetooth Internal Card in
+       8110  Wireless 3xx Bluetooth Internal Card
+       8111  Wireless 3xx Bluetooth Internal Card in
+       8114  Wireless 5700 Mobile Broadband (CDMA EV-DO) Minicard Modem
+       8115  Wireless 5500 Mobile Broadband (3G HSDPA) Minicard Modem
+       8116  Wireless 5505 Mobile Broadband (3G HSDPA) Minicard Modem
+       8117  Wireless 5700 Mobile Broadband (CDMA EV-DO) Expresscard Modem
+       8118  Wireless 5510 Mobile Broadband (3G HSDPA) Expresscard Status Port
+       8120  Bluetooth adapter
+       8121  Eastfold in HID
+       8122  Eastfold in DFU
+       8123  eHome Infrared Receiver
+       8124  eHome Infrared Receiver
+       8126  Wireless 355 Bluetooth
+       8127  Wireless 355 Module with Bluetooth 2.0 + EDR Technology.
+       8128  Wireless 5700-Sprint Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+       8129  Wireless 5700-Telus Mobile Broadband (CDMA EV-DO) Mini-Card Status Port
+       8131  Wireless 360 Bluetooth 2.0 + EDR module.
+       8133  Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port
+       8134  Wireless 5720 Sprint Mobile Broadband (EVDO Rev-A) Minicard Status Port
+       8135  Wireless 5720 TELUS Mobile Broadband (EVDO Rev-A) Minicard Diagnostics Port
+       8136  Wireless 5520 Cingular Mobile Broadband (3G HSDPA) Minicard Diagnostics Port
+       8137  Wireless 5520 Voda L Mobile Broadband (3G HSDPA) Minicard Status Port
+       8138  Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard EAP-SIM Port
+       8140  Wireless 360 Bluetooth
+       8142  Mobile 360 in DFU
+       8501  Bluetooth Adapter
+       a001  Hub
+       a005  Internal 2.0 Hub
+       a700  Hub (in 1905FP LCD Monitor)
+4146  USBest Technology
+       9281  Iomega Micro Mini 128MB Flash Drive
+       ba01  Intuix Flash Drive
+4242  USB Design by Example
+       4201  Buttons and Lights HID device
+       4220  Echo 1 Camera
+4348  WinChipHead
+       5523  USB->RS 232 adapter with Prolifec PL 2303 chipset
+       5537  13.56Mhz RFID Card Reader and Writer
+       5584  CH34x printer adapter cable
+4572  Shuttle, Inc.
+       4572  Shuttle PN31 Remote
+4586  Panram
+       1026  Crystal Bar Flash Drive
+4670  EMS Production
+       9394  Game Cube USB Memory Adaptor 64M
+4752  Miditech
+       0011  Midistart-2
+4766  Aceeca
+       0001  MEZ1000 RDA
+4855  Memorex
+       7288  Ultra Traveldrive 160G 2.5" HDD
+5032  Grandtec
+       0bb8  Grandtec USB1.1 DVB-T (cold)
+       0bb9  Grandtec USB1.1 DVB-T (warm)
+       0fa0  Grandtec USB1.1 DVB-T (cold)
+       0fa1  Grandtec USB1.1 DVB-T (warm)
+5041  Linksys (?)
+       2234  WUSB54G 802.11g Adapter
+5173  Sweex
+       1809  ZD1211
+5345  Owon
+       1234  PDS6062T Oscilloscope
+544d  Transmeta Corp.
+5543  UC-Logic Technology Corp.
+       0002  SuperPen WP3325U Tablet
+       0003  Genius MousePen 4x3 Tablet/Aquila L1 Tablet
+       0004  Genius MousePen 5x4 Tablet
+       0005  Genius MousePen 8x6 Tablet
+       0041  Genius PenSketch 6x8 Tablet
+       0042  Genius PenSketch 12x9 Tablet
+55aa  OnSpec Electronic, Inc.
+       0015  Hard Drive
+       0102  SuperDisk
+       0103  IDE Hard Drive
+       0201  DDI to Reader-19
+       1234  ATAPI Bridge
+       a103  Sandisk SDDR-55 SmartMedia Card Reader
+       b000  USB to CompactFlash Card Reader
+       b004  OnSpec MMC/SD Reader/Writer
+       b00b  USB to Memory Stick Card Reader
+       b00c  USB to SmartMedia Card Reader
+       b012  Mitsumi FA402M 8-in-2 Card Reader
+       b200  Compact Flash Reader
+       b204  MMC/ SD Reader
+       b207  Memory Stick Reader
+5986  Acer, Inc
+       0102  Crystal Eye webcam
+5a57  Zinwell
+       0260  RT2570
+6189  Sitecom
+       182d  USB 2.0 Ethernet
+       2068  USB to serial cable (v2)
+6253  TwinHan Technology Co., Ltd
+       0100  Ir reciver f. remote control
+636c  CoreLogic, Inc.
+6547  Arkmicro Technologies Inc.
+       0232  ARK3116 Serial
+6666  Prototype product Vendor ID
+       0667  WiseGroup Smart Joy PSX, PS-PC Smart JoyPad
+       2667  JCOP BlueZ Smartcard reader
+       8804  WiseGroup SuperJoy Box 5
+6891  3Com
+       a727  3CRUSB10075
+6993  Freshtel
+       b001  FT-102 VoIP USB Phone
+6a75  Shanghai Jujo Electronics Co., Ltd
+7104  CME (Central Music Co.)
+       2202  UF5/UF6/UF7/UF8 MIDI Master Keyboard
+8086  Intel Corp.
+       0001  AnyPoint (TM) Home Network 1.6 Mbps Wireless Adapter
+       0100  Personal Audio Player 3000
+       0101  Personal Audio Player 3000
+       0110  Easy PC Camera
+       0120  PC Camera CS120
+       0200  AnyPoint(TM) Wireless II Network 11Mbps Adapter
+       0431  Intel Pro Video PC Camera
+       0510  Digital Movie Creator
+       0630  Pocket PC Camera
+       0780  CS780 Microphone Input
+       07d3  BLOB boot loader firmware
+       0dad  Cherry MiniatureCard Keyboard
+       1010  AnyPoint(TM) Home Network 10 Mbps Phoneline Adapter
+       110a  Bluetooth Controller from (Ericsson P4A)
+       110b  Bluetooth Controller from (Intel/CSR)
+       1110  PRO/Wireless LAN Module
+       1111  PRO/Wireless 2011B 802.11b Adapter
+       1134  Hollister Mobile Monitor
+       1234  Prototype Reader/Writer
+       3100  PRO/DSL 3220 Modem - WAN
+       3101  PRO/DSL 3220 Modem
+       3240  AnyPoint® 3240 Modem - WAN
+       3241  AnyPoint® 3240 Modem
+       8602  Miniature Card Slot
+       9303  Intel 8x930Hx Hub
+       9890  82930 Test Board
+       beef  SCM Miniature Card Reader/Writer
+       c013  Wireless HID Station
+       f001  XScale PXA27x Bulverde flash
+8341  EGO Systems, Inc.
+       2000  Flashdisk
+9016  Sitecom
+       182d  WL-022
+9710  MosChip Semiconductor
+       7703  MCS7703 Serial Port Adapter
+       7705  Printer cable
+       7715  Printer cable
+       7780  MS7780 4Mbps Fast IRDA Adapter
+       7830  MCS7830 Ethernet
+a727  3Com
+       6893  AR5523
+       6895  AR5523
+       6897  AR5523
+c251  Keil Software, Inc.
+       2710  ULink
+eb1a  eMPIA Technology, Inc.
+       17de  KWorld V-Stream XPERT DTV - DVB-T USB cold
+       17df  KWorld V-Stream XPERT DTV - DVB-T USB warm
+       2710  SilverCrest WebCam
+       2750  ECS Elitegroup G220 integrated webcam
+       2800  Terratec Cinergy 200
+       2801  GrabBeeX+ Video Encoder
+f003  Hewlett Packard
+       6002  PhotoSmart C500
+
+# List of known device classes, subclasses and protocols
+
+# Syntax:
+# C class  class_name
+#      subclass  subclass_name                 <-- single tab
+#              protocol  protocol_name         <-- two tabs
+
+C 00  (Defined at Interface level)
+C 01  Audio
+       01  Control Device
+       02  Streaming
+       03  MIDI Streaming
+C 02  Communications
+       01  Direct Line
+       02  Abstract (modem)
+               00  None
+               01  AT-commands (v.25ter)
+               02  AT-commands (PCCA101)
+               03  AT-commands (PCCA101 + wakeup)
+               04  AT-commands (GSM)
+               05  AT-commands (3G)
+               06  AT-commands (CDMA)
+               fe  Defined by command set descriptor
+               ff  Vendor Specific (MSFT RNDIS?)
+       03  Telephone
+       04  Multi-Channel
+       05  CAPI Control
+       06  Ethernet Networking
+       07  ATM Networking
+       08  Wireless Handset Control
+       09  Device Management
+       0a  Mobile Direct Line
+       0b  OBEX
+       0c  Ethernet Emulation
+               07  Ethernet Emulation (EEM)
+C 03  Human Interface Device
+       00  No Subclass
+               00  None
+               01  Keyboard
+               02  Mouse
+       01  Boot Interface Subclass
+               00  None
+               01  Keyboard
+               02  Mouse
+C 05  Physical Interface Device
+C 06  Imaging
+       01  Still Image Capture
+               01  Picture Transfer Protocol (PIMA 15470)
+C 07  Printer
+       01  Printer
+               00  Reserved/Undefined
+               01  Unidirectional
+               02  Bidirectional
+               03  IEEE 1284.4 compatible bidirectional
+               ff  Vendor Specific
+C 08  Mass Storage
+       01  RBC (typically Flash)
+               00  Control/Bulk/Interrupt
+               01  Control/Bulk
+               50  Bulk (Zip)
+       02  SFF-8020i, MMC-2 (ATAPI)
+       03  QIC-157
+       04  Floppy (UFI)
+               00  Control/Bulk/Interrupt
+               01  Control/Bulk
+               50  Bulk (Zip)
+       05  SFF-8070i
+       06  SCSI
+               00  Control/Bulk/Interrupt
+               01  Control/Bulk
+               50  Bulk (Zip)
+C 09  Hub
+       00  Unused
+               00  Full speed (or root) hub
+               01  Single TT
+               02  TT per port
+C 0a  CDC Data
+       00  Unused
+               30  I.430 ISDN BRI
+               31  HDLC
+               32  Transparent
+               50  Q.921M
+               51  Q.921
+               52  Q.921TM
+               90  V.42bis
+               91  Q.932 EuroISDN
+               92  V.120 V.24 rate ISDN
+               93  CAPI 2.0
+               fd  Host Based Driver
+               fe  CDC PUF
+               ff  Vendor specific
+C 0b  Chip/SmartCard
+C 0d  Content Security
+C 0e  Video
+       00  Undefined
+       01  Video Control
+       02  Video Streaming
+       03  Video Interface Collection
+C dc  Diagnostic
+       01  Reprogrammable Diagnostics
+               01  USB2 Compliance
+C e0  Wireless
+       01  Radio Frequency
+               01  Bluetooth
+               02  Ultra WideBand Radio Control
+               03  RNDIS
+       02  Wireless USB Wire Adapter
+               01  Host Wire Adapter Control/Data Streaming
+               02  Device Wire Adapter Control/Data Streaming
+               03  Device Wire Adapter Isochronous Streaming
+C ef  Miscellaneous Device
+       01  ?
+               01  Microsoft ActiveSync
+               02  Palm Sync
+       02  ?
+               01  Interface Association
+               02  Wire Adapter Multifunction Peripheral
+       03  ?
+               01  Cable Based Association
+C fe  Application Specific Interface
+       01  Device Firmware Update
+       02  IRDA Bridge
+       03  Test and Measurement
+               01  TMC
+               02  USB488
+C ff  Vendor Specific Class
+       ff  Vendor Specific Subclass
+               ff  Vendor Specific Protocol
+
+# List of Audio Class Terminal Types
+
+# Syntax:
+# AT terminal_type  terminal_type_name
+
+AT 0100  USB Undefined
+AT 0101  USB Streaming
+AT 01ff  USB Vendor Specific
+AT 0200  Input Undefined
+AT 0201  Microphone
+AT 0202  Desktop Microphone
+AT 0203  Personal Microphone
+AT 0204  Omni-directional Microphone
+AT 0205  Microphone Array
+AT 0206  Processing Microphone Array
+AT 0300  Output Undefined
+AT 0301  Speaker
+AT 0302  Headphones
+AT 0303  Head Mounted Display Audio
+AT 0304  Desktop Speaker
+AT 0305  Room Speaker
+AT 0306  Communication Speaker
+AT 0307  Low Frequency Effects Speaker
+AT 0400  Bidirectional Undefined
+AT 0401  Handset
+AT 0402  Headset
+AT 0403  Speakerphone, no echo reduction
+AT 0404  Echo-suppressing speakerphone
+AT 0405  Echo-canceling speakerphone
+AT 0500  Telephony Undefined
+AT 0501  Phone line
+AT 0502  Telephone
+AT 0503  Down Line Phone
+AT 0600  External Undefined
+AT 0601  Analog Connector
+AT 0602  Digital Audio Interface
+AT 0603  Line Connector
+AT 0604  Legacy Audio Connector
+AT 0605  SPDIF interface
+AT 0606  1394 DA stream
+AT 0607  1394 DV stream soundtrack
+AT 0700  Embedded Undefined
+AT 0701  Level Calibration Noise Source
+AT 0702  Equalization Noise
+AT 0703  CD Player
+AT 0704  DAT
+AT 0705  DCC
+AT 0706  MiniDisc
+AT 0707  Analog Tape
+AT 0708  Phonograph
+AT 0709  VCR Audio
+AT 070a  Video Disc Audio
+AT 070b  DVD Audio
+AT 070c  TV Tuner Audio
+AT 070d  Satellite Receiver Audio
+AT 070e  Cable Tuner Audio
+AT 070f  DSS Audio
+AT 0710  Radio Receiver
+AT 0711  Radio Transmitter
+AT 0712  Multitrack Recorder
+AT 0713  Synthesizer
+
+# List of HID Descriptor Types
+
+# Syntax:
+# HID descriptor_type  descriptor_type_name
+
+HID 21  HID
+HID 22  Report
+HID 23  Physical
+
+# List of HID Descriptor Item Types
+# Note: 2 bits LSB encode data length following
+
+# Syntax:
+# R item_type  item_type_name
+
+# Main Items
+R 80  Input
+R 90  Output
+R b0  Feature
+R a0  Collection
+R c0  End Collection
+
+# Global Items
+R 04  Usage Page
+R 14  Logical Minimum
+R 24  Logical Maximum
+R 34  Physical Minimum
+R 44  Physical Maximum
+R 54  Unit Exponent
+R 64  Unit
+R 74  Report Size
+R 84  Report ID
+R 94  Report Count
+R a4  Push
+R b4  Pop
+
+# Local Items
+R 08  Usage
+R 18  Usage Minimum
+R 28  Usage Maximum
+R 38  Designator Index
+R 48  Designator Minimum
+R 58  Designator Maximum
+R 78  String Index
+R 88  String Minimum
+R 98  String Maximum
+R a8  Delimiter
+
+# List of Physical Descriptor Bias Types
+
+# Syntax:
+# BIAS item_type  item_type_name
+
+BIAS 0  Not Applicable
+BIAS 1  Right Hand
+BIAS 2  Left Hand
+BIAS 3  Both Hands
+BIAS 4  Either Hand
+
+# List of Physical Descriptor Item Types
+
+# Syntax:
+# PHY item_type  item_type_name
+
+PHY 00  None
+PHY 01  Hand
+PHY 02  Eyeball
+PHY 03  Eyebrow
+PHY 04  Eyelid
+PHY 05  Ear
+PHY 06  Nose
+PHY 07  Mouth
+PHY 08  Upper Lip
+PHY 09  Lower Lip
+PHY 0a  Jaw
+PHY 0b  Neck
+PHY 0c  Upper Arm
+PHY 0d  Elbow
+PHY 0e  Forearm
+PHY 0f  Wrist
+PHY 10  Palm
+PHY 11  Thumb
+PHY 12  Index Finger
+PHY 13  Middle Finger
+PHY 14  Ring Finger
+PHY 15  Little Finger
+PHY 16  Head
+PHY 17  Shoulder
+PHY 18  Hip
+PHY 19  Waist
+PHY 1a  Thigh
+PHY 1b  Knee
+PHY 1c  calf
+PHY 1d  Ankle
+PHY 1e  Foot
+PHY 1f  Heel
+PHY 20  Ball of Foot
+PHY 21  Big Toe
+PHY 22  Second Toe
+PHY 23  Third Toe
+PHY 24  Fourth Toe
+PHY 25  Fifth Toe
+PHY 26  Brow
+PHY 27  Cheek
+
+# List of HID Usages
+
+# Syntax:
+# HUT hi  _usage_page  hid_usage_page_name
+#      hid_usage  hid_usage_name
+
+HUT 00  Undefined
+HUT 01  Generic Desktop Controls
+       000  Undefined
+       001  Pointer
+       002  Mouse
+       004  Joystick
+       005  Gamepad
+       006  Keyboard
+       007  Keypad
+       008  Multi-Axis Controller
+       030  Direction-X
+       031  Direction-Y
+       032  Direction-Z
+       033  Rotate-X
+       034  Rotate-Y
+       035  Rotate-Z
+       036  Slider
+       037  Dial
+       038  Wheel
+       039  Hat Switch
+       03a  Counted Buffer
+       03b  Byte Count
+       03c  Motion Wakeup
+       03d  Start
+       03e  Select
+       040  Vector-X
+       041  Vector-Y
+       042  Vector-Z
+       043  Vector-X relative Body
+       044  Vector-Y relative Body
+       045  Vector-Z relative Body
+       046  Vector
+       080  System Control
+       081  System Power Down
+       082  System Sleep
+       083  System Wake Up
+       084  System Context Menu
+       085  System Main Menu
+       086  System App Menu
+       087  System Menu Help
+       088  System Menu Exit
+       089  System Menu Select
+       08a  System Menu Right
+       08b  System Menu Left
+       08c  System Menu Up
+       08d  System Menu Down
+       090  Direction Pad Up
+       091  Direction Pad Down
+       092  Direction Pad Right
+       093  Direction Pad Left
+HUT 02  Simulation Controls
+       000  Undefined
+       001  Flight Simulation Device
+       002  Automobile Simulation Device
+       003  Tank Simulation Device
+       004  Spaceship Simulation Device
+       005  Submarine Simulation Device
+       006  Sailing Simulation Device
+       007  Motorcycle Simulation Device
+       008  Sports Simulation Device
+       009  Airplane Simualtion Device
+       00a  Helicopter Simulation Device
+       00b  Magic Carpet Simulation Device
+       00c  Bicycle Simulation Device
+       020  Flight Control Stick
+       021  Flight Stick
+       022  Cyclic Control
+       023  Cyclic Trim
+       024  Flight Yoke
+       025  Track Control
+       0b0  Aileron
+       0b1  Aileron Trim
+       0b2  Anti-Torque Control
+       0b3  Autopilot Enable
+       0b4  Chaff Release
+       0b5  Collective Control
+       0b6  Dive Break
+       0b7  Electronic Countermeasures
+       0b8  Elevator
+       0b9  Elevator Trim
+       0ba  Rudder
+       0bb  Throttle
+       0bc  Flight COmmunications
+       0bd  Flare Release
+       0be  Landing Gear
+       0bf  Toe Break
+       0c0  Trigger
+       0c1  Weapon Arm
+       0c2  Weapons Select
+       0c3  Wing Flaps
+       0c4  Accelerator
+       0c5  Brake
+       0c6  Clutch
+       0c7  Shifter
+       0c8  Steering
+       0c9  Turret Direction
+       0ca  Barrel Elevation
+       0cb  Drive Plane
+       0cc  Ballast
+       0cd  Bicylce Crank
+       0ce  Handle Bars
+       0cf  Front Brake
+       0d0  Rear Brake
+HUT 03  VR Controls
+       000  Unidentified
+       001  Belt
+       002  Body Suit
+       003  Flexor
+       004  Glove
+       005  Head Tracker
+       006  Head Mounted Display
+       007  Hand Tracker
+       008  Oculometer
+       009  Vest
+       00a  Animatronic Device
+       020  Stereo Enable
+       021  Display Enable
+HUT 04  Sport Controls
+       000  Unidentified
+       001  Baseball Bat
+       002  Golf Club
+       003  Rowing Machine
+       004  Treadmill
+       030  Oar
+       031  Slope
+       032  Rate
+       033  Stick Speed
+       034  Stick Face Angle
+       035  Stick Heel/Toe
+       036  Stick Follow Through
+       047  Stick Temp
+       038  Stick Type
+       039  Stick Height
+       050  Putter
+       051  1 Iron
+       052  2 Iron
+       053  3 Iron
+       054  4 Iron
+       055  5 Iron
+       056  6 Iron
+       057  7 Iron
+       058  8 Iron
+       059  9 Iron
+       05a  10 Iron
+       05b  11 Iron
+       05c  Sand Wedge
+       05d  Loft Wedge
+       05e  Power Wedge
+       05f  1 Wood
+       060  3 Wood
+       061  5 Wood
+       062  7 Wood
+       063  9 Wood
+HUT 05  Game Controls
+       000  Undefined
+       001  3D Game Controller
+       002  Pinball Device
+       003  Gun Device
+       020  Point Of View
+       021  Turn Right/Left
+       022  Pitch Right/Left
+       023  Roll Forward/Backward
+       024  Move Right/Left
+       025  Move Forward/Backward
+       026  Move Up/Down
+       027  Lean Right/Left
+       028  Lean Forward/Backward
+       029  Height of POV
+       02a  Flipper
+       02b  Secondary Flipper
+       02c  Bump
+       02d  New Game
+       02e  Shoot Ball
+       02f  Player
+       030  Gun Bolt
+       031  Gun Clip
+       032  Gun Selector
+       033  Gun Single Shot
+       034  Gun Burst
+       035  Gun Automatic
+       036  Gun Safety
+       037  Gamepad Fire/Jump
+       038  Gamepad Fun
+       039  Gamepad Trigger
+HUT 07  Keyboard
+       000  No Event
+       001  Keyboard ErrorRollOver
+       002  Keyboard POSTfail
+       003  Keyboard Error Undefined
+       004  A
+       005  B
+       006  C
+       007  D
+       008  E
+       009  F
+       00a  G
+       00b  H
+       00c  I
+       00d  J
+       00e  K
+       00f  L
+       010  M
+       011  N
+       012  O
+       013  P
+       014  Q
+       015  R
+       016  S
+       017  T
+       018  U
+       019  V
+       01a  W
+       01b  X
+       01c  Y
+       01d  Z
+       01e  1 and ! (One and Exclamation)
+       01f  2 and @ (2 and at)
+       020  3 and # (3 and Hash)
+       021  4 and $ (4 and Dollar Sign)
+       022  5 and % (5 and Percent Sign)
+       023  6 and ^ (6 and circumflex)
+       024  7 and & (Seven and Ampersand)
+       025  8 and * (Eight and asterisk)
+       026  9 and ( (Nine and Parenthesis Left)
+       027  0 and ) (Zero and Parenthesis Right)
+       028  Return (Enter)
+       029  Escape
+       02a  Delete (Backspace)
+       02b  Tab
+       02c  Space Bar
+       02d  - and _ (Minus and underscore)
+       02e  = and + (Equal and Plus)
+       02f  [ and { (Bracket and Braces Left)
+       030  ] and } (Bracket and Braces Right)
+       031  \ and | (Backslash and Bar)
+       032  # and ~ (Hash and Tilde, Non-US Keyboard near right shift)
+       033  ; and : (Semicolon and Colon)
+       034  Â´ and " (Accent Acute and Double Quotes)
+       035  ` and ~ (Accent Grace and Tilde)
+       036  , and < (Comma and Less)
+       037  . and > (Period and Greater)
+       038  / and ? (Slash and Question Mark)
+       039  Caps Lock
+       03a  F1
+       03b  F2
+       03c  F3
+       03d  F4
+       03e  F5
+       03f  F6
+       040  F7
+       041  F8
+       042  F9
+       043  F10
+       044  F11
+       045  F12
+       046  Print Screen
+       047  Scroll Lock
+       048  Pause
+       049  Insert
+       04a  Home
+       04b  Page Up
+       04c  Delete Forward (without Changing Position)
+       04d  End
+       04e  Page Down
+       04f  Right Arrow
+       050  Left Arrow
+       051  Down Arrow
+       052  Up Arrow
+       053  Num Lock and Clear
+       054  Keypad / (Division Sign)
+       055  Keypad * (Multiplication Sign)
+       056  Keypad - (Subtraction Sign)
+       057  Keypad + (Addition Sign)
+       058  Keypad Enter
+       059  Keypad 1 and END
+       05a  Keypad 2 and Down Arrow
+       05b  Keypad 3 and Page Down
+       05c  Keypad 4 and Left Arrow
+       05d  Keypad 5 (Tactilei Raised)
+       05f  Keypad 6 and Right Arrow
+       060  Keypad 7 and Home
+       061  Keypad 8 and Up Arrow
+       062  Keypad 8 and Page Up
+       063  Keypad . (decimal delimiter) and Delete
+       064  \ and | (Backslash and Bar, UK and Non-US Keyboard near left shift)
+       065  Keyboard Application (Windows Key for Win95 or Compose)
+       066  Power (not a key)
+       067  Keypad = (Equal Sign)
+       068  F13
+       069  F14
+       06a  F15
+       06b  F16
+       06c  F17
+       06d  F18
+       06e  F19
+       06f  F20
+       070  F21
+       071  F22
+       072  F23
+       073  F24
+       074  Execute
+       075  Help
+       076  Menu
+       077  Select
+       078  Stop
+       079  Again
+       07a  Undo
+       07b  Cut
+       07c  Copy
+       07d  Paste
+       07e  Find
+       07f  Mute
+       080  Volume Up
+       081  Volume Down
+       082  Locking Caps Lock
+       083  Locking Num Lock
+       084  Locking Scroll Lock
+       085  Keypad Comma
+       086  Keypad Equal Sign (AS/400)
+       087  International 1 (PC98)
+       088  International 2 (PC98)
+       089  International 3 (PC98)
+       08a  International 4 (PC98)
+       08b  International 5 (PC98)
+       08c  International 6 (PC98)
+       08d  International 7 (Toggle Single/Double Byte Mode)
+       08e  International 8
+       08f  International 9
+       090  LANG 1 (Hangul/English Toggle, Korea)
+       091  LANG 2 (Hanja Conversion, Korea)
+       092  LANG 3 (Katakana, Japan)
+       093  LANG 4 (Hiragana, Japan)
+       094  LANG 5 (Zenkaku/Hankaku, Japan)
+       095  LANG 6
+       096  LANG 7
+       097  LANG 8
+       098  LANG 9
+       099  Alternate Erase
+       09a  SysReq/Attention
+       09b  Cancel
+       09c  Clear
+       09d  Prior
+       09e  Return
+       09f  Separator
+       0a0  Out
+       0a1  Open
+       0a2  Clear/Again
+       0a3  CrSel/Props
+       0a4  ExSel
+       0e0  Control Left
+       0e1  Shift Left
+       0e2  Alt Left
+       0e3  GUI Left
+       0e4  Control Right
+       0e5  Shift Right
+       0e6  Alt Rigth
+       0e7  GUI Right
+HUT 08  LEDs
+       000  Undefined
+       001  NumLock
+       002  CapsLock
+       003  Scroll Lock
+       004  Compose
+       005  Kana
+       006  Power
+       007  Shift
+       008  Do not disturb
+       009  Mute
+       00a  Tone Enabke
+       00b  High Cut Filter
+       00c  Low Cut Filter
+       00d  Equalizer Enable
+       00e  Sound Field ON
+       00f  Surround On
+       010  Repeat
+       011  Stereo
+       012  Sampling Rate Detect
+       013  Spinning
+       014  CAV
+       015  CLV
+       016  Recording Format Detect
+       017  Off-Hook
+       018  Ring
+       019  Message Waiting
+       01a  Data Mode
+       01b  Battery Operation
+       01c  Battery OK
+       01d  Battery Low
+       01e  Speaker
+       01f  Head Set
+       020  Hold
+       021  Microphone
+       022  Coverage
+       023  Night Mode
+       024  Send Calls
+       025  Call Pickup
+       026  Conference
+       027  Stand-by
+       028  Camera On
+       029  Camera Off
+       02a  On-Line
+       02b  Off-Line
+       02c  Busy
+       02d  Ready
+       02e  Paper-Out
+       02f  Paper-Jam
+       030  Remote
+       031  Forward
+       032  Reverse
+       033  Stop
+       034  Rewind
+       035  Fast Forward
+       036  Play
+       037  Pause
+       038  Record
+       039  Error
+       03a  Usage Selected Indicator
+       03b  Usage In Use Indicator
+       03c  Usage Multi Indicator
+       03d  Indicator On
+       03e  Indicator Flash
+       03f  Indicator Slow Blink
+       040  Indicator Fast Blink
+       041  Indicator Off
+       042  Flash On Time
+       043  Slow Blink On Time
+       044  Slow Blink Off Time
+       045  Fast Blink On Time
+       046  Fast Blink Off Time
+       047  Usage Color Indicator
+       048  Indicator Red
+       049  Indicator Green
+       04a  Indicator Amber
+       04b  Generic Indicator
+       04c  System Suspend
+       04d  External Power Connected
+HUT 09  Buttons
+       000  No Button Pressed
+       001  Button 1 (Primary)
+       002  Button 2 (Secondary)
+       003  Button 3 (Tertiary)
+       004  Button 4
+       005  Button 5
+HUT 0a  Ordinal
+       001  Instance 1
+       002  Instance 2
+       003  Instance 3
+HUT 0b  Telephony
+       000  Unassigned
+       001  Phone
+       002  Answering Machine
+       003  Message Controls
+       004  Handset
+       005  Headset
+       006  Telephony Key Pad
+       007  Programmable Button
+       020  Hook Switch
+       021  Flash
+       022  Feature
+       023  Hold
+       024  Redial
+       025  Transfer
+       026  Drop
+       027  Park
+       028  Forward Calls
+       029  Alternate Function
+       02a  Line
+       02b  Speaker Phone
+       02c  Conference
+       02d  Ring Enable
+       02e  Ring Select
+       02f  Phone Mute
+       030  Caller ID
+       050  Speed Dial
+       051  Store Number
+       052  Recall Number
+       053  Phone Directory
+       070  Voice Mail
+       071  Screen Calls
+       072  Do Not Disturb
+       073  Message
+       074  Answer On/Offf
+       090  Inside Dial Tone
+       091  Outside Dial Tone
+       092  Inside Ring Tone
+       093  Outside Ring Tone
+       094  Priority Ring Tone
+       095  Inside Ringback
+       096  Priority Ringback
+       097  Line Busy Tone
+       098  Recorder Tone
+       099  Call Waiting Tone
+       09a  Confirmation Tone 1
+       09b  Confirmation Tone 2
+       09c  Tones Off
+       09d  Outside Ringback
+       0b0  Key 1
+       0b1  Key 2
+       0b3  Key 3
+       0b4  Key 4
+       0b5  Key 5
+       0b6  Key 6
+       0b7  Key 7
+       0b8  Key 8
+       0b9  Key 9
+       0ba  Key Star
+       0bb  Key Pound
+       0bc  Key A
+       0bd  Key B
+       0be  Key C
+       0bf  Key D
+HUT 0c  Consumer
+       000  Unassigned
+       001  Consumer Control
+       002  Numeric Key Pad
+       003  Programmable Buttons
+       020  +10
+       021  +100
+       022  AM/PM
+       030  Power
+       031  Reset
+       032  Sleep
+       033  Sleep After
+       034  Sleep Mode
+       035  Illumination
+       036  Function Buttons
+       040  Menu
+       041  Menu Pick
+       042  Menu Up
+       043  Menu Down
+       044  Menu Left
+       045  Menu Right
+       046  Menu Escape
+       047  Menu Value Increase
+       048  Menu Value Decrease
+       060  Data on Screen
+       061  Closed Caption
+       062  Closed Caption Select
+       063  VCR/TV
+       064  Broadcast Mode
+       065  Snapshot
+       066  Still
+       080  Selection
+       081  Assign Selection
+       082  Mode Step
+       083  Recall Last
+       084  Enter Channel
+       085  Order Movie
+       086  Channel
+       087  Media Selection
+       088  Media Select Computer
+       089  Media Select TV
+       08a  Media Select WWW
+       08b  Media Select DVD
+       08c  Media Select Telephone
+       08d  Media Select Program Guide
+       08e  Media Select Video Phone
+       08f  Media Select Games
+       090  Media Select Messages
+       091  Media Select CD
+       092  Media Select VCR
+       093  Media Select Tuner
+       094  Quit
+       095  Help
+       096  Media Select Tape
+       097  Media Select Cable
+       098  Media Select Satellite
+       099  Media Select Security
+       09a  Media Select Home
+       09b  Media Select Call
+       09c  Channel Increment
+       09d  Channel Decrement
+       09e  Media Select SAP
+       0a0  VCR Plus
+       0a1  Once
+       0a2  Daily
+       0a3  Weekly
+       0a4  Monthly
+       0b0  Play
+       0b1  Pause
+       0b2  Record
+       0b3  Fast Forward
+       0b4  Rewind
+       0b5  Scan Next Track
+       0b6  Scan Previous Track
+       0b7  Stop
+       0b8  Eject
+       0b9  Random Play
+       0ba  Select Disc
+       0bb  Enter Disc
+       0bc  Repeat
+       0bd  Tracking
+       0be  Track Normal
+       0bf  Slow Tracking
+       0c0  Frame Forward
+       0c1  Frame Back
+       0c2  Mark
+       0c3  Clear Mark
+       0c4  Repeat from Mark
+       0c5  Return to Mark
+       0c6  Search Mark Forward
+       0c7  Search Mark Backward
+       0c8  Counter Reset
+       0c9  Show Counter
+       0ca  Tracking Increment
+       0cb  Tracking Decrement
+       0cc  Stop/Eject
+       0cd  Play/Pause
+       0ce  Play/Skip
+       0e0  Volume
+       0e1  Balance
+       0e2  Mute
+       0e3  Bass
+       0e4  Treble
+       0e5  Bass Boost
+       0e6  Surround Mode
+       0e7  Loudness
+       0e8  MPX
+       0e9  Volume Increment
+       0ea  Volume Decrement
+       0f0  Speed Select
+       0f1  Playback Speed
+       0f2  Standard Play
+       0f3  Long Play
+       0f4  Extended Play
+       0f5  Slow
+       100  Fan Enable
+       101  Fan Speed
+       102  Light Enable
+       103  Light Illumination Level
+       104  Climate Control Enable
+       105  Room Temperature
+       106  Security Enable
+       107  Fire Alarm
+       108  Police Alarm
+       150  Balance Right
+       151  Balance Left
+       152  Bass Increment
+       153  Bass Decrement
+       154  Treble Increment
+       155  Treble Decrement
+       160  Speaker System
+       161  Channel Left
+       162  Channel Right
+       163  Channel Center
+       164  Channel Front
+       165  Channel Center Front
+       166  Channel Side
+       167  Channel Surround
+       168  Channel Low Frequency Enhancement
+       169  Channel Top
+       16a  Channel Unknown
+       170  Sub-Channel
+       171  Sub-Channel Increment
+       172  Sub-Channel Decrement
+       173  Alternative Audio Increment
+       174  Alternative Audio Decrement
+       180  Application Launch Buttons
+       181  AL Launch Button Configuration Tool
+       182  AL Launch Button Configuration
+       183  AL Consumer Control Configuration
+       184  AL Word Processor
+       185  AL Text Editor
+       186  AL Spreadsheet
+       187  AL Graphics Editor
+       188  AL Presentation App
+       189  AL Database App
+       18a  AL Email Reader
+       18b  AL Newsreader
+       18c  AL Voicemail
+       18d  AL Contacts/Address Book
+       18e  AL Calendar/Schedule
+       18f  AL Task/Project Manager
+       190  AL Log/Jounal/Timecard
+       191  AL Checkbook/Finance
+       192  AL Calculator
+       193  AL A/V Capture/Playback
+       194  AL Local Machine Browser
+       195  AL LAN/Wan Browser
+       196  AL Internet Browser
+       197  AL Remote Networking/ISP Connect
+       198  AL Network Conference
+       199  AL Network Chat
+       19a  AL Telephony/Dialer
+       19b  AL Logon
+       19c  AL Logoff
+       19d  AL Logon/Logoff
+       19e  AL Terminal Local/Screensaver
+       19f  AL Control Panel
+       1a0  AL Command Line Processor/Run
+       1a1  AL Process/Task Manager
+       1a2  AL Select Task/Application
+       1a3  AL Next Task/Application
+       1a4  AL Previous Task/Application
+       1a5  AL Preemptive Halt Task/Application
+       200  Generic GUI Application Controls
+       201  AC New
+       202  AC Open
+       203  AC CLose
+       204  AC Exit
+       205  AC Maximize
+       206  AC Minimize
+       207  AC Save
+       208  AC Print
+       209  AC Properties
+       21a  AC Undo
+       21b  AC Copy
+       21c  AC Cut
+       21d  AC Paste
+       21e  AC Select All
+       21f  AC Find
+       220  AC Find and Replace
+       221  AC Search
+       222  AC Go To
+       223  AC Home
+       224  AC Back
+       225  AC Forward
+       226  AC Stop
+       227  AC Refresh
+       228  AC Previous Link
+       229  AC Next Link
+       22b  AC History
+       22c  AC Subscriptions
+       22d  AC Zoom In
+       22e  AC Zoom Out
+       22f  AC Zoom
+       230  AC Full Screen View
+       231  AC Normal View
+       232  AC View Toggle
+       233  AC Scroll Up
+       234  AC Scroll Down
+       235  AC Scroll
+       236  AC Pan Left
+       237  AC Pan Right
+       238  AC Pan
+       239  AC New Window
+       23a  AC Tile Horizontally
+       23b  AC Tile Vertically
+       23c  AC Format
+HUT 0d  Digitizer
+       000  Undefined
+       001  Digitizer
+       002  Pen
+       003  Light Pen
+       004  Touch Screen
+       005  Touch Pad
+       006  White Board
+       007  Coordinate Measuring Machine
+       008  3D Digitizer
+       009  Stereo Plotter
+       00a  Articulated Arm
+       00b  Armature
+       00c  Multiple Point Digitizer
+       00d  Free Space Wand
+       020  Stylus
+       021  Puck
+       022  Finger
+       030  Tip Pressure
+       031  Barrel Pressure
+       032  In Range
+       033  Touch
+       034  Untouch
+       035  Tap
+       036  Quality
+       037  Data Valid
+       038  Transducer Index
+       039  Tablet Function Keys
+       03a  Program Change Keys
+       03b  Battery Strength
+       03c  Invert
+       03d  X Tilt
+       03e  Y Tilt
+       03f  Azimuth
+       040  Altitude
+       041  Twist
+       042  Tip Switch
+       043  Secondary Tip Switch
+       044  Barrel Switch
+       045  Eraser
+       046  Tablet Pick
+HUT 0f  PID Page
+       000  Undefined
+       001  Physical Interface Device
+       020  Normal
+       021  Set Effect Report
+       022  Effect Block Index
+       023  Parameter Block Offset
+       024  ROM Flag
+       025  Effect Type
+       026  ET Constant Force
+       027  ET Ramp
+       028  ET Custom Force Data
+       030  ET Square
+       031  ET Sine
+       032  ET Triangle
+       033  ET Sawtooth Up
+       034  ET Sawtooth Down
+       040  ET Spring
+       041  ET Damper
+       042  ET Inertia
+       043  ET Friction
+       050  Duration
+       051  Sample Period
+       052  Gain
+       053  Trigger Button
+       054  Trigger Repeat Interval
+       055  Axes Enable
+       056  Direction Enable
+       057  Direction
+       058  Type Specific Block Offset
+       059  Block Type
+       05A  Set Envelope Report
+       05B  Attack Level
+       05C  Attack Time
+       05D  Fade Level
+       05E  Fade Time
+       05F  Set Condition Report
+       060  CP Offset
+       061  Positive Coefficient
+       062  Negative Coefficient
+       063  Positive Saturation
+       064  Negative Saturation
+       065  Dead Band
+       066  Download Force Sample
+       067  Isoch Custom Force Enable
+       068  Custom Force Data Report
+       069  Custom Force Data
+       06A  Custom Force Vendor Defined Data
+       06B  Set Custom Force Report
+       06C  Custom Force Data Offset
+       06D  Sample Count
+       06E  Set Periodic Report
+       06F  Offset
+       070  Magnitude
+       071  Phase
+       072  Period
+       073  Set Constant Force Report
+       074  Set Ramp Force Report
+       075  Ramp Start
+       076  Ramp End
+       077  Effect Operation Report
+       078  Effect Operation
+       079  Op Effect Start
+       07A  Op Effect Start Solo
+       07B  Op Effect Stop
+       07C  Loop Count
+       07D  Device Gain Report
+       07E  Device Gain
+       07F  PID Pool Report
+       080  RAM Pool Size
+       081  ROM Pool Size
+       082  ROM Effect Block Count
+       083  Simultaneous Effects Max
+       084  Pool Alignment
+       085  PID Pool Move Report
+       086  Move Source
+       087  Move Destination
+       088  Move Length
+       089  PID Block Load Report
+       08B  Block Load Status
+       08C  Block Load Success
+       08D  Block Load Full
+       08E  Block Load Error
+       08F  Block Handle
+       090  PID Block Free Report
+       091  Type Specific Block Handle
+       092  PID State Report
+       094  Effect Playing
+       095  PID Device Control Report
+       096  PID Device Control
+       097  DC Enable Actuators
+       098  DC Disable Actuators
+       099  DC Stop All Effects
+       09A  DC Device Reset
+       09B  DC Device Pause
+       09C  DC Device Continue
+       09F  Device Paused
+       0A0  Actuators Enabled
+       0A4  Safety Switch
+       0A5  Actuator Override Switch
+       0A6  Actuator Power
+       0A7  Start Delay
+       0A8  Parameter Block Size
+       0A9  Device Managed Pool
+       0AA  Shared Parameter Blocks
+       0AB  Create New Effect Report
+       0AC  RAM Pool Available
+HUT 10  Unicode
+HUT 14  Alphanumeric Display
+       000  Undefined
+       001  Alphanumeric Display
+       020  Display Attributes Report
+       021  ASCII Character Set
+       022  Data Read Back
+       023  Font Read Back
+       024  Display Control Report
+       025  Clear Display
+       026  Display Enable
+       027  Screen Saver Delay
+       028  Screen Saver Enable
+       029  Vertical Scroll
+       02a  Horizontal Scroll
+       02b  Character Report
+       02c  Display Data
+       02d  Display Status
+       02e  Stat Not Ready
+       02f  Stat Ready
+       030  Err Not a loadable Character
+       031  Err Font Data Cannot Be Read
+       032  Cursur Position Report
+       033  Row
+       034  Column
+       035  Rows
+       036  Columns
+       037  Cursor Pixel Positioning
+       038  Cursor Mode
+       039  Cursor Enable
+       03a  Cursor Blink
+       03b  Font Report
+       03c  Font Data
+       03d  Character Width
+       03e  Character Height
+       03f  Character Spacing Horizontal
+       040  Character Spacing Vertical
+       041  Unicode Character Set
+HUT 80  USB Monitor
+       001  Monitor Control
+       002  EDID Information
+       003  VDIF Information
+       004  VESA Version
+HUT 81  USB Monitor Enumerated Values
+HUT 82  Monitor VESA Virtual Controls
+       001  Degauss
+       010  Brightness
+       012  Contrast
+       016  Red Video Gain
+       018  Green Video Gain
+       01a  Blue Video Gain
+       01c  Focus
+       020  Horizontal Position
+       022  Horizontal Size
+       024  Horizontal Pincushion
+       026  Horizontal Pincushion Balance
+       028  Horizontal Misconvergence
+       02a  Horizontal Linearity
+       02c  Horizontal Linearity Balance
+       030  Vertical Position
+       032  Vertical Size
+       034  Vertical Pincushion
+       036  Vertical Pincushion Balance
+       038  Vertical Misconvergence
+       03a  Vertical Linearity
+       03c  Vertical Linearity Balance
+       040  Parallelogram Balance (Key Distortion)
+       042  Trapezoidal Distortion (Key)
+       044  Tilt (Rotation)
+       046  Top Corner Distortion Control
+       048  Top Corner Distortion Balance
+       04a  Bottom Corner Distortion Control
+       04c  Bottom Corner Distortion Balance
+       056  Horizontal Moire
+       058  Vertical Moire
+       05e  Input Level Select
+       060  Input Source Select
+       06c  Red Video Black Level
+       06e  Green Video Black Level
+       070  Blue Video Black Level
+       0a2  Auto Size Center
+       0a4  Polarity Horizontal Sychronization
+       0a6  Polarity Vertical Synchronization
+       0aa  Screen Orientation
+       0ac  Horizontal Frequency in Hz
+       0ae  Vertical Frequency in 0.1 Hz
+       0b0  Settings
+       0ca  On Screen Display (OSD)
+       0d4  Stereo Mode
+HUT 84  Power Device Page
+       000  Undefined
+       001  iName
+       002  Present Status
+       003  Changed Status
+       004  UPS
+       005  Power Supply
+       010  Battery System
+       011  Battery System ID
+       012  Battery
+       013  Battery ID
+       014  Charger
+       015  Charger ID
+       016  Power Converter
+       017  Power Converter ID
+       018  Outlet System
+       019  Outlet System ID
+       01a  Input
+       01b  Input ID
+       01c  Output
+       01d  Output ID
+       01e  Flow
+       01f  Flow ID
+       020  Outlet
+       021  Outlet ID
+       022  Gang
+       023  Gang ID
+       024  Power Summary
+       025  Power Summary ID
+       030  Voltage
+       031  Current
+       032  Frequency
+       033  Apparent Power
+       034  Active Power
+       035  Percent Load
+       036  Temperature
+       037  Humidity
+       038  Bad Count
+       040  Config Voltage
+       041  Config Current
+       042  Config Frequency
+       043  Config Apparent Power
+       044  Config Active Power
+       045  Config Percent Load
+       046  Config Temperature
+       047  Config Humidity
+       050  Switch On Control
+       051  Switch Off Control
+       052  Toggle Control
+       053  Low Voltage Transfer
+       054  High Voltage Transfer
+       055  Delay Before Reboot
+       056  Delay Before Startup
+       057  Delay Before Shutdown
+       058  Test
+       059  Module Reset
+       05a  Audible Alarm Control
+       060  Present
+       061  Good
+       062  Internal Failure
+       063  Voltage out of range
+       064  Frequency out of range
+       065  Overload
+       066  Over Charged
+       067  Over Temperature
+       068  Shutdown Requested
+       069  Shutdown  Imminent
+       06a  Reserved
+       06b  Switch On/Off
+       06c  Switchable
+       06d  Used
+       06e  Boost
+       06f  Buck
+       070  Initialized
+       071  Tested
+       072  Awaiting Power
+       073  Communication Lost
+       0fd  iManufacturer
+       0fe  iProduct
+       0ff  iSerialNumber
+HUT 85  Battery System Page
+       000  Undefined
+       001  SMB Battery Mode
+       002  SMB Battery Status
+       003  SMB Alarm Warning
+       004  SMB Charger Mode
+       005  SMB Charger Status
+       006  SMB Charger Spec Info
+       007  SMB Selector State
+       008  SMB Selector Presets
+       009  SMB Selector Info
+       010  Optional Mfg. Function 1
+       011  Optional Mfg. Function 2
+       012  Optional Mfg. Function 3
+       013  Optional Mfg. Function 4
+       014  Optional Mfg. Function 5
+       015  Connection to SMBus
+       016  Output Connection
+       017  Charger Connection
+       018  Battery Insertion
+       019  Use Next
+       01a  OK to use
+       01b  Battery  Supported
+       01c  SelectorRevision
+       01d  Charging Indicator
+       028  Manufacturer Access
+       029  Remaining Capacity Limit
+       02a  Remaining Time Limit
+       02b  At Rate
+       02c  Capacity Mode
+       02d  Broadcast To Charger
+       02e  Primary Battery
+       02f  Charge Controller
+       040  Terminate Charge
+       041  Terminate Discharge
+       042  Below Remaining Capacity Limit
+       043  Remaining Time Limit Expired
+       044  Charging
+       045  Discharging
+       046  Fully Charged
+       047  Fully Discharged
+       048  Conditioning Flag
+       049  At Rate OK
+       04a  SMB Error Code
+       04b  Need Replacement
+       060  At Rate Time To Full
+       061  At Rate Time To Empty
+       062  Average Current
+       063  Max Error
+       064  Relative State Of Charge
+       065  Absolute State Of Charge
+       066  Remaining Capacity
+       067  Full Charge Capacity
+       068  Run Time To Empty
+       069  Average Time To Empty
+       06a  Average Time To Full
+       06b  Cycle Count
+       080  Batt. Pack Model Level
+       081  Internal Charge Controller
+       082  Primary Battery Support
+       083  Design Capacity
+       084  Specification Info
+       085  Manufacturer Date
+       086  Serial Number
+       087  iManufacturerName
+       088  iDeviceName
+       089  iDeviceChemistry
+       08a  Manufacturer Data
+       08b  Rechargeable
+       08c  Warning Capacity Limit
+       08d  Capacity Granularity 1
+       08e  Capacity Granularity 2
+       08f  iOEMInformation
+       0c0  Inhibit Charge
+       0c1  Enable Polling
+       0c2  Reset To Zero
+       0d0  AC Present
+       0d1  Battery Present
+       0d2  Power Fail
+       0d3  Alarm Inhibited
+       0d4  Thermistor Under Range
+       0d5  Thermistor Hot
+       0d6  Thermistor Cold
+       0d7  Thermistor Over Range
+       0d8  Voltage Out Of Range
+       0d9  Current Out Of Range
+       0da  Current Not Regulated
+       0db  Voltage Not Regulated
+       0dc  Master Mode
+       0f0  Charger Selector Support
+       0f1  Charger Spec
+       0f2  Level 2
+       0f3  Level 3
+HUT 86  Power Pages
+HUT 87  Power Pages
+HUT 8c  Bar Code Scanner Page (POS)
+HUT 8d  Scale Page (POS)
+HUT 90  Camera Control Page
+HUT 91  Arcade Control Page
+HUT f0  Cash Device
+       0f1  Cash Drawer
+       0f2  Cash Drawer Number
+       0f3  Cash Drawer Set
+       0f4  Cash Drawer Status
+HUT ff  Vendor Specific
+
+# List of Languages
+
+# Syntax:
+# L language_id  language_name
+#      dialect_id  dialect_name
+
+L 0001  Arabic
+       01  Saudi Arabia
+       02  Iraq
+       03  Egypt
+       04  Libya
+       05  Algeria
+       06  Morocco
+       07  Tunesia
+       08  Oman
+       09  Yemen
+       0a  Syria
+       0b  Jordan
+       0c  Lebanon
+       0d  Kuwait
+       0e  U.A.E
+       0f  Bahrain
+       10  Qatar
+L 0002  Bulgarian
+L 0003  Catalan
+L 0004  Chinese
+       01  Traditional
+       02  Simplified
+       03  Hongkong SAR, PRC
+       04  Singapore
+       05  Macau SAR
+L 0005  Czech
+L 0006  Danish
+L 0007  German
+       01  German
+       02  Swiss
+       03  Austrian
+       04  Luxembourg
+       05  Liechtenstein
+L 0008  Greek
+L 0009  English
+       01  US
+       02  UK
+       03  Australian
+       04  Canadian
+       05  New Zealand
+       06  Ireland
+       07  South Africa
+       08  Jamaica
+       09  Carribean
+       0a  Belize
+       0b  Trinidad
+       0c  Zimbabwe
+       0d  Philippines
+L 000a  Spanish
+       01  Castilian
+       02  Mexican
+       03  Modern
+       04  Guatemala
+       05  Costa Rica
+       06  Panama
+       07  Dominican Republic
+       08  Venzuela
+       09  Colombia
+       0a  Peru
+       0b  Argentina
+       0c  Ecuador
+       0d  Chile
+       0e  Uruguay
+       0f  Paraguay
+       10  Bolivia
+       11  El Salvador
+       12  Honduras
+       13  Nicaragua
+       14  Puerto Rico
+L 000b  Finnish
+L 000c  French
+       01  French
+       02  Belgian
+       03  Canadian
+       04  Swiss
+       05  Luxembourg
+       06  Monaco
+L 000d  Hebrew
+L 000e  Hungarian
+L 000f  Idelandic
+L 0010  Italian
+       01  Italian
+       02  Swiss
+L 0011  Japanese
+L 0012  Korean
+       01  Korean
+L 0013  Dutch
+       01  Dutch
+       02  Belgian
+L 0014  Norwegian
+       01  Bokmal
+       02  Nynorsk
+L 0015  Polish
+L 0016 Portuguese
+       01  Portuguese
+       02  Brazilian
+L 0017  forgotten
+L 0018  Romanian
+L 0019  Russian
+L 001a  Serbian
+       01  Croatian
+       02  Latin
+       03  Cyrillic
+L 001b  Slovak
+L 001c  Albanian
+L 001d  Swedish
+       01  Swedish
+       02  Finland
+L 001e  Thai
+L 001f  Turkish
+L 0020  Urdu
+       01  Pakistan
+       02  India
+L 0021  Indonesian
+L 0022  Ukrainian
+L 0023  Belarusian
+L 0024  Slovenian
+L 0025  Estonian
+L 0026  Latvian
+L 0027  Lithuanian
+       01  Lithuanian
+L 0028  forgotten
+L 0029  Farsi
+L 002a  Vietnamese
+L 002b  Armenian
+L 002c  Azeri
+       01  Cyrillic
+       02  Latin
+L 002d  Basque
+L 002e  forgotten
+L 002f  Macedonian
+L 0036  Afrikaans
+L 0037  Georgian
+L 0038  Faeroese
+L 0039  Hindi
+L 003e  Malay
+       01  Malaysia
+       02  Brunei Darassalam
+L 003f  Kazak
+L 0041  Awahili
+L 0043  Uzbek
+       01  Latin
+       02  Cyrillic
+L 0044  Tatar
+L 0045  Bengali
+L 0046  Punjabi
+L 0047  Gujarati
+L 0048  Oriya
+L 0049  Tamil
+L 004a  Telugu
+L 004b  Kannada
+L 004c  Malayalam
+L 004d  Assamese
+L 004e  Marathi
+L 004f  Sanskrit
+L 0057  Konkani
+L 0058  Manipuri
+L 0059  Sindhi
+L 0060  Kashmiri
+       02  India
+L 0061  Nepali
+       02  India
+
+# HID Descriptor bCountryCode
+# HID Specification 1.11 (2001-06-27) page 23
+#
+# Syntax:
+# HCC country_code keymap_type
+
+HCC 00  Not supported
+HCC 01  Arabic
+HCC 02  Belgian
+HCC 03  Canadian-Bilingual
+HCC 04  Canadian-French
+HCC 05  Czech Republic
+HCC 06  Danish
+HCC 07  Finnish
+HCC 08  French
+HCC 09  German
+HCC 10  Greek
+HCC 11  Hebrew
+HCC 12  Hungary
+HCC 13  International (ISO)
+HCC 14  Italian
+HCC 15  Japan (Katakana)
+HCC 16  Korean
+HCC 17  Latin American
+HCC 18  Netherlands/Dutch
+HCC 19  Norwegian
+HCC 20  Persian (Farsi)
+HCC 21  Poland
+HCC 22  Portuguese
+HCC 23  Russia
+HCC 24  Slovakia
+HCC 25  Spanish
+HCC 26  Swedish
+HCC 27  Swiss/French
+HCC 28  Swiss/German
+HCC 29  Switzerland
+HCC 30  Taiwan
+HCC 31  Turkish-Q
+HCC 32  UK
+HCC 33  US
+HCC 34  Yugoslavia
+HCC 35  Turkish-F
+
+# List of Video Class Terminal Types
+
+# Syntax:
+# VT terminal_type  terminal_type_name
+
+VT 0100  USB Vendor Specific
+VT 0101  USB Streaming
+VT 0200  Input Vendor Specific
+VT 0201  Camera Sensor
+VT 0202  Sequential Media
+VT 0300  Output Vendor Specific
+VT 0301  Generic Display
+VT 0302  Sequential Media
+VT 0400  External Vendor Specific
+VT 0401  Composite Video
+VT 0402  S-Video
+VT 0403  Component Video