---
title: IOUSBHostPipe
framework: usbdriverkit
role: symbol
role_heading: Class
path: usbdriverkit/iousbhostpipe
---

# IOUSBHostPipe

An object you use to transfer data to or from a USB endpoint.

## Declaration

```occ
class IOUSBHostPipe;
```

## Overview

Overview Use an IOUSBHostPipe object to manage data transfers to and from a device. A pipe represents a one-way data conduit between your driver and one of the device’s USB endpoints. You use pipes to perform synchronous, asynchronous, or isochronous data transfers between your code and the device. Don’t create an IOUSBHostPipe object directly. To retrieve a pipe for a specific endpoint, call the CopyPipe method of IOUSBHostInterface. You can get the addresses for the device’s pipes from the endpoint descriptors associated with each device interface.

## Topics

### Interacting with Bulk and Interrupt Endpoints

- [IO](usbdriverkit/iousbhostpipe/io.md)
- [AsyncIO](usbdriverkit/iousbhostpipe/asyncio.md)
- [CompleteAsyncIO](usbdriverkit/iousbhostpipe/completeasyncio.md)

### Interacting with Isochronous Endpoints

- [IsochIO](usbdriverkit/iousbhostpipe/isochio.md)
- [CompleteAsyncIsochIO](usbdriverkit/iousbhostpipe/completeasyncisochio.md)
- [IOUSBIsochronousFrame](usbdriverkit/iousbisochronousframe.md)

### Interacting with Descriptor Rings

- [CreateMemoryDescriptorRing](usbdriverkit/iousbhostpipe/creatememorydescriptorring.md)
- [SetMemoryDescriptor](usbdriverkit/iousbhostpipe/setmemorydescriptor.md)
- [AsyncIOBundled](usbdriverkit/iousbhostpipe/asynciobundled.md)
- [CompleteAsyncIOBundled](usbdriverkit/iousbhostpipe/completeasynciobundled.md)
- [Bundling Constants](usbdriverkit/bundling_constants-enum.md)

### Aborting I/O Requests

- [Abort](usbdriverkit/iousbhostpipe/abort.md)
- [IOUSBAbortOptions](usbdriverkit/iousbabortoptions.md)

### Adjusting the Pipe’s Status

- [AdjustPipe](usbdriverkit/iousbhostpipe/adjustpipe.md)
- [ClearStall](usbdriverkit/iousbhostpipe/clearstall.md)

### Getting the Endpoint Descriptors

- [GetDescriptors](usbdriverkit/iousbhostpipe/getdescriptors.md)
- [IOUSBStandardEndpointDescriptors](usbdriverkit/iousbstandardendpointdescriptors.md)
- [IOUSBGetEndpointDescriptorOptions](usbdriverkit/iousbgetendpointdescriptoroptions.md)

### Managing the Pipe’s Idle Policy

- [GetIdlePolicy](usbdriverkit/iousbhostpipe/getidlepolicy.md)
- [SetIdlePolicy](usbdriverkit/iousbhostpipe/setidlepolicy.md)

### Getting the Device Attributes

- [GetSpeed](usbdriverkit/iousbhostpipe/getspeed.md)
- [GetDeviceAddress](usbdriverkit/iousbhostpipe/getdeviceaddress.md)
- [tIOUSBHostConnectionSpeed](usbdriverkit/tiousbhostconnectionspeed.md)

### Instance Methods

- [CreateMemoryDescriptorRing](usbdriverkit/iousbhostpipe/creatememorydescriptorring.md)
- [SetMemoryDescriptor](usbdriverkit/iousbhostpipe/setmemorydescriptor.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)
