Por que a estrutura GUID é declarada do jeito que é?

No rpc.h, a estrutura GUID é declarada da seguinte maneira:

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   BYTE Data[8];
} GUID;

Eu entendo Data1, Data2 e Data3. Eles definem os primeiro, segundo e terceiro conjuntos de dígitos hexadecimais ao gravar um GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX).

O que eu nunca entendi foi por que os dois últimos grupos foram declarados juntos na mesma matriz de bytes. Isso não faria mais sentido (e seria mais fácil codificar)?

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   WORD Data4;  
   BYTE Data5[6]; 
} GUID;

Alguém sabe por que é declarado dessa maneira?

questionAnswers(2)

yourAnswerToTheQuestion