📄 mass_command.h
字号:
#ifndef _MASS_COMMAND_H
#define _MASS_COMMAND_H
// UFI指令代码定义
#define UFI_READ10 0x28
#define UFI_WRITE10 0x2A
#define UFI_INQUIRY 0x12
#define UFI_READCAPACITY 0x25
#define UFI_TESTUNITREADY 0x00
#define UFI_REQUESTSENSE 0x03
/* 查询命令结构定义 */
typedef struct _INQUIRY_COMMAND{
unsigned char OperationCode;
unsigned char Reserved1;
unsigned char PageCode;
unsigned char Reserved2;
unsigned char AllocationLength;
}INQUIRY_COMMAND,*PINQUIRY_COMMAND;
typedef struct _READ_10 {
unsigned char OperationCode;
unsigned char Reserved1;
unsigned char LBA_3;
unsigned char LBA_2;
unsigned char LBA_1;
unsigned char LBA_0;
unsigned char Reserved2;
unsigned char TransferLength_1;
unsigned char TransferLength_0;
} READ_10, * PREAD_10;
typedef struct _READ_CAPACITY{
unsigned char OperationCode;
unsigned char Reserved1;
unsigned char LBA_3;
unsigned char LBA_2;
unsigned char LBA_1;
unsigned char LBA_0;
}READ_CAPACITY,*PREAD_CAPACITY;
typedef struct _WRITE_10 {
unsigned char OperationCode;
unsigned char Reserved1;
unsigned char LBA_3;
unsigned char LBA_2;
unsigned char LBA_1;
unsigned char LBA_0;
unsigned char Reserved2;
unsigned char TransferLength_1;
unsigned char TransferLength_0;
} WRITE_10, *PWRITE_10;
typedef struct _REQUEST_SENSE{
unsigned char OperationCode;
unsigned char Reserved1[3];
unsigned char AllocationLength;
}REQUEST_SENSE,*PREQUEST_SENSE;
typedef struct _SENSE_DATA{
unsigned char SenseKey;
unsigned char ASC;
unsigned char ASCQ;
}SENSE_DATA,*PSENSE_DATA;
#define GetVendorInformation(DataBuffPtr) (uint8 *)((uint8 *)DataBuffPtr+8)
#define GetProductIdentification(DataBuffPtr) (uint8 *)((uint8 *)DataBuffPtr+16)
#define GetProductRevisionLevel(DataBuffPtr) (uint8 *)((uint8 *)DataBuffPtr+32)
#define GetLastLogicalBlockAddress(x) (uint32)(x[3]+x[2]*0x100+x[1]*0x10000+x[0]*0x1000000)
#define GetBlockLengthInBytes(x) (uint32)(x[7]+x[6]*0x100+x[5]*0x10000+x[4]*0x1000000)
void MCom_INQUIRY(uint8 *ComBuffPtr);
void MCom_Read10(uint8 *ComBuffPtr,uint32 LBA, uint16 TrBlocks);
void MCom_ReadCapacity(uint8 *ComBuffPtr);
void MCom_Write10(uint8 *ComBuffPtr,uint32 LBA, uint16 TrBlocks);
void MCom_RequestSense(uint8 * ComBuffPtr);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -