This section contains the general information about the USB Monitoring Control library (USBMC). It is structurally divided into the following sections:
HHD USB Monitoring library provides USB monitoring functionality for your application. It collects and parses USB packets so that it is very easy to use/parse their content in your application. The library lets you enumerate all installed USB devices (Mass Storage class devices like flash drives, HID devices like mice or keyboards etc). You can attach to any of them and collect/analyze data that is being transferred between this particular device and host (computer). The Monitor object can be attached to the device at any time, no matter if the device is being currently used or not. For example flash drive could be ejected, but it still appears during enumeration.
USBMC, The Library, library, control
The USB Monitoring Control library
User or client code
Code in any language that instantiates the USBMC and calls its methods
The monitored application
The application that has the monitored USB device open.
Library Features
The HHD Software USB Monitoring Control library offers the following functionality:
Support for PnP and virtual USB devices with hot-plug and hot-unplug functionality.
Full support for USB 2.0, USB 3.0 and USB 3.1.
Interception of all data read from and written to the USB device.
Support for Windows 7, Windows 8, Windows 8.1 and Windows 10 as well as corresponding server editions. Both 32-bit and 64-bit versions are supported.
Provides two high-performance mechanisms: one for native code (direct COM interfaces) and one for managed code * (automation-compatible interface).
High compatibility with all modern development environments, including Microsoft Visual Studio 2012 (or later), Embarcadero RAD Studio XE 4 (or later).
Library client code can be written in any language, including C++, Delphi, C#, VB.NET and any other CLR-compatible language.
“Layered parsing” technology for native interface allows you to skip several parsing steps in order to optimize performance.