---
title: handleOpen
framework: kernel
role: pseudoSymbol
path: kernel/iostorage/1810948-handleopen
---

# handleOpen

## Declaration

```occ
virtual bool handleOpen(
 IOService *client, 
 IOOptionBitsoptions, 
 void *access) = 0; 
```

## Parameters

- `client`: Client requesting the open.
- `options`: Options for the open. Set to zero.
- `access`: Access level for the open. Set to kIOStorageAccessReader or kIOStorageAccessReaderWriter.

## Return Value

Return Value Returns true if the open was successful, false otherwise.

## Overview

Overview The handleOpen method grants or denies permission to access this object to an interested client. The argument is an IOStorageAccess value that specifies the level of access desired -- reader or reader-writer. This method can be invoked to upgrade or downgrade the access level for an existing client as well. The previous access level will prevail for upgrades that fail, of course. A downgrade should never fail. If the new access level should be the same as the old for a given client, this method will do nothing and return success. In all cases, one, singular close-per-client is expected for all opens-per-client received.

## See Also

### Miscellaneous

- [complete](kernel/iostorage/1810767-complete.md)
- [copyPhysicalExtent](kernel/iostorage/1810820-copyphysicalextent.md)
- [handleClose](kernel/iostorage/1810866-handleclose.md)
- [handleIsOpen](kernel/iostorage/1810905-handleisopen.md)
- [lockPhysicalExtents](kernel/iostorage/1810985-lockphysicalextents.md)
- [open](kernel/iostorage/1811013-open.md)
- [read()](kernel/iostorage/1811038-read.md)
- [read()](kernel/iostorage/1811068-read.md)
- [synchronizeCache](kernel/iostorage/1811091-synchronizecache.md)
- [unlockPhysicalExtents](kernel/iostorage/1811117-unlockphysicalextents.md)
- [unmap](kernel/iostorage/1811145-unmap.md)
- [write()](kernel/iostorage/1811168-write.md)
- [write()](kernel/iostorage/1811185-write.md)
