为什么 CDROM_TOC.Length 是 UCHAR[2] 而不是 WORD?

Why is CDROM_TOC.Length an UCHAR[2] instead of WORD?

documentation中,长度由两个无符号字节组成:

长度

表示内容数据table的长度,以字节为单位。此长度值不包括 Length 成员本身的长度。

当你在Little Endian中形成一个WORD时,它确实是正确的值,但为什么他们选择不直接使用一个WORD

深入挖掘the docs后:

有关此成员的允许值的信息,请参阅国家信息技术标准委员会 (NCITS) 的规范 T10/1363-D。

这将我们带到这里:

https://ia802909.us.archive.org/35/items/mmc3r10g/mmc3r10g.pdf

当您浏览这 471 页中的单词 endian 时,结果为零,而单词 integer 只有五个结果。

但在 5.23.2 TOC/PMA/ATIP 响应数据格式 0000b 中,我们可以推断,因为在 位 0 旁边的 table 中有 (LSB),确实是Little EndianBig Endian中的16位整数(感谢Hans).

总而言之,他们只是让结构看起来像这些规范中的布局。