---
title: IOCommand
framework: driverkit
role: symbol
role_heading: Class
path: driverkit/iocommand
---

# IOCommand

## Declaration

```occ
class IOCommand;
```

## Overview

Overview This class is an abstract class which represents an I/O command. This class is an abstract class which represents an I/O command passed from a device driver to a controller. All controller commands (e.g. IOATACommand) should inherit from this class.

## Topics

### Instance Methods

- [CommandChain](driverkit/iocommand/commandchain.md)
- [free](driverkit/iocommand/free.md)
- [init](driverkit/iocommand/init.md)

### Type Methods

- [FromChain](driverkit/iocommand/fromchain.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)

## See Also

### Data Types

- [IOCallOnceBlock](driverkit/iocallonceblock.md)
- [IOCallOnceFlag](driverkit/iocallonceflag.md)
- [IOCommandPool](driverkit/iocommandpool.md)
- [IOCommandPoolPtr](driverkit/iocommandpoolptr.md)
- [IOCommandPtr](driverkit/iocommandptr.md)
- [IODMACommand](driverkit/iodmacommand.md)
- [IODMACommandSpecification](driverkit/iodmacommandspecification.md)
- [IODispatchAction](driverkit/iodispatchaction.md)
- [IOHistogramReporter_IVars](driverkit/iohistogramreporter_ivars.md)
- [IOReportLegendEntry](driverkit/ioreportlegendentry.md)
- [IOReporter_IVars](driverkit/ioreporter_ivars.md)
- [IOSimpleReporter_IVars](driverkit/iosimplereporter_ivars.md)
- [IOStateReporter_IVars](driverkit/iostatereporter_ivars.md)
- [IOStateReporter_valueSelector](driverkit/iostatereporter_valueselector.md)
- [IVarsInvalidator](driverkit/ivarsinvalidator.md)
