[USB编程] 圈圈书籍第八章,U盘,如何更改U盘的容量大小

[复制链接]
 楼主| 莉莉酱 发表于 2017-8-7 17:42 | 显示全部楼层 |阅读模式
圈圈的书籍中该数组被定义赋值为:
const uint8_t DiskCapacity[8]=
{
0x00,0x3f,0xff,0xff, //能够访问的最大逻辑块地址
0x00,0x00,0x02,0x00  //块的长度
//所以该磁盘的容量为
//(0x3FFFF+1)*0x200 = 0x8000000 = 128*1024*1024 = 128MB.
};

为何我更改为:
const uint8_t DiskCapacity[8]=
{
0x00,0xec,0xe0,0x00, //能够访问的最大逻辑块地址
0x00,0x00,0x02,0x00  //块的长度
//所以该磁盘的容量为
//(0xece000+1)*0x200 = 0x8000000 = 128*1024*1024 = 7580MB.
};
同时,最大格式化容量我也改为16G。
问题是:

枚举成功后,新出现的盘依然是为127M。
用BUS HOUND抓包,新的数组也发出去了。
是不是哪里还要做更改,我没发现???

zhs2007 发表于 2017-8-9 17:23 | 显示全部楼层
具体程序没见过,但与容量相关的有下面几个地方:
1. ReadCapacity
2. ReadFormatCapacities
3. MBR中的分区表(这个可以没有!)
4. FAT BPB中也有分区容量信息
后两个地方可以通过删除程序或WINHEX等工具擦除相关数据,然后格式化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部