<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/IOWorkGroup/Create",
  "metadataVersion" : "0.1.0",
  "role" : "Static Method",
  "symbol" : {
    "kind" : "Static Method",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOWorkGroup@F@Create#*$@S@OSString#*$@S@IOUserClient#**$@S@IOWorkGroup#S"
  },
  "title" : "Create"
}
-->

# Create

```
static kern_return_t Create(OSString *name, IOUserClient *userClient, IOWorkGroup **workgroup);
```

## Parameters

`name`

Name of the workgroup

`userClient`

Userclient to create the workgroup in. The DriverKit runtime will retain the userclient, and will
release it in Invalidate() or when the IOWorkGroup is freed.

`workgroup`

Created IOWorkGroup with +1 retain count to be released by the caller.

## Return Value

kIOReturnSuccess on success. See IOReturn.h for error codes.

## Discussion\abstract Create an IOWorkGroup object. This object is not functional until a workgroup port has been set.

---

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)