// scsi.h
typedef struct {
UCHAR OperationCode;
UCHAR Reserved;
UCHAR ServiceAction[2];
UCHAR Reserved1;
UCHAR ServiceActionValid : 1;
UCHAR CommandTimeoutsDescriptorPresent : 1;
UCHAR CommandDurationLimitPage : 2;
UCHAR MultipleLogicalUnits : 2;
UCHAR ReadWriteCommandDurationLimitsPage : 1;
UCHAR Reserved2 : 1;
UCHAR CdbLength[2];
} RS_COMMAND_DESCRIPTOR, *PRS_COMMAND_DESCRIPTOR;
View the official Windows Driver Kit DDI reference// storport.h
typedef struct {
UCHAR OperationCode;
UCHAR Reserved;
UCHAR ServiceAction[2];
UCHAR Reserved1;
UCHAR ServiceActionValid : 1;
UCHAR CommandTimeoutsDescriptorPresent : 1;
UCHAR CommandDurationLimitPage : 2;
UCHAR MultipleLogicalUnits : 2;
UCHAR ReadWriteCommandDurationLimitsPage : 1;
UCHAR Reserved2 : 1;
UCHAR CdbLength[2];
} RS_COMMAND_DESCRIPTOR, *PRS_COMMAND_DESCRIPTOR;
View the official Windows Driver Kit DDI referenceNo description available.
The RS_COMMAND_DESCRIPTOR structure contains information about a single supported command descriptor block (CDB).
OperationCodeSpecifies the command being requested by the command descriptor block (CDB).
ReservedReserved for internal use.
ServiceAction[2]Provides qualification for the OperationCode field for some commands, allowing:
Reserved1Reserved for internal use.
ServiceActionValidIndicates that the contents of the OperationCode and ServiceAction fields are valid.
CommandTimeoutsDescriptorPresentIndicates that the command timeouts descriptor is included in this command descriptor.
CommandDurationLimitPageThe ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields together indicate the mode page that specifies the command duration limit for the command.
MultipleLogicalUnitsThe MultipleLogicalUnits field is described in the following table.
| Value | Description |
|---|---|
| 0 | The effect of this command on other logical units is not reported. |
| 1 | This command only affects this logical unit. |
| 2 | This command affects more than one but not all logical units contained in this SCSI target device. |
| 3 | This command affects all of the logical units contained in this SCSI target device. |
ReadWriteCommandDurationLimitsPageThe ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields together indicate the mode page that specifies the command duration limit for the command.
Reserved2Reserved for internal use.
CdbLength[2]Indicates the length of the command descriptor block in bytes for the OperationCode, and if the ServiceActionValid is TRUE, the action indicated by the ServiceAction field.
The values for the ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields are reflected in the following table.
| ReadWriteCommandDurationLimitsPage | CommandDurationLimitPage | Description |
|---|---|---|
| 0 | 0 | No command duration limit mode page is indicated for this command. |
| 1 | 0 | Reserved |
| 0 | 1 | Command duration limit A mode page |
| 0 | 2 | Command duration limit B mode page |
| 1 | 1 | Command duration limit T2A mode page |
| 1 | 2 | Command duration limit T2B mode page |
| 0 or 1 | 3 | Reserved |
The RS_COMMAND_DESCRIPTOR structure contains information about a single supported command descriptor block (CDB).
OperationCodeSpecifies the command being requested by the command descriptor block (CDB).
ReservedReserved for internal use.
ServiceAction[2]Provides qualification for the OperationCode field for some commands, allowing:
Reserved1Reserved for internal use.
ServiceActionValidIndicates that the contents of the OperationCode and ServiceAction fields are valid.
CommandTimeoutsDescriptorPresentIndicates that the command timeouts descriptor is included in this command descriptor.
CommandDurationLimitPageThe ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields together indicate the mode page that specifies the command duration limit for the command.
MultipleLogicalUnitsThe MultipleLogicalUnits field is described in the following table.
| Value | Description |
|---|---|
| 0 | The effect of this command on other logical units is not reported. |
| 1 | This command only affects this logical unit. |
| 2 | This command affects more than one but not all logical units contained in this target device. |
| 3 | This command affects all of the logical units contained in this target device. |
ReadWriteCommandDurationLimitsPageThe ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields together indicate the mode page that specifies the command duration limit for the command.
Reserved2Reserved for internal use.
CdbLength[2]Indicates the length of the command descriptor block in bytes for the OperationCode, and if the ServiceActionValid is TRUE, the action indicated by the ServiceAction field.
The values for the ReadWriteCommandDurationLimitsPage and the CommandDurationLimitPage fields are reflected in the following table.
| ReadWriteCommandDurationLimitsPage | CommandDurationLimitPage | Description |
|---|---|---|
| 0 | 0 | No command duration limit mode page is indicated for this command. |
| 1 | 0 | Reserved |
| 0 | 1 | Command duration limit A mode page |
| 0 | 2 | Command duration limit B mode page |
| 1 | 1 | Command duration limit T2A mode page |
| 1 | 2 | Command duration limit T2B mode page |
| 0 or 1 | 3 | Reserved |