# HidDevice

`import { HidDevice } from "destack:device/binding";`

HID device descriptor.

```ds title="HidDevice"
export struct HidDevice {
    id: string;
    path: Path;
    name: string;
    bus: HidBus;
    vendorId: uint16;
    productId: uint16;
    manufacturer: string;
    product: string;
    serialNumber: string;
    usagePage: uint16;
    usage: uint16;
    maxInputReportBytes: uint32;
    maxOutputReportBytes: uint32;
    maxFeatureReportBytes: uint32;
    isConnected: boolean;
    isVirtual: boolean;
    isSystem: boolean;
}
```

[language/library/src/device/binding/hid.ds:49:84](https://github.com/destack-sh/destack/blob/main/language/library/src/device/binding/hid.ds#L49-L84)

## Members

### `id: string`

Stable HID device identifier.

### `path: Path`

Host device path when available.

### `name: string`

Host-visible device name.

### `bus: HidBus`

Host bus kind.

### `vendorId: uint16`

Vendor identifier when available.

### `productId: uint16`

Product identifier when available.

### `manufacturer: string`

Manufacturer string when available.

### `product: string`

Product string when available.

### `serialNumber: string`

Serial number when available.

### `usagePage: uint16`

Primary HID usage page when available.

### `usage: uint16`

Primary HID usage when available.

### `maxInputReportBytes: uint32`

Maximum input report length in bytes when known.

### `maxOutputReportBytes: uint32`

Maximum output report length in bytes when known.

### `maxFeatureReportBytes: uint32`

Maximum feature report length in bytes when known.

### `isConnected: boolean`

Whether this device is currently connected.

### `isVirtual: boolean`

Whether this device is virtual or emulated.

### `isSystem: boolean`

Whether this device is provided by the system stack.
