为什么 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).
总而言之,他们只是让结构看起来像这些规范中的布局。
在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).
总而言之,他们只是让结构看起来像这些规范中的布局。