根据上面的介绍,定义相应命令的数据结构如下:
查询(Inquiry)

/**

* Inquiry命令数据结构

*/

typedefstruct _INQUIRY_SPC

{

UINT8OperationCode; //!< 操作码,应为0x12

UINT8Lun;           //!< 逻辑单元号,应为0

UINT8PageCode;      //!< 页代码,应为0

UINT8Reserved1;     //!< 保留,应为0

UINT8AllocationLen; //!< 存储空间长度,常为0x24

UINT8Reserved[7];       //!< 保留,应为0

} INQUIRY_SPC, *PINQUIRY_SPC;

读容量(ReadCapacity)

/**

* 读容量命令

*/

typedefstruct _READ_CAPACITY

{

UINT8OperationCode; //!< 操作码,应为0x25

UINT8Reserved[15];   //!< 保留,应为0

}READ_CAPACITY;

读扇区(Read10)

/**

* 读命令

*/

typedefstruct _READ_10

{

UINT8OperationCode; //!< 操作码,应为0x28

UINT8Reserved1;     //!< 保留,应为0

UINT8LBA_3;         //!< 逻辑块地址3

UINT8LBA_2;         //!< 逻辑块地址2

UINT8LBA_1;          //!< 逻辑块地址1

UINT8LBA_0;         //!< 逻辑块地址0

UINT8Reserved2;     //!< 保留,应为0

UINT8XferLen_1;     //!< 传输扇区数,高字节

UINT8XferLen_0;     //!< 传输扇区数,低字节

UINT8Reserved3[4]; //!< 保留,应为0

}READ_10;

写扇区(Write10)

/**

* 写命令

*/

typedefstruct _WRITE_10

{

UINT8OperationCode; //!< 操作码,应为0x2A

UINT8Reserved1;     //!< 保留,应为0

UINT8LBA_3;         //!< 逻辑块地址3

UINT8LBA_2;         //!< 逻辑块地址2

UINT8LBA_1;          //!< 逻辑块地址1

UINT8LBA_0;         //!< 逻辑块地址0

UINT8Reserved2;     //!< 保留,应为0

UINT8XferLen_1;     //!< 传输扇区数,高字节

UINT8XferLen_0;     //!< 传输扇区数,低字节

UINT8Reserved3[4]; //!< 保留,应为0

}WRITE_10;

转载于:https://blog.51cto.com/lancelot/310335

基于OHCI的USB主机 —— UFI数据结构1相关推荐

  1. 基于OHCI的USB主机 —— UFI数据结构2

    UFI命令块 /**  * UFI命令块  */ typedef union _CDB_RBC {     READ_10             ufiRead10;           //!&l ...

  2. 基于OHCI的USB主机 —— UFI数据结构3

    UFI命令运行状态结构,用于判断UFI命令是否执行完毕. typedef struct _UFI_CMD_RUNNING{     unsigned char state;        //!< ...

  3. 基于OHCI的USB主机 —— UFI命令 USB Mass Storage Class Bulk-Only Transport协议介绍

    USB Mass Storage Class Bulk-Only Transport Microsoft公司至Windows98后,USB主机 都支持Bulk-Only标准,所以现在的大容量存储类设备 ...

  4. 基于OHCI的USB主机 —— UFI命令监视代码

    在调用完上面的UFI命令后,ufiCmdRunning.state就被设置为UFI_STATE_BEGIN态,在主循环中调用本函数,用来判断UFI命令是否执行完毕,以及是否执行成功. /**  * U ...

  5. 基于OHCI的USB主机——UFI查询命令(Inquiry)

    查询命令(INQUIRY)请求获取UFI设备参数的信息.他被用作主机上的驱动器访问FUI设备的配置,特别是在接通电源和硬件复位之后使用.命令内容如下表:  位 字节 7 6 5 4 3 2 1 0 0 ...

  6. 基于OHCI的USB主机——UFI读扇区命令(Read10)

    读命令要求UFI设备传输数据到主机,记录在逻辑块地址的最新数据值将被返回,命令格式如下表:  位 字节 7 6 5 4 3 2 1 0 0 操作代码(0x28) 1 逻辑单元号(LUN) DPO FU ...

  7. 基于OHCI的USB主机 —— UFI查询代码

    /**  * 磁盘查询命令  * @param *buf 数据缓冲区指针  * @return 0 - 成功  */ short ufiInquiry(BYTE *buf) {     INQUIRY ...

  8. 基于OHCI的USB主机 —— UFI读容量代码

    /**  * 读磁盘容量命令  * @param *buf 数据缓冲区指针  * @return 0 - 成功  */ short ufiReadCapacity(BYTE *buf) {     R ...

  9. 基于OHCI的USB主机 —— UFI写扇区代码

    /**  * 写磁盘扇区命令  * @param sect 物理扇区号  * @param *buf 数据缓冲区指针  * @return 0 - 成功  */ short ufiWriteSect( ...

最新文章

  1. shell脚本中echo显示内容带颜色
  2. python语言if语句-Python中的if判断语句入门
  3. 46.Express框架 GET 方法和POST 方法
  4. 校验金额、大小写字母、大写字母、合法uri、email
  5. JS-立即执行函数(function(){...})() amp;amp; (function(){...})()
  6. Python基于nginx访问日志并统计IP访问量
  7. ubuntu kvm 部署安装   快照
  8. acwing199.余数之和(除法分块)
  9. Redis详解(六)------ RDB 持久化
  10. 如何用C#代码判断一个类的类型
  11. jquery版本过低安全漏洞问题
  12. swagger注释API :@ApiModel
  13. Idea编译:Java找不到符号
  14. 微信终于可以发送大文件了!
  15. 【物联网+GIS】让传感器数据在三维地图上显示,更直观,更震撼!
  16. UG NX二次开发(C#)-建模-判断一张面是孔面还是凸台面
  17. EXCEL中数字显示为E+18且尾数为0的解决方法
  18. 【BW系列】SAP 讲讲BW/4 HANA和BW on HANA的区别
  19. 简述计算机用二进制的原因,简述计算机采用二进制的原因
  20. Nginx 404 排查过程

热门文章

  1. 全局程序集缓存gac中安装程序集_我就不信2W字把源码拆的这么碎,你还不明白mybatis缓存...
  2. 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )
  3. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )
  4. 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
  5. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )
  6. 【APUE】文件 I/O 操作
  7. nmap之扫描端口(附加hping3隐藏扫描)
  8. intelliJ idea 下载安装
  9. Android--Genymotion虚拟机(模拟器)的配置
  10. PowerDesigner 小工具窗