<!--
{
  "availability" : [
    "DriverKit: 27.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "VideoDriverKit",
  "identifier" : "/documentation/VideoDriverKit/IOUserVideoStream/StartIO",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "VideoDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserVideoStream@F@StartIO#$@N@VideoDriverKit@E@IOUserVideoStartStopFlags#"
  },
  "title" : "StartIO"
}
-->

# StartIO

Tells the stream to start IO.

```
virtual kern_return_t StartIO(IOUserVideoStartStopFlags in_flags);
```

## Parameters

`in_flags`

Flags to indicate how IO is starting.

## Discussion

The default implementation always returns `kIOReturnSuccess`.
Subclass and override this method to handle any hardware specific things when IO is starting, then
call the superclass implementation to update IO state.
This call is expected to always succeed or fail. The hardware can take as long
as necessary in this call such that it always either succeeds (and `kIOReturnSuccess`) or fails.

---

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)