📄 scsidef.h
字号:
#ifndef __RBC_COMMAND__
#define __RBC_COMMAND__
#define RBC_CMD_FORMT 0x04
#define RBC_CMD_READ10 0x28
#define RBC_CMD_READCAPACITY 0x25
#define RBC_CMD_STARTSTOPUNIT 0x1B
#define RBC_CMD_SYNCACHE 0x35
#define RBC_CMD_VERIFY10 0x2F
#define RBC_CMD_WRITE10 0x2A
#define SPC_CMD_INQUIRY 0x12
#define SPC_CMD_MODESELECT6 0x15
#define SPC_CMD_MODESENSE6 0x1A
#define SPC_CMD_PERSISTANTRESERVIN 0x5E
#define SPC_CMD_PERSISTANTRESERVOUT 0x5F
#define SPC_CMD_PRVENTALLOWMEDIUMREMOVAL 0x1E
#define SPC_CMD_RELEASE6 0x17
#define SPC_CMD_REQUESTSENSE 0x03
#define SPC_CMD_RESERVE6 0x16
#define SPC_CMD_TESTUNITREADY 0x00
#define SPC_CMD_WRITEBUFFER 0x3B
#define SPC_CMD_FORMAT_CAPACITY 0x23
/////////////////RBC///////////////////////
typedef struct _INQUIRY_SPC{
unsigned OperationCode;
unsigned EVPD :1;
unsigned CMDDT :1;
unsigned Reserved0 :6;
unsigned char PageCode;
unsigned char Reserved1;
unsigned char AllocationLength;
unsigned char Control;
}INQUIRY_SPC,*pINQUIRY_SPC;
typedef struct _STD_INQUIRY_DATA{
unsigned DeviceType :5;
unsigned Reserved0 :3;
unsigned Reserved1 :7;
unsigned RemovableMedia :1;
unsigned char Reserved2;
unsigned Reserved3 :5;
unsigned NormACA :1;
unsigned Obsolete0 :1;
unsigned AERC :1;
unsigned char Reserved4[3];
unsigned SoftReset :1;
unsigned CommandQueue :1;
unsigned Reserved5 :1;
unsigned LinkedCommands :1;
unsigned Synchronous :1;
unsigned Wide16Bit :1;
unsigned Wide32Bit :1;
unsigned RelativeAddressing :1;
unsigned char VendorId[8];
unsigned char ProductId[16];
unsigned char productRevisionLevel[4];
}STD_INQUIRY_DATA,*pSTD_INQUIRY_DATA;
typedef struct _MODE_SENSE_SPC{
unsigned char OperationCode;
unsigned Reserved0 :3;
unsigned DisableBlockDescriptor :1;
unsigned Reserved1 :4;
unsigned PageCode :6;
unsigned PageControl :2;
unsigned char Reserved2;
unsigned char ParameterLength;
unsigned char Control;
}MODE_SENSE_SPC,*pMODE_SENSE_SPC;
typedef struct _MODE_DATA{
unsigned char OperationCode;
unsigned char Reserved0;
unsigned Reserved1 :7;
unsigned WP :1;
unsigned char Reserved2;
}MODE_DATA,*pMODE_DATA;
typedef struct _READ10_RBC{
unsigned char OperationCode;
unsigned char Reserved0;
unsigned char LogicalBlockAddress[4];
unsigned char Reserved1;
unsigned char TransferLength[2];
unsigned char Control;
}READ10_RBC,*pREAD10_RBC;
typedef struct _READ_CAPACITY_DATA{
unsigned char LogicalBlockAddress[4];
unsigned char LogicalLength[4];
}READ_CAPACITY_DATA,*pREAD_CAPACITY_DATA;
typedef struct _READ_CAPACITY_RBC{
unsigned char OperationCode;
unsigned char Reserved0[8];
unsigned char Control;
}READ_CAPACITY_RBC,*pREAD_CAPACITY_RBC;
typedef struct _CAPACITYLIST_HEAD{
unsigned char Reserved0[3];
unsigned char CapacityLength;
}CAPACITYLIST_HEAD,*pCAPACITYLIST_HEAD;
typedef struct _CM_FORMAT_CAPACITY_DATA{
unsigned char LogicalBlockAddress[4];
unsigned DescriptorCode :2;
unsigned Reserved0 :6;
unsigned char LogicalLength[3];
}CM_FORMAT_CAPACITY_DATA,*pCM_FORMAT_CAPACITY_DATA;
typedef struct _READ_FORMAT_CAPACITY_RBC{
unsigned char OperationCode;
unsigned char Reserved0[5];
unsigned char AllocationLength[2];
unsigned char Reserved1[3];
}READ_FORMAT_CAPACITY_RBC,*pREAD_FORMAT_CAPACITY_RBC;
typedef struct _TEST_UNIT_SPC{
unsigned char OperationCode;
unsigned char Reserved0[4];
unsigned Control;
}TEST_UNIT_SPC,*pTEST_UNIT_SPC;
typedef struct _VERIFY_RBC{
unsigned OperationCode;
unsigned char Reserved0;
unsigned char LogicalBlockAddress[4];
unsigned char Reserved1;
unsigned char TransferLength[2];
unsigned char Control;
}VERIFY_RBC,*pVERIFY_RBC;
typedef struct _WRITE10_RBC{
unsigned char OperationCode;
unsigned Reserved0 :3;
unsigned FUA :1;
unsigned Reserved1 :4;
unsigned char LogicalBlockAddress[4];
unsigned char Reserved2;
unsigned char TransferLength[2];
unsigned char Control;
}WRITE10_RBC,*pWRITE10_RBC;
typedef struct _MEDIA_REMOVAL_SPC{
unsigned char OperationCode;
unsigned char Reserved0[3];
unsigned Prevent :2;
unsigned Reserved1 :6;
unsigned Control;
}MEDIA_REMOVAL_SPC,*pMEDIA_REMOVAL_SPC;
typedef struct _GENERIC_RBC{
unsigned char OperationCode;
unsigned char Reserved0[15];
}GENERIC_RBC,*pGENERIC_RBC;
typedef union _CDB_RBC{
GENERIC_RBC RbcCdb_Generic;
INQUIRY_SPC SpcCdb_Inquiry;
MODE_SENSE_SPC SpcCdb_ModeSense;
READ10_RBC RbcCdb_Read10;
READ_CAPACITY_RBC RbcCdb_ReadCapacity;
READ_FORMAT_CAPACITY_RBC RbcCdb_ReadFormatCapacity;
TEST_UNIT_SPC SpcCdb_TestUnit;
VERIFY_RBC RbcCdb_Verify;
WRITE10_RBC RbcCdb_Write10;
MEDIA_REMOVAL_SPC SpcCdb_Removeal;
}CDB_RBC,*pCDB_RBC;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -