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

# IOCommand

This class is an abstract class which represents an I/O command.

## Declaration

```occ
class IOCommand : OSObject
```

## Overview

Overview 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 Variables

- [fCommandChain](kernel/iocommand/fcommandchain.md)

### Instance Methods

- [CommandChain](driverkit/iocommand/3758238-commandchain.md)
- [free](driverkit/iocommand/3758240-free.md)
- [getMetaClass](kernel/iocommand/1528522-getmetaclass.md)
- [init](kernel/iocommand/1528524-init.md)

### Type Methods

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

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)
- [OSObject](kernel/osobject.md)

## See Also

### Base Types

- [IOCommandPool](kernel/iocommandpool.md)
- [IOCommandGate](kernel/iocommandgate.md)
- [IODispatchSource](kernel/iodispatchsource.md)
- [IOEventSource](kernel/ioeventsource.md)
