被Series主机格式化的Xbox专有格式硬盘无法识别
aTerminal opened this issue · 4 comments
aTerminal commented
skydevil88 commented
Win11磁盘管理显示未初始化是正常的,可能USB线或者硬盘盒问题,接机箱后面USB口看看。
aTerminal commented
Win11磁盘管理显示未初始化是正常的,可能USB线或者硬盘盒问题,接机箱后面USB口看看。
多谢您的回复。在得知磁盘管理显示未初始化正常以后,我对扫描按钮ButScan_Click进行了调试:
如果我没有理解错的话,读取MBR的方法ReadMBR实质上是返回磁盘物理扇区0-1FF块,然后截取前892个字符,与末尾为123456780000的字符串进行比较。事实上,我使用DiskGenius检查Xbox格式化后的硬盘,发现其磁盘扇区确实也是如此:
可以很清楚地看到,在1B8-1BD块是123456780000,而前面都是0。理论上应该可以匹配到并检索出来,但是Win32 API ReadFile方法返回的MBR值却是全0的数:
这个返回值导致了不匹配的情况发生,所以无法被检索出来。我还没有找到对于外接硬盘返回值不正常的原因,但这个Win32 API在我的本地SSD上的返回值是完全正常的:
这和我用DiskGenius查到的结果完全一致。
我不确定这是否是Windows 11的bug,可能需要换到一台Windows 10的电脑再测试一次。期待您的回复。
skydevil88 commented
我用WIN11转换一块HDD硬盘完全正常,你的问题也没法回答。
aTerminal commented
我用WIN11转换一块HDD硬盘完全正常,你的问题也没法回答。
我使用扇区编辑器手动将扇区的"99CC"块更改为"55AA"后发现可以被PC识别了,转换回"99CC"同样可以被Xbox识别。这可能是Win32 API的问题,我会尝试寻找一个可能的解决方案。