---
title: configureReport
framework: driverkit
role: symbol
role_heading: Instance Method
path: driverkit/ioreporter/configurereport
---

# configureReport

Track IOService::configureReport(), provide sizing info

## Declaration

```occ
IOReturn configureReport(IOReportChannelList *channelList, IOReportConfigureAction action, uint32_t & elementCount);
```

## Parameters

- `channelList`: Channels to configure.
- `action`: Enable/disable/size, etc (see IOReportTypes.h).
- `elementCount`: Element count.

## Return Value

Return Value Appropriate IOReturn code.

## Discussion

Discussion Any time a reporting driver’s ::configureReport method is invoked, this method should be invoked on each IOReporter that is being used by that driver to report channels in channelList. Any channels in channelList which are not tracked by this reporter are ignored.  ::configureReport(kIOReportGetDimensions) expects the full size of all channels, including any reported by superclasses.  It is valid to call this routine on multiple reporter objects in succession and they will increment ‘result’ to provide the correct total. The static IOReporter::configureAllReports() will call this method on multiple reporters grouped in an OSSet. Locking: same-instance concurrency SAFE, MAY BLOCK

## See Also

### Instance Methods

- [addChannel](driverkit/ioreporter/addchannel.md)
- [createLegend](driverkit/ioreporter/createlegend.md)
- [free](driverkit/ioreporter/free.md)
- [updateReport](driverkit/ioreporter/updatereport.md)
