我正在Windows上编写一个用户空间文件系统驱动程序,字节顺序转换是我一直在处理的事情,因为这个特定的文件系统总是以小端字符顺序格式存储值,并且驱动程序希望(如果必要的话)为运行它的CPU转换这些值。然而,我发现自己在想,我是否甚至需要担心字节顺序转换,因为据我所知,桌面Windows只支持低端体系结构(IA32、x86-84等),因此,磁盘上的低端值在没有转换的情况下是非常好的。这种观察结果准确吗?如果是的话,假设Windows将始终在低端硬件上运行,这一假设是否普遍可接受?此外,有没有可能(在2011年)在大端仿真器或其他东西上运行Windows,这样甚至可以测试字符顺序问题?
编辑:为了更清晰,我的代码当前的工作方式,我在启动时执行字节顺序检查,然后每次我从磁盘加载一个值时,我通过一个内联函数运行它,如果体系结构是高字节顺序,该函数使用内部函数来更改字节顺序。问题是,我不知道我是否错过了其中一个或多个需要进行转换的地方,而查看我是否搞砸了的最简单方法是在大端架构上运行程序。所以我有兴趣知道(a)是否有必要做这些检查,因为Windows通常不在小端平台上运行(至少今天是这样),以及(b)我如何可能测试我的代码,因为我想不出一种在大端架构上运行Windows的方法,并且手动反转磁盘上的多字节值仍然涉及一个手动过程,我很可能会搞砸。
https://stackoverflow.com/questions/6449468
复制相似问题