<!--
{
  "availability" : [
    "DriverKit: 22.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SCSIPeripheralsDriverKit",
  "identifier" : "/documentation/SCSIPeripheralsDriverKit/IOUserSCSIPeripheralDeviceType05/UserSuspendServices",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SCSIPeripheralsDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserSCSIPeripheralDeviceType05@F@UserSuspendServices#"
  },
  "title" : "UserSuspendServices"
}
-->

# UserSuspendServices

Suspends services and allows the dext to communicate with the external drive.

```
virtual kern_return_t UserSuspendServices();
```

## Return Value

A value that indicates the result of the suspend request. <doc://com.apple.documentation/documentation/DriverKit/kIOReturnSuccess> indicates success. For error definitions, see <doc://com.apple.documentation/documentation/iokit/iokit_constants>.

## Discussion

This method allows the dext to try to obtain a clear window to communicate with the external drive. Calling this method attempts to close any open references to the media. This informs file systems that someone is accessing the media. You can use this cleared window of communication for things like firmware updates without risking harm to the user’s data.

This call expects you to unmount existing volumes upstream of this drive before invoking this API. You can use the <doc://com.apple.documentation/documentation/DiskArbitration> APIs to programmatically unmount any such volumes.

To prevent power state transitions during this window, you can optionally acquire a power assertion before invoking this API.

---

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)