<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/IOUserClient/ExternalMethod",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserClient@F@ExternalMethod#k#*$@S@IOUserClientMethodArguments#*1$@S@IOUserClientMethodDispatch#*$@S@OSObject#*v#"
  },
  "title" : "ExternalMethod"
}
-->

# ExternalMethod

Receive arguments from IOKit.framework IOConnectMethod calls.

```
virtual kern_return_t ExternalMethod(uint64_t selector, IOUserClientMethodArguments *arguments, const IOUserClientMethodDispatch *dispatch, OSObject *target, void *reference);
```

## Parameters

`selector`

Selector argument to `IOConnectMethod`.

`arguments`

Structure describing all arguments being passed to `IOConnectMethod`. See the [`IOUserClientMethodArguments`](/documentation/DriverKit/IOUserClientMethodArguments) definition.

`dispatch`

NULL when called in the driver. The [`ExternalMethod`](/documentation/DriverKit/IOUserClient/ExternalMethod)
implementation may be called with a non-NULL argument to check
certain fields of the arguments structure before calling a target procedure
specified by the dispatch structure ‘function’ field, and the
‘target’ and ‘reference’ parameters to this method.
See the [`IOUserClientMethodDispatch`](/documentation/DriverKit/IOUserClientMethodDispatch) definition.

`target`

Target for the dispatch function

`reference`

Reference constant for the dispatch function

## Return Value

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

## Discussion

IOConnectMethod calls from the owner of the connection come here. Any argument may be passed as NULL if not passed by the caller.

---

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)