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

# IOUSBHostPipe

The class that sends control, bulk, interrupt, and isochronous input/output requests for function drivers, and manages stream capabilities.

```
class IOUSBHostPipe
```

## Overview

The client creates pipe objects using [`copyPipe(withAddress:)`](/documentation/IOUSBHost/IOUSBHostInterface/copyPipe(withAddress:)).

## Topics

### Sending Bulk and Interrupt I/O

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

The completion handler for asynchronous control, bulk, and interrupt transfers.

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

The default completion timeout for input/output requests.

[`-  enqueueIORequestWithData:completionTimeout:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueIORequest(with:completionTimeout:completionHandler:))

Enqueues an input/output request on the pipe.

[`-  sendIORequestWithData:bytesTransferred:completionTimeout:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendIORequestWithData:bytesTransferred:completionTimeout:error:)

Sends an input/output request on the pipe.

[`-  abortWithOption:error:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithOption:error:)

Aborts pending input/output requests.

[`-  abortWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithError:)

Aborts pending input/output requests synchronously.

[`-  clearStallWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/clearStall())

Clears the halt condition of the pipe.

### Sending Isochronous I/O

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

A completion handler for asynchronous isochronous transfers.

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

The absolute time.

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

A structure that represents a single frame in an isochronous transfer.

[`-  enqueueIORequestWithData:frameList:frameListCount:firstFrameNumber:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueIORequest(with:frameList:frameListCount:firstFrameNumber:completionHandler:))

Enqueues a request on an isochronous endpoint.

[`-  sendIORequestWithData:frameList:frameListCount:firstFrameNumber:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendIORequest(with:frameList:frameListCount:firstFrameNumber:))

Sends a request on an isochronous endpoint.

[`-  abortWithOption:error:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithOption:error:)

Aborts pending input/output requests.

[`-  abortWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithError:)

Aborts pending input/output requests synchronously.

### Sending Control Requests

[`IOUSBHostDeviceRequestType`](/documentation/IOUSBHost/IOUSBHostDeviceRequestType(_:_:_:))

Creates the request type field of a device request.

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

The default completion timeout for input/output requests.

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

The completion handler for asynchronous control, bulk, and interrupt transfers.

[`-  enqueueControlRequest:data:completionTimeout:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueControlRequest:data:completionTimeout:error:completionHandler:)

Enqueues a request on a control endpoint.

[`-  enqueueControlRequest:data:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueControlRequest:data:error:completionHandler:)

Enqueues a request on a control endpoint with a default completion timeout.

[`-  enqueueControlRequest:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueControlRequest:error:completionHandler:)

Enqueues a request on a control endpoint without a data phase and a default completion timeout.

[`-  sendControlRequest:data:bytesTransferred:completionTimeout:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendControlRequest:data:bytesTransferred:completionTimeout:error:)

Sends a request on a control endpoint.

[`-  sendControlRequest:data:bytesTransferred:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendControlRequest:data:bytesTransferred:error:)

Sends a request on a control endpoint with a default timeout.

[`-  sendControlRequest:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendControlRequest:error:)

Sends a request on a control endpoint without a data phase and a default completion timeout.

[`-  abortWithOption:error:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithOption:error:)

Aborts pending input/output requests.

[`-  abortWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/abortWithError:)

Aborts pending input/output requests synchronously.

### Managing Periodic Bandwidth

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

The descriptors for a single endpoint.

[`-  adjustPipeWithDescriptors:error:`](/documentation/IOUSBHost/IOUSBHostPipe/adjust(with:))

Adjusts the behavior of periodic endpoints to consume a different amount of bus bandwidth.

[`descriptors`](/documentation/IOUSBHost/IOUSBHostPipe/descriptors)

A property that retrieves the current endpoint descriptors controlling the endpoint.

[`originalDescriptors`](/documentation/IOUSBHost/IOUSBHostPipe/originalDescriptors)

A property that retrieves the original endpoint descriptors from the pipe at the point of creation.

### Enabling Power Savings

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

Sets the desired idle suspend timeout for the interface.

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

A property that retrieves the current idle suspend timeout.

### Managing Streams

[`-  enableStreamsWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/enableStreams())

Enables streams for the pipe.

[`-  copyStreamWithStreamID:error:`](/documentation/IOUSBHost/IOUSBHostPipe/copyStream(withStreamID:))

Returns the stream for a stream ID.

[`-  disableStreamsWithError:`](/documentation/IOUSBHost/IOUSBHostPipe/disableStreams())

Disables streams for the pipe.

### Instance Methods

[`-  enqueueIORequestWithData:transactionList:transactionListCount:firstFrameNumber:options:error:completionHandler:`](/documentation/IOUSBHost/IOUSBHostPipe/enqueueIORequest(with:transactionList:transactionListCount:firstFrameNumber:options:completionHandler:))

[`-  sendIORequestWithData:transactionList:transactionListCount:firstFrameNumber:options:error:`](/documentation/IOUSBHost/IOUSBHostPipe/sendIORequest(with:transactionList:transactionListCount:firstFrameNumber:options:))

## Relationships

### Conforms To

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

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

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

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

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

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

### Inherits From

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

---

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)