typedef union _KGDTENTRY64
{
    struct
    {
        unsigned short LimitLow;
        unsigned short BaseLow;
        union
        {
            struct
            {
                unsigned char BaseMiddle;
                unsigned char Flags1;
                unsigned char Flags2;
                unsigned char BaseHigh;
            } Bytes;
            struct
            {
                unsigned long BaseMiddle : 8;
                unsigned long Type : 5;
                unsigned long Dpl : 2;
                unsigned long Present : 1;
                unsigned long LimitHigh : 4;
                unsigned long System : 1;
                unsigned long LongMode : 1;
                unsigned long DefaultBig : 1;
                unsigned long Granularity : 1;
                unsigned long BaseHigh : 8;
            } Bits;
        };
        unsigned long BaseUpper;
        unsigned long MustBeZero;
    };
    unsigned __int64 Alignment;
} KGDTENTRY64, *PKGDTENTRY64;