---
title: SCSI commands
framework: scsiperipheralsdriverkit
role: collectionGroup
role_heading: API Collection
path: scsiperipheralsdriverkit/scsi-commands
---

# SCSI commands

Call the framework’s free functions to populate Command Descriptor Blocks (CDBs) to send to your peripheral.

## Topics

### Creating common SCSI commands

- [TEST_UNIT_READY](scsiperipheralsdriverkit/test_unit_ready.md)
- [INQUIRY](scsiperipheralsdriverkit/inquiry.md)
- [REQUEST_SENSE](scsiperipheralsdriverkit/request_sense.md)
- [READ_10](scsiperipheralsdriverkit/read_10.md)
- [WRITE_10](scsiperipheralsdriverkit/write_10.md)
- [READ_CAPACITY](scsiperipheralsdriverkit/read_capacity.md)

### Creating Self-Monitoring, Analysis and Reporting Technology (SMART) Commands

- [SMART_Enable_Disable_Operations](scsiperipheralsdriverkit/smart_enable_disable_operations.md)
- [SMART_Enable_Disable_AutoSave](scsiperipheralsdriverkit/smart_enable_disable_autosave.md)
- [SMART_Return_Status](scsiperipheralsdriverkit/smart_return_status.md)
- [SMART_Execute_Offline_Immediate](scsiperipheralsdriverkit/smart_execute_offline_immediate.md)
- [SMART_Read_Data](scsiperipheralsdriverkit/smart_read_data.md)
- [SMART_Read_Data_Thresholds](scsiperipheralsdriverkit/smart_read_data_thresholds.md)
- [SMART_Read_Log_At_Address](scsiperipheralsdriverkit/smart_read_log_at_address.md)
- [SMART_Write_Log_At_Address](scsiperipheralsdriverkit/smart_write_log_at_address.md)
- [SMART_Get_Identify_Data](scsiperipheralsdriverkit/smart_get_identify_data.md)

### Creating arbitrary SCSI commands

- [SetCommandCDB](scsiperipheralsdriverkit/setcommandcdb.md)

### Supporting types

- [SCSIDeviceOutParameters](scsiperipheralsdriverkit/scsideviceoutparameters.md)
- [SCSIDeviceInParameters](scsiperipheralsdriverkit/scsideviceinparameters.md)
