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

# IOStateReporter

```
class IOStateReporter;
```

## Topics

### Instance Methods

[`uint64_t getStateInTransitions(uint64_t channel_id, uint64_t state_id);`](/documentation/DriverKit/IOStateReporter/getStateInTransitions)

[`uint64_t getStateLastChannelUpdateTime(uint64_t channel_id);`](/documentation/DriverKit/IOStateReporter/getStateLastChannelUpdateTime)

[`uint64_t getStateLastTransitionTime(uint64_t channel_id, uint64_t state_id);`](/documentation/DriverKit/IOStateReporter/getStateLastTransitionTime)

[`uint64_t getStateResidencyTime(uint64_t channel_id, uint64_t state_id);`](/documentation/DriverKit/IOStateReporter/getStateResidencyTime)

[`IOReturn incrementChannelState(uint64_t channel_id, uint64_t state_id, uint64_t time_in_state, uint64_t intransitions, uint64_t last_intransition);`](/documentation/DriverKit/IOStateReporter/incrementChannelState)

[`bool initWith(IOService *reportingService, IOReportCategories categories, int nstates, IOReportUnit unit);`](/documentation/DriverKit/IOStateReporter/initWith)

[`IOReturn overrideChannelState(uint64_t channel_id, uint64_t state_id, uint64_t time_in_state, uint64_t intransitions, uint64_t last_intransition);`](/documentation/DriverKit/IOStateReporter/overrideChannelState)

[`IOReturn setChannelState(uint64_t channel_id, uint64_t new_state_id);`](/documentation/DriverKit/IOStateReporter/setChannelState-9hd9n)

[`IOReturn setChannelState(uint64_t channel_id, uint64_t new_state_id, uint64_t last_intransition, uint64_t prev_state_residency);`](/documentation/DriverKit/IOStateReporter/setChannelState-7n3or)

[`IOReturn setState(uint64_t new_state_id);`](/documentation/DriverKit/IOStateReporter/setState-96bfi)

[`IOReturn setState(uint64_t new_state_id, uint64_t last_intransition, uint64_t prev_state_residency);`](/documentation/DriverKit/IOStateReporter/setState-1puxp)

[`IOReturn setStateByIndices(int channel_index, int new_state_index);`](/documentation/DriverKit/IOStateReporter/setStateByIndices-6dmm5)

[`IOReturn setStateByIndices(int channel_index, int new_state_index, uint64_t last_intransition, uint64_t prev_state_residency);`](/documentation/DriverKit/IOStateReporter/setStateByIndices-13fxh)

[`IOReturn setStateID(uint64_t channel_id, int state_index, uint64_t state_id);`](/documentation/DriverKit/IOStateReporter/setStateID)

### Type Methods

[`static IOStateReporter * with(IOService *reportingService, IOReportCategories categories, int nstates, IOReportUnit unit);`](/documentation/DriverKit/IOStateReporter/with)

## Relationships

### Inherits From

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

---

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)