---
title: IOSCSIProtocolServices
framework: kernel
role: symbol
role_heading: Class
path: kernel/ioscsiprotocolservices
---

# IOSCSIProtocolServices

This class defines the public SCSI Protocol Services Layer API for any class that implements SCSI protocol services. A protocol services layer driver is responsible for taking incoming SCSITaskIdentifier objects and translating them to the native command type for the native protocol interface (e.g. SBP-2 ORB on FireWire).

## Declaration

```occ
class IOSCSIProtocolServices : IOSCSIProtocolInterface
```

## Topics

### Miscellaneous

- [AbortCommand](kernel/ioscsiprotocolservices/1809724-abortcommand.md)
- [AbortSCSICommand](kernel/ioscsiprotocolservices/1809736-abortscsicommand.md)
- [AbortSCSITaskFromQueue](kernel/ioscsiprotocolservices/1809747-abortscsitaskfromqueue.md)
- [AbortTask](kernel/ioscsiprotocolservices/1809759-aborttask.md)
- [AbortTaskSet](kernel/ioscsiprotocolservices/1809765-aborttaskset.md)
- [AddSCSITaskToHeadOfQueue](kernel/ioscsiprotocolservices/1809777-addscsitasktoheadofqueue.md)
- [AddSCSITaskToQueue](kernel/ioscsiprotocolservices/1809791-addscsitasktoqueue.md)
- [ClearACA](kernel/ioscsiprotocolservices/1809805-clearaca.md)
- [ClearTaskSet](kernel/ioscsiprotocolservices/1809813-cleartaskset.md)
- [CommandCompleted](kernel/ioscsiprotocolservices/1809823-commandcompleted.md)
- [CreateSCSITargetDevice](kernel/ioscsiprotocolservices/1809830-createscsitargetdevice.md)
- [EnsureAutosenseDescriptorExists](kernel/ioscsiprotocolservices/1809843-ensureautosensedescriptorexists.md)
- [ExecuteCommand](kernel/ioscsiprotocolservices/1809854-executecommand.md)
- [free](kernel/ioscsiprotocolservices/1809869-free.md)
- [GetAutosenseRequestedDataTransferCount](kernel/ioscsiprotocolservices/1809881-getautosenserequesteddatatransfe.md)
- [GetCommandDescriptorBlock](kernel/ioscsiprotocolservices/1809892-getcommanddescriptorblock.md)
- [GetCommandDescriptorBlockSize](kernel/ioscsiprotocolservices/1809902-getcommanddescriptorblocksize.md)
- [GetDataBuffer](kernel/ioscsiprotocolservices/1809915-getdatabuffer.md)
- [GetDataBufferOffset](kernel/ioscsiprotocolservices/1809935-getdatabufferoffset.md)
- [GetDataTransferDirection](kernel/ioscsiprotocolservices/1809946-getdatatransferdirection.md)
- [GetInitialPowerState](kernel/ioscsiprotocolservices/1809959-getinitialpowerstate.md)
- [GetLogicalUnitBytes](kernel/ioscsiprotocolservices/1809964-getlogicalunitbytes.md)
- [GetLogicalUnitNumber](kernel/ioscsiprotocolservices/1809972-getlogicalunitnumber.md)
- [GetProtocolLayerReference](kernel/ioscsiprotocolservices/1809980-getprotocollayerreference.md)
- [GetRealizedDataTransferCount](kernel/ioscsiprotocolservices/1809989-getrealizeddatatransfercount.md)
- [GetRequestedDataTransferCount](kernel/ioscsiprotocolservices/1809996-getrequesteddatatransfercount.md)
- [GetTaskAttribute](kernel/ioscsiprotocolservices/1810005-gettaskattribute.md)
- [GetTaskExecutionMode](kernel/ioscsiprotocolservices/1810017-gettaskexecutionmode.md)
- [GetTaskState](kernel/ioscsiprotocolservices/1810028-gettaskstate.md)
- [GetTimeoutDuration](kernel/ioscsiprotocolservices/1810038-gettimeoutduration.md)
- [HandleAbortTask](kernel/ioscsiprotocolservices/1810051-handleaborttask.md)
- [HandleAbortTaskSet](kernel/ioscsiprotocolservices/1810062-handleaborttaskset.md)
- [HandleCheckPowerState](kernel/ioscsiprotocolservices/1810080-handlecheckpowerstate.md)
- [HandleClearACA](kernel/ioscsiprotocolservices/1810093-handleclearaca.md)
- [HandleClearTaskSet](kernel/ioscsiprotocolservices/1810105-handlecleartaskset.md)
- [HandleLogicalUnitReset](kernel/ioscsiprotocolservices/1810119-handlelogicalunitreset.md)
- [HandlePowerChange](kernel/ioscsiprotocolservices/1810127-handlepowerchange.md)
- [HandlePowerOff](kernel/ioscsiprotocolservices/1810144-handlepoweroff.md)
- [HandlePowerOn](kernel/ioscsiprotocolservices/1810154-handlepoweron.md)
- [HandleProtocolServiceFeature](kernel/ioscsiprotocolservices/1810168-handleprotocolservicefeature.md)
- [HandleTargetReset](kernel/ioscsiprotocolservices/1810176-handletargetreset.md)
- [init](kernel/ioscsiprotocolservices/1810187-init.md)
- [InitializePowerManagement](kernel/ioscsiprotocolservices/1810204-initializepowermanagement.md)
- [IsProtocolServiceSupported](kernel/ioscsiprotocolservices/1810217-isprotocolservicesupported.md)
- [LogicalUnitReset](kernel/ioscsiprotocolservices/1810234-logicalunitreset.md)
- [ProcessCompletedTask](kernel/ioscsiprotocolservices/1810248-processcompletedtask.md)
- [RegisterSCSITaskCompletionRoutine](kernel/ioscsiprotocolservices/1810264-registerscsitaskcompletionroutin.md)
- [RejectSCSITasksCurrentlyQueued](kernel/ioscsiprotocolservices/1810276-rejectscsitaskscurrentlyqueued.md)
- [RejectTask](kernel/ioscsiprotocolservices/1810289-rejecttask.md)
- [RetrieveNextSCSITaskFromQueue](kernel/ioscsiprotocolservices/1810300-retrievenextscsitaskfromqueue.md)
- [SendNotification_DeviceRemoved](kernel/ioscsiprotocolservices/1810317-sendnotification_deviceremoved.md)
- [SendNotification_VerifyDeviceState](kernel/ioscsiprotocolservices/1810332-sendnotification_verifydevicesta.md)
- [SendSCSICommand](kernel/ioscsiprotocolservices/1810345-sendscsicommand.md)
- [SendSCSITasksFromQueue](kernel/ioscsiprotocolservices/1810363-sendscsitasksfromqueue.md)
- [SetAutoSenseData(SCSITaskIdentifier, SCSI_Sense_Data *)](kernel/ioscsiprotocolservices/1810382-setautosensedata.md)
- [SetAutoSenseData(SCSITaskIdentifier, SCSI_Sense_Data *, UInt8)](kernel/ioscsiprotocolservices/1810397-setautosensedata.md)
- [SetProtocolLayerReference](kernel/ioscsiprotocolservices/1810411-setprotocollayerreference.md)
- [SetRealizedDataTransferCount](kernel/ioscsiprotocolservices/1810431-setrealizeddatatransfercount.md)
- [SetTaskExecutionMode](kernel/ioscsiprotocolservices/1810455-settaskexecutionmode.md)
- [SetTaskState](kernel/ioscsiprotocolservices/1810476-settaskstate.md)
- [start](kernel/ioscsiprotocolservices/1810514-start.md)
- [TargetReset](kernel/ioscsiprotocolservices/1810537-targetreset.md)
- [TicklePowerManager](kernel/ioscsiprotocolservices/1810572-ticklepowermanager.md)

