<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/IOReporter",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOReporter"
  },
  "title" : "IOReporter"
}
-->

# IOReporter

```
class IOReporter;
```

## Topics

### Instance Methods

[`IOReturn addChannel(uint64_t channelID, const char *channelName);`](/documentation/DriverKit/IOReporter/addChannel)

Add an additional, similar channel to the reporter.

[`IOReturn configureReport(IOReportChannelList *channelList, IOReportConfigureAction action, uint32_t & elementCount);`](/documentation/DriverKit/IOReporter/configureReport)

Track IOService::configureReport(), provide sizing info

[`OSDictionary * createLegend();`](/documentation/DriverKit/IOReporter/createLegend)

Create a legend entry represending this reporter’s channels.

[`virtual void free();`](/documentation/DriverKit/IOReporter/free)

[`IOReturn updateReport(IOReportChannelList *channelList, IOReportConfigureAction action, uint32_t & elementCount, uint8_t * & buffer, size_t & capacity);`](/documentation/DriverKit/IOReporter/updateReport)

Produce standard reply to IOService::updateReport()

### Type Methods

[`static IOReturn configureAllReports(OSCollection *reporters, OSData *channels, IOReportConfigureAction action, uint32_t *outCount);`](/documentation/DriverKit/IOReporter/configureAllReports)

Calls `configureReport()` on multiple `IOReporter` objects

[`static IOReturn updateAllReports(OSCollection *reporters, OSData *channels, IOReportConfigureAction action, uint32_t *outElementCount, uint64_t offset, uint64_t capacity, IOMemoryDescriptor *buffer);`](/documentation/DriverKit/IOReporter/updateAllReports)

Calls `updateReport()` on multiple IOReporter objects.

## Relationships

### Inherited By

[`IOSimpleReporter`](/documentation/DriverKit/IOSimpleReporter)

[`IOHistogramReporter`](/documentation/DriverKit/IOHistogramReporter)

[`IOStateReporter`](/documentation/DriverKit/IOStateReporter)

### Inherits From

[`OSObject`](/documentation/DriverKit/OSObject)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)