---
title: IORegistryIterator
framework: kernel
role: symbol
role_heading: Class
path: kernel/ioregistryiterator
---

# IORegistryIterator

An iterator over the registry.

## Declaration

```occ
class IORegistryIterator : OSIterator
```

```occ
typedef struct IORegistryIterator IORegistryIterator;
```

## Overview

Overview An iterator that can traverse the children or parents of a registry entry in a plane, and recurse. Access to the registry is protected against multiple threads, but an IORegistryIterator instance is for use by one thread only.

## Topics

### Miscellaneous

- [enterEntry()](kernel/ioregistryiterator/1810048-enterentry.md)
- [enterEntry(const IORegistryPlane *)](kernel/ioregistryiterator/1810063-enterentry.md)
- [exitEntry](kernel/ioregistryiterator/1810081-exitentry.md)
- [getCurrentEntry](kernel/ioregistryiterator/1810099-getcurrententry.md)
- [getNextObject](kernel/ioregistryiterator/1810114-getnextobject.md)
- [getNextObjectFlat](kernel/ioregistryiterator/1810135-getnextobjectflat.md)
- [getNextObjectRecursive](kernel/ioregistryiterator/1810157-getnextobjectrecursive.md)
- [isValid](kernel/ioregistryiterator/1810181-isvalid.md)
- [iterateAll](kernel/ioregistryiterator/1810202-iterateall.md)
- [iterateOver(const IORegistryPlane *, IOOptionBits)](kernel/ioregistryiterator/1810226-iterateover.md)
- [iterateOver(IORegistryEntry *, const IORegistryPlane *, IOOptionBits)](kernel/ioregistryiterator/1810260-iterateover.md)
- [reset](kernel/ioregistryiterator/1810295-reset.md)

### Instance Methods

- [enterEntry](kernel/ioregistryiterator/1437673-enterentry.md)
- [enterEntry](kernel/ioregistryiterator/3516480-enterentry.md)
- [exitEntry](kernel/ioregistryiterator/1437616-exitentry.md)
- [free](kernel/ioregistryiterator/1437743-free.md)
- [getCurrentEntry](kernel/ioregistryiterator/1437723-getcurrententry.md)
- [getMetaClass](kernel/ioregistryiterator/1437730-getmetaclass.md)
- [getNextObject](kernel/ioregistryiterator/1437629-getnextobject.md)
- [getNextObjectFlat](kernel/ioregistryiterator/1437684-getnextobjectflat.md)
- [getNextObjectRecursive](kernel/ioregistryiterator/1437739-getnextobjectrecursive.md)
- [isValid](kernel/ioregistryiterator/1437675-isvalid.md)
- [iterateAll](kernel/ioregistryiterator/1437708-iterateall.md)
- [reset](kernel/ioregistryiterator/1437700-reset.md)

### Type Methods

- [iterateOver](kernel/ioregistryiterator/1437636-iterateover.md)
- [iterateOver](kernel/ioregistryiterator/3516481-iterateover.md)

## Relationships

### Inherits From

- [OSIterator](kernel/ositerator.md)

## See Also

### Driver Registry

- [IORegistryEntry](kernel/ioregistryentry.md)
- [IOBSDNameMatching](kernel/1575336-iobsdnamematching.md)
- [IOPrintPlane](kernel/1558295-ioprintplane.md)
- [Registry Utilities](kernel/iokit_fundamentals/registry_utilities.md)
- [Registry Keys](kernel/iokit_fundamentals/registry_keys.md)
