<!--
{
  "availability" : [
    "DriverKit: 24.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MIDIDriverKit",
  "identifier" : "/documentation/MIDIDriverKit/IOUserMIDIEntity",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "MIDIDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserMIDIEntity"
  },
  "title" : "IOUserMIDIEntity"
}
-->

# IOUserMIDIEntity

```
class IOUserMIDIEntity;
```

## Topics

### Instance Methods

[`kern_return_t AddDestination(IOUserMIDIDestination *destination);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/AddDestination)

[`kern_return_t AddSource(IOUserMIDISource *source);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/AddSource)

[`virtual IOUserMIDIClassID GetBaseClassID() const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetBaseClassID)

[`virtual IOUserMIDIClassID GetClassID() const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetClassID)

[`OSSharedPtr<IOUserMIDIDestination> GetDestination(uint32_t index) const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetDestination)

[`OSSharedPtr<OSArray> GetDestinations() const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetDestinations)

[`OSSharedPtr<IOUserMIDISource> GetSource(uint32_t index) const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetSource)

[`OSSharedPtr<OSArray> GetSources() const;`](/documentation/MIDIDriverKit/IOUserMIDIEntity/GetSources)

[`kern_return_t RemoveDestination(IOUserMIDIDestination *destination);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/RemoveDestination)

[`kern_return_t RemoveSource(IOUserMIDISource *source);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/RemoveSource)

[`virtual kern_return_t SetProperties(OSDictionary *propertyDictionary);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/SetProperties)

[`virtual void free();`](/documentation/MIDIDriverKit/IOUserMIDIEntity/free)

[`virtual bool init(IOUserMIDIDriver *driver, IOUserMIDIDevice *device, OSString *name, IOUserMIDIProtocolID protocol, uint32_t numSources, uint32_t numDestinations);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/init)

### Type Methods

[`static OSSharedPtr<IOUserMIDIEntity> Create(IOUserMIDIDriver *driver, IOUserMIDIDevice *device, OSString *name, IOUserMIDIProtocolID protocol, uint32_t numSources, uint32_t numDestinations);`](/documentation/MIDIDriverKit/IOUserMIDIEntity/Create)

## Relationships

### Inherits From

[`IOUserMIDIObject`](/documentation/MIDIDriverKit/IOUserMIDIObject)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)