📄 bulkonly.h
字号:
#ifndef __BULK_ONLY__
#define __BULK_ONLY__
//命令块封包结构
typedef struct _COM_BLOCK_WRAPPER {
DWORD dCBWSignature;
DWORD dCBWTag;
DWORD dCBWDataTransferLength;
INT8U bmCBWFlags;
INT8U bCBWLUN;
INT8U bCBWCBLength;
INT8U CBWCB[16];
} CBW, *PCBW;
//命令状态封包结构
typedef struct _COM_STATUS_WRAPPER {
DWORD dCSWSignature;
DWORD dCSWTag;
DWORD dCSWDataResidue;
INT8U bCSWStatus;
} CSW, *PCSW;
//UFI命令结构
typedef struct _UFI_IN_CBW {
INT8U bOpCode;
INT8U bLun;
INT8U dLBA[4];
INT8U reserved;
INT8U wLength[2];
INT8U reserved0;
INT8U reserved1;
INT8U reserved2;
} UFI, *PUFI;
//查询命令的返回值
typedef struct _ACK_INQUIRY {
INT8U bDeviceType;
INT8U bRMB;
INT8U bVerInfo;
INT8U bDataFormat;
INT8U bAttchInfo;
INT8U reserved[3];
INT8U vonder[8];
INT8U product[16];
INT8U Version[4];
} INQUIRY_RETURN, *PINQUIRY_RETURN;
typedef struct _DEV_MODE_PAGE {
INT8U MediumType[8];
INT8U ErrPage[12];
INT8U FlexDiskPage[32];
INT8U BlockAccessCapacity[12];
INT8U TimerPage[8];
} DEVICE_MODE_PAGE, *PDEVICE_MODE_PAGE;
extern INT8U ReqSense[18];
#define MAXLEN 2097152
extern INT8U LBA[MAXLEN]; //2Mbytes
extern DEVICE_MODE_PAGE DevModePage;
#define BYTE1(VAL) ((U8)((U32)VAL&0x000000FF))
#define BYTE2(VAL) ((U8)(((U32)VAL&0x0000FF00)>>8))
#define BYTE3(VAL) ((U8)(((U32)VAL&0x00FF0000)>>16))
#define BYTE4(VAL) ((U8)(((U32)VAL&0xFF000000)>>24))
extern CBW cbw1;
extern CSW csw1;
extern PUFI pufi1;
extern INT8U query_ret[];
extern void exec_UFI(void);
extern void bulk_only_trans(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -