USB Generic Driver

Some USB applications are too specialized or too new to fit well into an existing class framework. For these products, MCCI® provides a general purpose USB Generic Driver, which can be used with any device class (including vendor-specific classes) without developing new drivers.

Any Win32 application can use the standard Windows CreateFile, ReadFile, WriteFile, and DeviceIoControl APIs to access the device using the generic driver. No kernel-mode programming is needed.

The generic driver is useful for:

  1. industrial measurement and control
  2. product prototyping and testing
  3. migrating special purpose ISA or PCI devices to USB

The generic driver API allows applications to:

  1. discover the devices that are present,
  2. read device descriptors and structural information,
  3. select alternate interfaces and configurations,
  4. issue read and write operations to bulk, interrupt and isochronous pipes,
  5. issue arbitrary control operations to the default pipe,
  6. control operation timeouts for each pipe,
  7. reset and abort each pipe, and
  8. force the entire device to be reenumerated.

MCCI uses the generic driver in our device test tools such as MSCDVT. It's very easy to use the SetupDI APIs to temporarily override an in-box class driver with the generic driver. After loading the generic driver against a specific device instance, the test application then exercises the protocol implementation by issuing valid (and invalid) commands, and checking the device's response. At the end of test run, the test application restores the default driver. No pre-written INF file is required; any device ID can be accommodated with this approach.

Supported Features

  • Up to 999 instances per system
  • Multiple configurations per device
  • Multiple interfaces per interface
  • Multiple alternate settings per interface
  • Can be used at device level or to control a single function of a multi-function device
  • Supports selective suspend on idle
  • Unique device manager strings for each customer
  • One 32-bit driver image supports all 32-bit operating system
  • One 64-bit driver image supports all 64-bit operating systems

Supported Operating Systems

  • Windows 8.1 (32- or 64 bit)
  • Windows 8 (32- or 64-bit)
  • Windows 7 (32- or 64-bit)
  • Windows Vista (32- or 64-bit)
  • Windows XP (32- or 64-bit)

Supported Endpoint Types

  • Control
  • Bulk IN and OUT
  • Interrupt IN and OUT
  • Isochronous IN and OUT

What's Included

The basic package includes the following components:

  • USB Generic Driver Files
  • USBIOEX application
  • "Generic Driver OEM Guide"