#define GUID_16(a) \ (((a) >> 8) & 0xff), \ (((a)) & 0xff), #define GUID_48(a) \ (((a) >> 40) & 0xff), \ (((a) >> 32) & 0xff), \ (((a) >> 24) & 0xff), \ (((a) >> 16) & 0xff), \ (((a) >> 8) & 0xff), \ (((a)) & 0xff), #define GUID_FLIP_32(a) \ (((a)) & 0xff), \ (((a) >> 8) & 0xff), \ (((a) >> 16) & 0xff), \ (((a) >> 24) & 0xff), #define GUID_FLIP_16(a) \ (((a)) & 0xff), \ (((a) >> 8) & 0xff), #define MAKE_GUID(a,b,c,d,e) \ {{ \ GUID_FLIP_32(0x ## a) \ GUID_FLIP_16(0x ## b) \ GUID_FLIP_16(0x ## c) \ GUID_16(0x ## d) \ GUID_48(0x ## e ## ULL) \ }} typedef struct { uint8_t d[16]; } PACKED GUID;