---
title: updateReport
framework: driverkit
role: symbol
role_heading: Instance Method
path: driverkit/ioreporter/updatereport
---

# updateReport

Produce standard reply to IOService::updateReport()

## Declaration

```occ
IOReturn updateReport(IOReportChannelList *channelList, IOReportConfigureAction action, uint32_t & elementCount, uint8_t * & buffer, size_t & capacity);
```

## Parameters

- `channelList`: Channels to update
- `action`: Copy/trace data (see IOReportTypes.h)
- `elementCount`: Element count.
- `buffer`: Buffer.
- `capacity`: Capacity.

## Return Value

Return Value Appropriate IOReturn code

## Discussion

Discussion This method searches channelList for channels tracked by this reporter, writes the corresponding data into ‘destination’, and updates ‘result’.  It should be possible to pass a given set of UpdateReport arguments to any and all reporters as well as to super::updateReport() and get the right result. The static ``IOReporter/updateAllReports` will call this method on an OSSet of reporters. Locking: same-instance concurrency SAFE, WILL NOT BLOCK

## See Also

### Instance Methods

- [addChannel](driverkit/ioreporter/addchannel.md)
- [configureReport](driverkit/ioreporter/configurereport.md)
- [createLegend](driverkit/ioreporter/createlegend.md)
- [free](driverkit/ioreporter/free.md)
