Ответ 1
Похоже, что MS хранит пять частей в структуре. Первые 4 части имеют длину 2 или 4 байта и поэтому, вероятно, хранятся как собственный тип (т.е. WORD и DWORD) в формате с прямым порядком байтов. Последняя часть имеет длину 6 байт и поэтому обрабатывается по-разному (возможно, массив).
Указывает ли спецификация, что GUID хранится в порядке с прямым порядком байтов, или что хранение частей происходит в этом порядке, но отдельные части могут зависеть от реализации?
РЕДАКТИРОВАТЬ:
Из спецификации UUID, раздел 4.1.2. Расположение и порядок байтов (выделено мной):
Чтобы свести к минимуму путаницу в назначениях битов в октетах, UUID
определение записи определяется только в терминах полей, которые
целые числа октетов. Поля представлены с наибольшим
первый значительный....
При отсутствии явного заявления или протокола представления
В спецификации, напротив, UUID кодируется как 128-битный объект следующим образом:Поля кодируются как 16 октетов, с размерами и порядком полей, определенных выше, и каждое поле кодируется сначала самым старшим байтом (известным как порядок сетевых байтов).
Возможно, MS хранит байты в правильном порядке, но не беспокоится о порядке передачи по сети для хоста частей WORD и DWORD для представления (что, по-видимому, соответствует спецификации, по крайней мере, из-за моего неквалифицированного чтения Это.)