<!--
{
  "availability" : [
    "macCatalyst: 14.0.0 -",
    "macOS: 10.15.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "IOUSBHost",
  "identifier" : "/documentation/IOUSBHost/IOUSBHostInterface",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "IOUSBHost"
    ],
    "preciseIdentifier" : "c:objc(cs)IOUSBHostInterface"
  },
  "title" : "IOUSBHostInterface"
}
-->

# IOUSBHostInterface

The class for accessing USB-related services.

```
class IOUSBHostInterface
```

## Overview

Use this class to create pipes, retrieve descriptors, send device requests, and enable power savings. Create an instance of the class with [`initWithIOService:options:queue:error:interestHandler:`](/documentation/IOUSBHost/IOUSBHostObject/initWithIOService:options:queue:error:interestHandler:).

## Topics

### Finding Interfaces

[`+  createMatchingDictionaryWithVendorID:productID:bcdDevice:interfaceNumber:configurationValue:interfaceClass:interfaceSubclass:interfaceProtocol:speed:productIDArray:`](/documentation/IOUSBHost/IOUSBHostInterface/createMatchingDictionaryWithVendorID:productID:bcdDevice:interfaceNumber:configurationValue:interfaceClass:interfaceSubclass:interfaceProtocol:speed:productIDArray:)

Creates a matching dictionary to find a USB interface.

### Retrieving Function Descriptors

[`configurationDescriptor`](/documentation/IOUSBHost/IOUSBHostInterface/configurationDescriptor)

The configuration descriptor for the interface.

[`interfaceDescriptor`](/documentation/IOUSBHost/IOUSBHostInterface/interfaceDescriptor)

The descriptor for the interface.

### Managing Pipes

[`-  selectAlternateSetting:error:`](/documentation/IOUSBHost/IOUSBHostInterface/selectAlternateSetting(_:))

Selects an alternative setting for the interface.

[`-  copyPipeWithAddress:error:`](/documentation/IOUSBHost/IOUSBHostInterface/copyPipe(withAddress:))

Copies a pipe for a specific endpoint address.

### Enabling Power Savings

[`idleTimeout`](/documentation/IOUSBHost/IOUSBHostInterface/idleTimeout)

The current idle suspend timeout.

[`-  setIdleTimeout:error:`](/documentation/IOUSBHost/IOUSBHostInterface/setIdleTimeout(_:))

Sets the desired idle suspend timeout for the interface.

### Instance Methods

[`-  initWithIOService:options:queue:error:interestHandler:`](/documentation/IOUSBHost/IOUSBHostInterface/initWithIOService:options:queue:error:interestHandler:)

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`IOUSBHostObject`](/documentation/IOUSBHost/IOUSBHostObject)

---

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)