USB Monitoring

This section describes types and facilities used for monitoring USB devices.

import "io_usbmon.jncx"

// typedefs

typedef io.ReadOnlyStreamEvents io.UsbMonEvents;

// enums

enum io.win.URB_FUNCTION;
enum io.win.USBD_STATUS;
bitflag enum io.UsbEnumFlags;
bitflag enum io.UsbMonEnumFlags;
bitflag enum io.UsbMonOptions;
bitflag enum io.UsbMonTransferFlags;

// structs

struct io.UsbDeviceEntry;
struct io.UsbMonDeviceDesc;
struct io.UsbMonDeviceDescBase;
struct io.UsbMonTransferHdr;

// classes

class io.UsbMonitor;

// global functions

io.UsbDeviceEntry const* io.enumerateUsbDevices(
    io.UsbEnumFlags flags,
    size_t* count = null
);

io.UsbDeviceEntry const* io.enumerateUsbDevices(size_t* count = null);
io.UsbDevice* const* errorcode io.enumerateUsbDevicesNoDesc(size_t* count = null);
bool io.detectUsbMon();

io.UsbMonDeviceDesc const* io.enumerateUsbMonDevices(
    io.UsbMonEnumFlags flags,
    size_t* count = null
);

io.UsbMonDeviceDesc const* io.enumerateUsbMonDevices(size_t* count = null);