typedef struct _KPROCESS
{
    DISPATCHER_HEADER Header;
    LIST_ENTRY ProfileListHead;
    unsigned __int64 DirectoryTableBase;
    LIST_ENTRY ThreadListHead;
    unsigned __int64 ProcessLock;
    KAFFINITY_EX Affinity;
    LIST_ENTRY ReadyListHead;
    SINGLE_LIST_ENTRY SwapListEntry;
    KAFFINITY_EX ActiveProcessors;
    union
    {
        struct
        {
            volatile long AutoAlignment : 1;
            volatile long DisableBoost : 1;
            volatile long DisableQuantum : 1;
            volatile unsigned long ActiveGroupsMask : 4;
            volatile long ReservedFlags : 25;
        };
        volatile long ProcessFlags;
    };
    char BasePriority;
    char QuantumReset;
    unsigned char Visited;
    unsigned char Unused3;
    unsigned long ThreadSeed[4];
    unsigned short IdealNode[4];
    unsigned short IdealGlobalNode;
    KEXECUTE_OPTIONS Flags;
    unsigned char Unused1;
    unsigned long Unused2;
    unsigned long Unused4;
    KSTACK_COUNT StackCount;
    LIST_ENTRY ProcessListEntry;
    volatile unsigned __int64 CycleTime;
    unsigned long KernelTime;
    unsigned long UserTime;
    void *InstrumentationCallback;
    KGDTENTRY64 LdtSystemDescriptor;
    void *LdtBaseAddress;
    KGUARDED_MUTEX LdtProcessLock;
    unsigned short LdtFreeSelectorHint;
    unsigned short LdtTableLength;
} KPROCESS, *PKPROCESS;