- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 SCSI CDB 编程的新手。我有一些使用 6byte CDB 为写命令编写的代码
ccb = (Exec_IO_CCB *)(buffer + header_size);
ccb->ccb_length = sizeof(Exec_IO_CCB);
ccb->cam_opcode = 0x1;
ccb->connect_id = 0;
ccb->data_buf_ptr = (long)(header_size + ccb->ccb_length + MAX_SENSE_LEN);
ccb->data_xfer_length = (long)(XFER_BUFSIZE - ccb->data_buf_ptr);
ccb->sense_buf_ptr = (long)(header_size + ccb->ccb_length);
ccb->sense_buf_length = MAX_SENSE_LEN;
ccb->time_out = CAM_TIMEOUT;
ccb->cdb_length = 6;
ccb->cam_flags = DATA_OUT;
ccb->cdb[0] = 0xA; /* 0xA SCSI Opcode for write operation */
ccb->cdb[1] = 0;
ccb->cdb[2] = (ccb->data_xfer_length & 0xFF0000) >> 16;
ccb->cdb[3] = (ccb->data_xfer_length & 0xFF00) >> 8;
ccb->cdb[4] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[5] = 0;
从上面的代码我没看懂cdb[2]和cdb[3]是怎么推导出来的?
在类似的线路上,我正在尝试为写命令开发 10 字节的 CDB。如何填写占LBA的cdb[2-5]的数据?
ccb->cam_flags = DATA_OUT;
ccb->cdb[0] = 0x2A; /* 0x2A SCSI Opcode for write10 CDB */
ccb->cdb[1] = 0;
ccb->cdb[2] = ??
ccb->cdb[3] = ??
ccb->cdb[4] = ??
ccb->cdb[5] = ??
ccb->cdb[6] = 0;
ccb->cdb[7] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[8] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[9] = 0;
最佳答案
查看 SCSI SBC 标准。这是草稿形式的 SBC-3,但是 WRITE (6) 和 (10) 在相当长的一段时间内没有改变:http://www.t10.org/ftp/t10/document.05/05-344r0.pdf .
对于WRITE (6),cdb[2]和cdb[3]是逻辑 block 地址的低16位,不是传输长度。传输长度是您要写入的 block 数。地址是设备上您要开始写入它们的位置。如果它在磁盘的最开始,它是 LBA 0。如果设备有 512 字节的 block ,并且你想开始写入 1 MiB,你的地址是 LBA 2048。
关于创建 SCSI 10 字节 CDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349606/
我正在寻找特定于供应商的 SCSI 命令的引用。我主要关心以下几点: 0xD4 0xD5 0xD8 据我所知,这些命令是一些“特殊”的读取命令,用在某些 Plextor 驱动器上。但是,我无法在任何地
windows 是否有特定的接口(interface),我可以通过它发送特定的 scsi 命令,如查询到 scsi 设备?我在网上搜索,找到了对 SCSI Pass Through 接口(interf
我尝试发出 scsi read(10)和 write(10)到 SSD。我用 this example code作为引用/基本代码。 这是我的 scsi 读取: #define READ_REPLY_
我想知道将错误代码映射到字符串的最佳方法是什么,例如在 SCSI 协议(protocol)中,错误总是以数字形式返回。像这样: 00h GOOD 02h CHECK CONDITION 04h CON
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
有两个服务器:导出 5TB 磁盘的 Openfiler(v. 2.99) 和通过 iscsi 协议(protocol)使用该磁盘的 Proxmox(v. 3.4)。 使用此磁盘时,我在/var/log
我一直在使用 scsi 命令,我可以发送一些基本命令,例如不同的查询等。 我一直在使用这个示例来生成我的查询。我正在努力使这个示例能够使用不同的 scsi 命令。 http://www.tldp.or
我用了libaums访问我的自定义 USB 的私有(private)分区。现在我想知道如何读取 USB 的隐藏区域。为了访问隐藏区域,我知道 USB 隐藏地址的扇区范围,以及用于读取和写入隐藏区域的供
我有一个程序,其中未安装或以任何其他方式使用的驱动器需要降速。 我注意到在我关闭文件描述符后驱动器会自动加速。 我还没有找到任何信息,这是为什么,有什么办法可以禁用它吗? 这里有一个小程序可以自己测试
给定一个 SCSI 设备作为输入,我正在尝试实现一个内核模块,它可以: 获取发送到该特定设备的 SCSI 命令列表并计算该命令的发出次数。 我该如何实现? 我是内核模块编程的初学者,事实上我到目前为止
如何在 linux & c 上获取 SCSI 设备的供应商名称? 最佳答案 如果您知道设备/总线 ID,您可以阅读/sys 文件,同时检查 lsscsi . -> cat /sys/bus/scs
我正在尝试编写一个程序来阻止使用 SCSI 2 保留的 LUN。 在 SCSI 2 预留中,LUN 可以由具有不同路径的同一主机预留,还是 I-T-L 联结只有一条路径。 例如:假设主机尝试从同一目标
我在 Mac 上,正在尝试导入虚拟机镜像(.ova 文件)。我尝试在 VM 上导入文件并收到以下错误。 找不到名为“SCSI Controller ”的存储 Controller 任何已经存在的针对此
SCSI 是标准电子接口(interface),允许个人计算机与磁盘驱动器、磁带驱动器等外围硬件进行通信。 外围组件互连(PCI),顾名思义,是一种描述如何以结构化和受控方式将系统的外围组件连接在一起
SCSI 是标准的电子接口(interface),允许个人计算机与外围硬件(如磁盘驱动器、磁带驱动器等)进行通信。 外围组件互连 (PCI),顾名思义,是一种标准,描述了如何以结构化和受控的方式将系统
我正在使用 C/C++ 在 Windows 中进行开发,我想知道是否有可能获得适当的 \\.\SCSI设备名称 \\.\PhysicalDrive ?.. 例如,很高兴知道如何获得 \\.\Physi
我有一个应用程序可以同时执行 SCSI READ10 和 WRITE10 操作。当他们到达我的代码的较低级别时,他们调用 write(),然后调用/dev/sgXX 上的 read()。不过,我在接收
我是 SCSI CDB 编程的新手。我有一些使用 6byte CDB 为写命令编写的代码 ccb = (Exec_IO_CCB *)(buffer + header_size); ccb->ccb
我已经阅读了phison的源代码(关于badusb,python文件)。但我无法理解程序向 SCSI 设备发送什么命令。在阅读了有关 SCSI 命令的内容后,我仍然找不到以“06h”开头的操作码(存在
我正在使用 Linux LIO 包为后台存储创建环回设备。我正在使用“targetcli”实用程序来发出站点中提到的以下命令 - http://linux-iscsi.org/wiki/Loopbac
我是一名优秀的程序员,十分优秀!