---
title: IOSCSIProtocolInterface
framework: kernel
role: symbol
role_heading: Class
path: kernel/ioscsiprotocolinterface
---

# IOSCSIProtocolInterface

This class defines the public SCSI Protocol Layer API for any class that provides Protocol services or needs to provide the Protocol Service API for passing service requests to a Protocol Service driver.

## Declaration

```occ
class IOSCSIProtocolInterface : IOService
```

## Topics

### Miscellaneous

- [AbortCommand](kernel/ioscsiprotocolinterface/1810020-abortcommand.md)
- [AbortTask](kernel/ioscsiprotocolinterface/1810034-aborttask.md)
- [AbortTaskSet](kernel/ioscsiprotocolinterface/1810053-aborttaskset.md)
- [CheckPowerState](kernel/ioscsiprotocolinterface/1810067-checkpowerstate.md)
- [ClearACA](kernel/ioscsiprotocolinterface/1810087-clearaca.md)
- [ClearTaskSet](kernel/ioscsiprotocolinterface/1810108-cleartaskset.md)
- [ExecuteCommand](kernel/ioscsiprotocolinterface/1810126-executecommand.md)
- [finalize](kernel/ioscsiprotocolinterface/1810146-finalize.md)
- [free](kernel/ioscsiprotocolinterface/1810163-free.md)
- [GetCommandGate](kernel/ioscsiprotocolinterface/1810184-getcommandgate.md)
- [GetInitialPowerState](kernel/ioscsiprotocolinterface/1810205-getinitialpowerstate.md)
- [GetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810233-getuserclientexclusivitystate.md)
- [HandleCheckPowerState()](kernel/ioscsiprotocolinterface/1810265-handlecheckpowerstate.md)
- [HandleCheckPowerState(UInt32)](kernel/ioscsiprotocolinterface/1810294-handlecheckpowerstate.md)
- [HandleCheckPowerState(void)](kernel/ioscsiprotocolinterface/1810368-handlecheckpowerstate.md)
- [HandleGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810391-handlegetuserclientexclusivityst.md)
- [HandlePowerChange](kernel/ioscsiprotocolinterface/1810424-handlepowerchange.md)
- [HandleProtocolServiceFeature](kernel/ioscsiprotocolinterface/1810462-handleprotocolservicefeature.md)
- [HandleSetPowerState](kernel/ioscsiprotocolinterface/1810510-handlesetpowerstate.md)
- [HandleSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810570-handlesetuserclientexclusivityst.md)
- [InitializePowerManagement](kernel/ioscsiprotocolinterface/1810624-initializepowermanagement.md)
- [initialPowerStateForDomainState](kernel/ioscsiprotocolinterface/1810676-initialpowerstatefordomainstate.md)
- [IsPowerManagementIntialized](kernel/ioscsiprotocolinterface/1810727-ispowermanagementintialized.md)
- [IsProtocolServiceSupported](kernel/ioscsiprotocolinterface/1810761-isprotocolservicesupported.md)
- [LogicalUnitReset](kernel/ioscsiprotocolinterface/1810795-logicalunitreset.md)
- [setPowerState](kernel/ioscsiprotocolinterface/1810826-setpowerstate.md)
- [SetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810852-setuserclientexclusivitystate.md)
- [sGetPowerTransistionInProgress](kernel/ioscsiprotocolinterface/1810884-sgetpowertransistioninprogress.md)
- [sGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810914-sgetuserclientexclusivitystate.md)
- [sHandleCheckPowerState](kernel/ioscsiprotocolinterface/1810945-shandlecheckpowerstate.md)
- [sHandleSetPowerState](kernel/ioscsiprotocolinterface/1810965-shandlesetpowerstate.md)
- [sPowerManagement](kernel/ioscsiprotocolinterface/1810988-spowermanagement.md)
- [sSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1811011-ssetuserclientexclusivitystate.md)
- [start](kernel/ioscsiprotocolinterface/1811044-start.md)
- [TargetReset](kernel/ioscsiprotocolinterface/1811073-targetreset.md)
- [TicklePowerManager()](kernel/ioscsiprotocolinterface/1811095-ticklepowermanager.md)
- [TicklePowerManager(UInt32)](kernel/ioscsiprotocolinterface/1811118-ticklepowermanager.md)
- [TicklePowerManager(void)](kernel/ioscsiprotocolinterface/1811187-ticklepowermanager.md)
- [willTerminate](kernel/ioscsiprotocolinterface/1811210-willterminate.md)

### Instance Methods

