基于OHCI的USB主机 —— UFI数据结构1
/** * Inquiry命令数据结构 */ typedefstruct _INQUIRY_SPC { UINT8OperationCode; //!< 操作码,应为0x12 UINT8Lun; //!< 逻辑单元号,应为0 UINT8PageCode; //!< 页代码,应为0 UINT8Reserved1; //!< 保留,应为0 UINT8AllocationLen; //!< 存储空间长度,常为0x24 UINT8Reserved[7]; //!< 保留,应为0 } INQUIRY_SPC, *PINQUIRY_SPC; |
/** * 读容量命令 */ typedefstruct _READ_CAPACITY { UINT8OperationCode; //!< 操作码,应为0x25 UINT8Reserved[15]; //!< 保留,应为0 }READ_CAPACITY; |
/** * 读命令 */ 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; |
/** * 写命令 */ 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相关推荐
- 基于OHCI的USB主机 —— UFI数据结构2
UFI命令块 /** * UFI命令块 */ typedef union _CDB_RBC { READ_10 ufiRead10; //!&l ...
- 基于OHCI的USB主机 —— UFI数据结构3
UFI命令运行状态结构,用于判断UFI命令是否执行完毕. typedef struct _UFI_CMD_RUNNING{ unsigned char state; //!< ...
- 基于OHCI的USB主机 —— UFI命令 USB Mass Storage Class Bulk-Only Transport协议介绍
USB Mass Storage Class Bulk-Only Transport Microsoft公司至Windows98后,USB主机 都支持Bulk-Only标准,所以现在的大容量存储类设备 ...
- 基于OHCI的USB主机 —— UFI命令监视代码
在调用完上面的UFI命令后,ufiCmdRunning.state就被设置为UFI_STATE_BEGIN态,在主循环中调用本函数,用来判断UFI命令是否执行完毕,以及是否执行成功. /** * U ...
- 基于OHCI的USB主机——UFI查询命令(Inquiry)
查询命令(INQUIRY)请求获取UFI设备参数的信息.他被用作主机上的驱动器访问FUI设备的配置,特别是在接通电源和硬件复位之后使用.命令内容如下表: 位 字节 7 6 5 4 3 2 1 0 0 ...
- 基于OHCI的USB主机——UFI读扇区命令(Read10)
读命令要求UFI设备传输数据到主机,记录在逻辑块地址的最新数据值将被返回,命令格式如下表: 位 字节 7 6 5 4 3 2 1 0 0 操作代码(0x28) 1 逻辑单元号(LUN) DPO FU ...
- 基于OHCI的USB主机 —— UFI查询代码
/** * 磁盘查询命令 * @param *buf 数据缓冲区指针 * @return 0 - 成功 */ short ufiInquiry(BYTE *buf) { INQUIRY ...
- 基于OHCI的USB主机 —— UFI读容量代码
/** * 读磁盘容量命令 * @param *buf 数据缓冲区指针 * @return 0 - 成功 */ short ufiReadCapacity(BYTE *buf) { R ...
- 基于OHCI的USB主机 —— UFI写扇区代码
/** * 写磁盘扇区命令 * @param sect 物理扇区号 * @param *buf 数据缓冲区指针 * @return 0 - 成功 */ short ufiWriteSect( ...
最新文章
- shell脚本中echo显示内容带颜色
- python语言if语句-Python中的if判断语句入门
- 46.Express框架 GET 方法和POST 方法
- 校验金额、大小写字母、大写字母、合法uri、email
- JS-立即执行函数(function(){...})() amp;amp; (function(){...})()
- Python基于nginx访问日志并统计IP访问量
- ubuntu kvm 部署安装 快照
- acwing199.余数之和(除法分块)
- Redis详解(六)------ RDB 持久化
- 如何用C#代码判断一个类的类型
- jquery版本过低安全漏洞问题
- swagger注释API :@ApiModel
- Idea编译:Java找不到符号
- 微信终于可以发送大文件了!
- 【物联网+GIS】让传感器数据在三维地图上显示,更直观,更震撼!
- UG NX二次开发(C#)-建模-判断一张面是孔面还是凸台面
- EXCEL中数字显示为E+18且尾数为0的解决方法
- 【BW系列】SAP 讲讲BW/4 HANA和BW on HANA的区别
- 简述计算机用二进制的原因,简述计算机采用二进制的原因
- Nginx 404 排查过程
热门文章
- 全局程序集缓存gac中安装程序集_我就不信2W字把源码拆的这么碎,你还不明白mybatis缓存...
- 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )
- 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )
- 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
- 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )
- 【APUE】文件 I/O 操作
- nmap之扫描端口(附加hping3隐藏扫描)
- intelliJ idea 下载安装
- Android--Genymotion虚拟机(模拟器)的配置
- PowerDesigner 小工具窗