typedef struct _MMVAD
{
    union
    {
        __int64 Balance : 2;
        MMVAD *Parent;
    } u1;
    MMVAD *LeftChild;
    MMVAD *RightChild;
    unsigned __int64 StartingVpn;
    unsigned __int64 EndingVpn;
    union
    {
        unsigned __int64 LongFlags;
        MMVAD_FLAGS VadFlags;
    } u;
    EX_PUSH_LOCK PushLock;
    union
    {
        unsigned __int64 LongFlags3;
        MMVAD_FLAGS3 VadFlags3;
    } u5;
    union
    {
        unsigned long LongFlags2;
        MMVAD_FLAGS2 VadFlags2;
    } u2;
    union
    {
        SUBSECTION *Subsection;
        MSUBSECTION *MappedSubsection;
    };
    MMPTE *FirstPrototypePte;
    MMPTE *LastContiguousPte;
    LIST_ENTRY ViewLinks;
    EPROCESS *VadsProcess;
} MMVAD, *PMMVAD;