/**
 * 读磁盘容量命令
 * @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;
}