使用xusb.c示例代码在libusb中遇到逻辑块地址的偏移量?

时间:2017-10-20 02:38:20

标签: c usb libusb

我正在使用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 ..因此这个设备是特定的,代码中的错误,或规范中的某些内容?

read(10) structure

1 个答案:

答案 0 :(得分:0)

现在我正在深入研究fat32文件系统,问题变得明显了。我使用HxD将驱动器打开为逻辑磁盘,我将其用作与xusb.c输出进行比较的方法。这启动了卷开始时的扇区计数,而不是物理驱动器的开始。在物理磁盘选项卡下打开驱动器解决了该问题。