---
title: "init(descriptor:vendorID:productID:transport:product:manufacturer:modelNumber:versionNumber:serialNumber:uniqueID:locationID:localizationCode:extraProperties:)"
framework: corehid
role: symbol
role_heading: Initializer
path: "corehid/hidvirtualdevice/properties/init(descriptor:vendorid:productid:transport:product:manufacturer:modelnumber:versionnumber:serialnumber:uniqueid:locationid:localizationcode:extraproperties:)"
---

# init(descriptor:vendorID:productID:transport:product:manufacturer:modelNumber:versionNumber:serialNumber:uniqueID:locationID:localizationCode:extraProperties:)

Creates a set of properties for a virtual device.

## Declaration

```swift
init(descriptor: Data, vendorID: UInt32, productID: UInt32? = nil, transport: HIDDeviceTransport? = nil, product: String? = nil, manufacturer: String? = nil, modelNumber: String? = nil, versionNumber: UInt64? = nil, serialNumber: String? = nil, uniqueID: String? = nil, locationID: UInt64? = nil, localizationCode: HIDDeviceLocalizationCode? = nil, extraProperties: Dictionary<String, AnyObject>? = nil)
```

## Parameters

- `descriptor`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/descriptor.
- `vendorID`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/vendorID.
- `productID`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/productID.
- `transport`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/transport.
- `product`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/product.
- `manufacturer`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/manufacturer.
- `modelNumber`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/modelNumber.
- `versionNumber`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/versionNumber.
- `serialNumber`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/serialNumber.
- `uniqueID`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/uniqueID.
- `locationID`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/locationID.
- `localizationCode`: See doc://com.apple.CoreHID/documentation/CoreHID/HIDVirtualDevice/Properties/localizationCode.
- `extraProperties`: A catch-all for uncommon or device specific properties that aren’t listed above. This parameter is typically only for advanced users that need additional control over device functionality.

## Mentioned in

Creating virtual devices

## Discussion

Discussion Properties must be specified during the creation of a virtual device using init(properties:).