### Instance Methods

- [AbortCommand](kernel/ioscsiprotocolservices/1509516-abortcommand.md)
- [AbortSCSICommand](kernel/ioscsiprotocolservices/1509523-abortscsicommand.md)
- [AbortSCSITaskFromQueue](kernel/ioscsiprotocolservices/1509532-abortscsitaskfromqueue.md)
- [AbortTask](kernel/ioscsiprotocolservices/1509469-aborttask.md)
- [AbortTaskSet](kernel/ioscsiprotocolservices/1509555-aborttaskset.md)
- [AddSCSITaskToHeadOfQueue](kernel/ioscsiprotocolservices/1509548-addscsitasktoheadofqueue.md)
- [AddSCSITaskToQueue](kernel/ioscsiprotocolservices/1509468-addscsitasktoqueue.md)
- [ClearACA](kernel/ioscsiprotocolservices/1509499-clearaca.md)
- [ClearTaskSet](kernel/ioscsiprotocolservices/1509486-cleartaskset.md)
- [CommandCompleted](kernel/ioscsiprotocolservices/1509542-commandcompleted.md)
- [CreateSCSITargetDevice](kernel/ioscsiprotocolservices/1509451-createscsitargetdevice.md)
- [EnsureAutosenseDescriptorExists](kernel/ioscsiprotocolservices/1509514-ensureautosensedescriptorexists.md)
- [ExecuteCommand](kernel/ioscsiprotocolservices/1509557-executecommand.md)
- [GetAutosenseRequestedDataTransferCount](kernel/ioscsiprotocolservices/1509552-getautosenserequesteddatatransfe.md)
- [GetCommandDescriptorBlock](kernel/ioscsiprotocolservices/1509478-getcommanddescriptorblock.md)
- [GetCommandDescriptorBlockSize](kernel/ioscsiprotocolservices/1509487-getcommanddescriptorblocksize.md)
- [GetDataBuffer](kernel/ioscsiprotocolservices/1509473-getdatabuffer.md)
- [GetDataBufferOffset](kernel/ioscsiprotocolservices/1509488-getdatabufferoffset.md)
- [GetDataTransferDirection](kernel/ioscsiprotocolservices/1509529-getdatatransferdirection.md)
- [GetInitialPowerState](kernel/ioscsiprotocolservices/1509539-getinitialpowerstate.md)
- [GetLogicalUnitBytes](kernel/ioscsiprotocolservices/1509509-getlogicalunitbytes.md)
- [GetLogicalUnitNumber](kernel/ioscsiprotocolservices/1509490-getlogicalunitnumber.md)
- [GetProtocolLayerReference](kernel/ioscsiprotocolservices/1509452-getprotocollayerreference.md)
- [GetRealizedDataTransferCount](kernel/ioscsiprotocolservices/1509483-getrealizeddatatransfercount.md)
- [GetRequestedDataTransferCount](kernel/ioscsiprotocolservices/1509512-getrequesteddatatransfercount.md)
- [GetTaskAttribute](kernel/ioscsiprotocolservices/1509503-gettaskattribute.md)
- [GetTaskExecutionMode](kernel/ioscsiprotocolservices/1509482-gettaskexecutionmode.md)
- [GetTaskState](kernel/ioscsiprotocolservices/1509554-gettaskstate.md)
- [GetTimeoutDuration](kernel/ioscsiprotocolservices/1509479-gettimeoutduration.md)
- [HandleAbortTask](kernel/ioscsiprotocolservices/1509457-handleaborttask.md)
- [HandleAbortTaskSet](kernel/ioscsiprotocolservices/1509459-handleaborttaskset.md)
- [HandleCheckPowerState](kernel/ioscsiprotocolservices/1509517-handlecheckpowerstate.md)
- [HandleClearACA](kernel/ioscsiprotocolservices/1509493-handleclearaca.md)
- [HandleClearTaskSet](kernel/ioscsiprotocolservices/1509518-handlecleartaskset.md)
- [HandleLogicalUnitReset](kernel/ioscsiprotocolservices/1509540-handlelogicalunitreset.md)
- [HandlePowerChange](kernel/ioscsiprotocolservices/1509462-handlepowerchange.md)
- [HandlePowerOff](kernel/ioscsiprotocolservices/1509450-handlepoweroff.md)
- [HandlePowerOn](kernel/ioscsiprotocolservices/1509550-handlepoweron.md)
- [HandleProtocolServiceFeature](kernel/ioscsiprotocolservices/1509558-handleprotocolservicefeature.md)
- [HandleTargetReset](kernel/ioscsiprotocolservices/1509551-handletargetreset.md)
- [InitializePowerManagement](kernel/ioscsiprotocolservices/1509527-initializepowermanagement.md)
- [IsProtocolServiceSupported](kernel/ioscsiprotocolservices/1509521-isprotocolservicesupported.md)
- [LogicalUnitReset](kernel/ioscsiprotocolservices/1509536-logicalunitreset.md)
- [ProcessCompletedTask](kernel/ioscsiprotocolservices/1509505-processcompletedtask.md)
- [RegisterSCSITaskCompletionRoutine](kernel/ioscsiprotocolservices/1509511-registerscsitaskcompletionroutin.md)
- [RejectSCSITasksCurrentlyQueued](kernel/ioscsiprotocolservices/1509507-rejectscsitaskscurrentlyqueued.md)
- [RejectTask](kernel/ioscsiprotocolservices/1509449-rejecttask.md)
- [RetrieveNextSCSITaskFromQueue](kernel/ioscsiprotocolservices/1509515-retrievenextscsitaskfromqueue.md)
- [SendNotification_DeviceRemoved](kernel/ioscsiprotocolservices/1509460-sendnotification_deviceremoved.md)
- [SendNotification_VerifyDeviceState](kernel/ioscsiprotocolservices/1509475-sendnotification_verifydevicesta.md)
- [SendSCSICommand](kernel/ioscsiprotocolservices/1509525-sendscsicommand.md)
- [SendSCSITasksFromQueue](kernel/ioscsiprotocolservices/1509520-sendscsitasksfromqueue.md)
- [SetAutoSenseData](kernel/ioscsiprotocolservices/1509471-setautosensedata.md)
- [SetAutoSenseData](kernel/ioscsiprotocolservices/3516769-setautosensedata.md)
- [SetProtocolLayerReference](kernel/ioscsiprotocolservices/1509454-setprotocollayerreference.md)
- [SetRealizedDataTransferCount](kernel/ioscsiprotocolservices/1509491-setrealizeddatatransfercount.md)
- [SetTaskExecutionMode](kernel/ioscsiprotocolservices/1509533-settaskexecutionmode.md)
- [SetTaskState](kernel/ioscsiprotocolservices/1509531-settaskstate.md)
- [TargetReset](kernel/ioscsiprotocolservices/1509484-targetreset.md)
- [TicklePowerManager](kernel/ioscsiprotocolservices/1509545-ticklepowermanager.md)
- [free](kernel/ioscsiprotocolservices/1509497-free.md)
- [getMetaClass](kernel/ioscsiprotocolservices/1509463-getmetaclass.md)
- [init](kernel/ioscsiprotocolservices/1509534-init.md)
- [start](kernel/ioscsiprotocolservices/1509456-start.md)

## Relationships

### Inherits From

- [IOSCSIProtocolInterface](kernel/ioscsiprotocolinterface.md)

## See Also

### Base Types

- [IOReducedBlockServices](kernel/ioreducedblockservices.md)
- [IOSCSIPeripheralDeviceNub](kernel/ioscsiperipheraldevicenub.md)
- [IOSCSIPrimaryCommandsDevice](kernel/ioscsiprimarycommandsdevice.md)
- [IOSCSIProtocolInterface](kernel/ioscsiprotocolinterface.md)
