---
title: handleOpen
framework: kernel
role: pseudoSymbol
path: kernel/iomedia/1813647-handleopen
---

# handleOpen

## Declaration

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

## 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. This implementation replaces the IOService definition of handleOpen().

## See Also

### Miscellaneous

- [copyPhysicalExtent](kernel/iomedia/1813424-copyphysicalextent.md)
- [getAttributes](kernel/iomedia/1813444-getattributes.md)
- [getBase](kernel/iomedia/1813468-getbase.md)
- [getContent](kernel/iomedia/1813495-getcontent.md)
- [getContentHint](kernel/iomedia/1813522-getcontenthint.md)
- [getPreferredBlockSize](kernel/iomedia/1813553-getpreferredblocksize.md)
- [getSize](kernel/iomedia/1813585-getsize.md)
- [handleClose](kernel/iomedia/1813614-handleclose.md)
- [handleIsOpen](kernel/iomedia/1813630-handleisopen.md)
- [init](kernel/iomedia/1813657-init.md)
- [isEjectable](kernel/iomedia/1813664-isejectable.md)
- [isFormatted](kernel/iomedia/1813670-isformatted.md)
- [isWhole](kernel/iomedia/1813677-iswhole.md)
- [isWritable](kernel/iomedia/1813683-iswritable.md)
- [lockPhysicalExtents](kernel/iomedia/1813689-lockphysicalextents.md)
- [read](kernel/iomedia/1813696-read.md)
- [synchronizeCache](kernel/iomedia/1813702-synchronizecache.md)
- [unlockPhysicalExtents](kernel/iomedia/1813710-unlockphysicalextents.md)
- [unmap](kernel/iomedia/1813719-unmap.md)
- [write](kernel/iomedia/1813725-write.md)