- [AbortCommand](kernel/ioscsiprotocolinterface/1571702-abortcommand.md)
- [AbortTask](kernel/ioscsiprotocolinterface/1571657-aborttask.md)
- [AbortTaskSet](kernel/ioscsiprotocolinterface/1571691-aborttaskset.md)
- [CheckForSufficientTimeForPMCommand](kernel/ioscsiprotocolinterface/3727927-checkforsufficienttimeforpmcomma.md)
- [CheckPowerState](kernel/ioscsiprotocolinterface/1571711-checkpowerstate.md)
- [ClearACA](kernel/ioscsiprotocolinterface/1571655-clearaca.md)
- [ClearTaskSet](kernel/ioscsiprotocolinterface/1571694-cleartaskset.md)
- [ExecuteCommand](kernel/ioscsiprotocolinterface/1571682-executecommand.md)
- [GetCommandGate](kernel/ioscsiprotocolinterface/1571674-getcommandgate.md)
- [GetInitialPowerState](kernel/ioscsiprotocolinterface/1571659-getinitialpowerstate.md)
- [GetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571707-getuserclientexclusivitystate.md)
- [HandleCheckPowerState](kernel/ioscsiprotocolinterface/1571718-handlecheckpowerstate.md)
- [HandleCheckPowerState](kernel/ioscsiprotocolinterface/3516767-handlecheckpowerstate.md)
- [HandleGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571677-handlegetuserclientexclusivityst.md)
- [HandlePowerChange](kernel/ioscsiprotocolinterface/1571671-handlepowerchange.md)
- [HandleProtocolServiceFeature](kernel/ioscsiprotocolinterface/1571701-handleprotocolservicefeature.md)
- [HandleSetPowerState](kernel/ioscsiprotocolinterface/1571683-handlesetpowerstate.md)
- [HandleSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571652-handlesetuserclientexclusivityst.md)
- [InitializePowerManagement](kernel/ioscsiprotocolinterface/1571688-initializepowermanagement.md)
- [IsPowerManagementIntialized](kernel/ioscsiprotocolinterface/1571720-ispowermanagementintialized.md)
- [IsProtocolServiceSupported](kernel/ioscsiprotocolinterface/1571658-isprotocolservicesupported.md)
- [LogicalUnitReset](kernel/ioscsiprotocolinterface/1571680-logicalunitreset.md)
- [ResetPowerStateChangeTimer](kernel/ioscsiprotocolinterface/3727928-resetpowerstatechangetimer.md)
- [SetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571661-setuserclientexclusivitystate.md)
- [TargetReset](kernel/ioscsiprotocolinterface/1571689-targetreset.md)
- [TicklePowerManager](kernel/ioscsiprotocolinterface/1571698-ticklepowermanager.md)
- [TicklePowerManager](kernel/ioscsiprotocolinterface/3516768-ticklepowermanager.md)
- [finalize](kernel/ioscsiprotocolinterface/1571710-finalize.md)
- [free](kernel/ioscsiprotocolinterface/1571704-free.md)
- [getMetaClass](kernel/ioscsiprotocolinterface/1571709-getmetaclass.md)
- [init](kernel/ioscsiprotocolinterface/1571678-init.md)
- [initialPowerStateForDomainState](kernel/ioscsiprotocolinterface/1571696-initialpowerstatefordomainstate.md)
- [setPowerState](kernel/ioscsiprotocolinterface/1571679-setpowerstate.md)
- [start](kernel/ioscsiprotocolinterface/1571715-start.md)
- [willTerminate](kernel/ioscsiprotocolinterface/1571699-willterminate.md)

### Type Methods

- [sGetPowerTransistionInProgress](kernel/ioscsiprotocolinterface/1571653-sgetpowertransistioninprogress.md)
- [sGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571675-sgetuserclientexclusivitystate.md)
- [sHandleCheckPowerState](kernel/ioscsiprotocolinterface/1571676-shandlecheckpowerstate.md)
- [sHandleSetPowerState](kernel/ioscsiprotocolinterface/1571681-shandlesetpowerstate.md)
- [sPowerManagement](kernel/ioscsiprotocolinterface/1571656-spowermanagement.md)
- [sSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1571690-ssetuserclientexclusivitystate.md)

## Relationships

### Inherits From

- [IOService](kernel/ioservice.md)

## See Also

### Base Types

- [IOReducedBlockServices](kernel/ioreducedblockservices.md)
- [IOSCSIPeripheralDeviceNub](kernel/ioscsiperipheraldevicenub.md)
- [IOSCSIPrimaryCommandsDevice](kernel/ioscsiprimarycommandsdevice.md)
- [IOSCSIProtocolServices](kernel/ioscsiprotocolservices.md)
