本文共 888 字,大约阅读时间需要 2 分钟。
/** * 读磁盘容量命令 * @param *buf 数据缓冲区指针 * @return 0 - 成功 */ short ufiReadCapacity( BYTE *buf) { READ_CAPACITY *readCapacity; BYTE i; CBW *cbw;
// 设置 Bulk-Only 协议参数 cbw = &ufiCmdRunning. cbw ; cbw-> dCBW_Signature = CBW_SIGNATURE; cbw-> dCBW_Tag = 0x60a624de; cbw-> dCBW_DataXferLen = 0x08; cbw-> bCBW_Flag =0x80; cbw-> bCBW_LUN =0; cbw-> bCBW_CDBLen = 0x0A; //sizeof(CDB_RBC);
// 设置 UFI 命令参数 readCapacity = &(cbw-> cdbRBC . ufiReadCapacity ); readCapacity-> OperationCode = 0x25; for (i = 0; i < sizeof (readCapacity-> Reserved ); i++) readCapacity-> Reserved [i] = 0;
// 设置状态扫描函数所需要的参数 ufiCmdRunning. funUfiCmd = bulkRead; ufiCmdRunning. pBuf = buf; ufiCmdRunning. state = UFI_STATE_BEGIN;
// 通过 Bulk 端口发送读命令 bulkRead(( unsigned char *)&ufiCmdRunning. cbw , buf, ( unsigned char *)&ufiCmdRunning. csw ); return 0; } |