typedef struct _TOKEN
{
    TOKEN_SOURCE TokenSource;
    LUID TokenId;
    LUID AuthenticationId;
    LUID ParentTokenId;
    LARGE_INTEGER ExpirationTime;
    ERESOURCE *TokenLock;
    LUID ModifiedId;
    SEP_TOKEN_PRIVILEGES Privileges;
    SEP_AUDIT_POLICY AuditPolicy;
    unsigned long SessionId;
    unsigned long UserAndGroupCount;
    unsigned long RestrictedSidCount;
    unsigned long VariableLength;
    unsigned long DynamicCharged;
    unsigned long DynamicAvailable;
    unsigned long DefaultOwnerIndex;
    SID_AND_ATTRIBUTES *UserAndGroups;
    SID_AND_ATTRIBUTES *RestrictedSids;
    void *PrimaryGroup;
    unsigned long *DynamicPart;
    ACL *DefaultDacl;
    TOKEN_TYPE TokenType;
    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
    unsigned long TokenFlags;
    unsigned char TokenInUse;
    unsigned long IntegrityLevelIndex;
    unsigned long MandatoryPolicy;
    SEP_LOGON_SESSION_REFERENCES *LogonSession;
    LUID OriginatingLogonSession;
    SID_AND_ATTRIBUTES_HASH SidHash;
    SID_AND_ATTRIBUTES_HASH RestrictedSidHash;
    AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION *pSecurityAttributes;
    unsigned __int64 VariablePart;
} TOKEN, *PTOKEN;