---
title: IOUserUSBSerial
framework: usbserialdriverkit
role: symbol
role_heading: Class
path: usbserialdriverkit/iouserusbserial
---

# IOUserUSBSerial

A service that manages a serial connection to a USB device.

## Declaration

```occ
class IOUserUSBSerial;
```

## Overview

Overview Subclass IOUserUSBSerial to implement a driver that communicates with a USB device serially. After matching your driver to the appropriate device, the system starts your driver and calls its HwActivate method, which you use to open and configure the communications channel for your device. Configure other hardware-related settings by overriding the appropriate methods defined in the IOUserSerial parent class. This class automatically manages the serial communications with the device, buffering data received from it. The class creates the buffers for holding data, and initiates asynchronous operations to the USB device to transmit and receive data. Use the methods of this class to modify the data, as needed.

## Topics

### Configuring the Service

- [init](usbserialdriverkit/iouserusbserial/init.md)
- [Start](usbserialdriverkit/iouserusbserial/start.md)
- [Stop](usbserialdriverkit/iouserusbserial/stop.md)
- [free](usbserialdriverkit/iouserusbserial/free.md)
- [initWith](usbserialdriverkit/iouserusbserial/initwith.md)

### Activating and Deactivating the Service

- [HwActivate](usbserialdriverkit/iouserusbserial/hwactivate.md)
- [HwDeactivate](usbserialdriverkit/iouserusbserial/hwdeactivate.md)

### Transmitting and Receiving Data

- [handleRxPacket](usbserialdriverkit/iouserusbserial/handlerxpacket.md)
- [RxFreeSpaceAvailable](usbserialdriverkit/iouserusbserial/rxfreespaceavailable.md)
- [TxDataAvailable](usbserialdriverkit/iouserusbserial/txdataavailable.md)
- [handleInterruptPacket](usbserialdriverkit/iouserusbserial/handleinterruptpacket.md)

### Configuring the Serial Data Queues

- [ConnectQueues](usbserialdriverkit/iouserusbserial/connectqueues.md)
- [DisconnectQueues](usbserialdriverkit/iouserusbserial/disconnectqueues.md)

## See Also

### Serial USB Interface

- [com.apple.developer.driverkit.family.serial](bundleresources/entitlements/com.apple.developer.driverkit.family.serial.md)
