Почему CDROM_TO C .Length - UCHAR [2] вместо WORD? - PullRequest
4 голосов
/ 03 февраля 2020

В документации длина состоит из двух неподписанных байтов:

Длина

Указывает длину в байтах, данных оглавления. Это значение длины не включает длину самого элемента Length.

Когда вы формируете WORD в Little Endian, это действительно правильное значение, но почему они решили не использовать WORD напрямую?

1 Ответ

2 голосов
/ 03 февраля 2020

После глубокого изучения документов :

Для получения информации о допустимых значениях для этого элемента см. Спецификацию T10 / 1363-D Национального комитета по стандартам информационных технологий. (NCITS).

Это приводит нас сюда:

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

Когда вы просматриваете эти 471 страницу для слова endian , результатов ноль, для слова integer результатов только пять.

Но в 5.23.2 Формат данных ответа TOC / PMA / ATIP 0000b, мы можем заключить, что, поскольку в этой таблице рядом с бит 0 есть (LSB) , это действительно 16-разрядное целое число в Little Endian Big Endian ( спасибо Ганс).

В заключение, они просто сделали структуру такой, как она изложена в этих спецификациях.

...