---
title: ATA
framework: kernel
role: collectionGroup
role_heading: API Collection
path: kernel/hardware_families/ata
---

# ATA

Implement a driver that supports Advanced Technology Attachment (ATA) devices.

## Topics

### Devices

- [ATADeviceNub](kernel/atadevicenub.md)
- [IOATADevice](kernel/ioatadevice.md)

### Controller

- [IOATAController](kernel/ioatacontroller.md)

### Registers

- [IOATAReg32](kernel/ioatareg32.md)
- [IOATAReg16](kernel/ioatareg16.md)
- [IOATAReg8](kernel/ioatareg8.md)
- [IOATAIOReg32](kernel/ioataioreg32.md)
- [IOATAIOReg16](kernel/ioataioreg16.md)
- [IOATAIOReg8](kernel/ioataioreg8.md)
- [IOATARegPtr32](kernel/ioataregptr32.md)
- [IOATARegPtr16](kernel/ioataregptr16.md)
- [IOATARegPtr8](kernel/ioataregptr8.md)

### Commands

- [IOATABusCommand64](kernel/ioatabuscommand64.md)
- [IOATABusCommand](kernel/ioatabuscommand.md)
- [IOATACommand](kernel/ioatacommand.md)

### Event Source

- [ATATimerEventSource](kernel/atatimereventsource.md)

### ATAPI

- [IOATAPIProtocolTransport](kernel/ioatapiprotocoltransport.md)
- [ATAPIClientData](kernel/atapiclientdata.md)
- [ATAPICmdPacket](kernel/atapicmdpacket.md)

### Base Types

- [ATAOperationType](kernel/ataoperationtype.md)
- [ATARequestIdentifier](kernel/atarequestidentifier.md)
- [IOExtendedLBA](kernel/ioextendedlba.md)
- [IOATABusInfo](kernel/ioatabusinfo.md)
- [IOATADevConfig](kernel/ioatadevconfig.md)
- [IOATACompletionFunction](kernel/ioatacompletionfunction.md)

### Additional Types

- [ataDeviceType](kernel/atadevicetype.md)
- [ataEventCode](kernel/ataeventcode.md)
- [ataFlags](kernel/ataflags.md)
- [ataOpcode](kernel/ataopcode.md)
- [ataRegMask](kernel/ataregmask.md)
- [ataSocketType](kernel/atasockettype.md)
- [ataUnitID](kernel/ataunitid.md)
- [atapiConfig](kernel/atapiconfig.md)

## See Also

### Hardware Interconnects

- [Bluetooth](kernel/hardware_families/bluetooth.md)
- [FireWire](kernel/hardware_families/firewire.md)
- [PCI](kernel/hardware_families/pci.md)
- [USB](kernel/hardware_families/usb.md)
