我使用libusb库中的示例文件xusb.c与闪存驱动器通信,并通过设置字节2-5来设置逻辑块地址参数,从而修改了test_mass_storage函数中read(10)的命令描述符块。然而,我得到了一个奇怪的结果,返回的扇区/块地址如下:
cdb[2] = 0x00;
cdb[3] = 0x00;
cdb[4] = 0x00;
cdb[5] = 0x61;
返回磁盘的扇区/块地址1,0x62是扇区2,依此类推。我在文档中找不到任何建议,偏移量应为0x60或96。那么,这个设备是特定的,是代码中的错误,还是规范中的某些东西?
发布于 2017-10-25 06:27:46
现在我正在深入研究fat32文件系统,这个问题变得显而易见了。我使用HxD将驱动器作为逻辑磁盘打开,并将其用作与xusb.c输出进行比较的方法。这将在卷的开始处开始扇区计数,而不是从物理驱动器的开始处开始。在Physical Disk选项卡下打开驱动器解决了此问题。
https://stackoverflow.com/questions/46841615
复制相似问题