Windows GetVolumeInformation返回SD卡的0卷序列号

Windows GetVolumeInformation返回SD卡的0卷序列号,windows,Windows,我正在使用GetVolumeInformation检索卷序列号,并且遇到在某个系统上,exFAT格式的SD卡返回值0的情况。这怎么会发生 该代码在原则上工作,因为它经过广泛测试和验证,返回与“vol”命令相同的结果,例如: C:\Users\Krueger>vold: 驱动器D中的卷是E1 卷序列号为3030-3862请显示您的代码。在装载时,Windows不会确保卷的序列号在系统中非零且唯一。格式化时,序列号设置为随机32位或64位值。它不应该为零,除非有人故意将其设置为零。但是允许为零,并且

我正在使用GetVolumeInformation检索卷序列号,并且遇到在某个系统上,exFAT格式的SD卡返回值0的情况。这怎么会发生

该代码在原则上工作,因为它经过广泛测试和验证,返回与“vol”命令相同的结果,例如:

C:\Users\Krueger>vold: 驱动器D中的卷是E1
卷序列号为3030-3862

请显示您的代码。在装载时,Windows不会确保卷的序列号在系统中非零且唯一。格式化时,序列号设置为随机32位或64位值。它不应该为零,除非有人故意将其设置为零。但是允许为零,并且必须准备好处理,例如WebDAV卷的情况。类似地,文件ID允许为0,并且WebDAV卷上的所有文件的ID都为0。在我看来,使用(VSN,FileId)作为Unix(st_dev,st_ino)等价物的代码是可疑的。Windows没有简单的等效程序。我验证了在用户的计算机上,“vol”命令还显示0000-0000作为相应设备的序列号,因此代码确实工作正常。这可能是某种删除此信息的安全功能吗?仅供参考,当卷由文件系统装入时,序列号在(VPB)中设置。它是文件系统的一个属性。根据,它存储在主引导区域中,作为4字节
卷序列号
和“应(强制)包含唯一序列号”以及“[i]实施应(建议)通过组合格式化exFAT卷的日期和时间来生成序列号”。