Ignore:
Timestamp:
Feb 25, 2010, 6:26:18 PM (16 years ago)
Author:
vladest
Message:
  1. Security interface constants and structures added
  2. Fixed conflicts of data definitions in security interface
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/ntsecapi.h

    r7986 r21360  
    88#endif /* defined(__cplusplus) */
    99
     10#ifndef GUID_DEFINED
     11#define GUID_DEFINED
     12typedef struct _GUID
     13{
     14    unsigned long  Data1;
     15    unsigned short Data2;
     16    unsigned short Data3;
     17    unsigned char  Data4[ 8 ];
     18} GUID;
     19#endif
     20
     21/* Policy access rights */
     22#define POLICY_VIEW_LOCAL_INFORMATION           0x00000001L
     23#define POLICY_VIEW_AUDIT_INFORMATION           0x00000002L
     24#define POLICY_GET_PRIVATE_INFORMATION          0x00000004L
     25#define POLICY_TRUST_ADMIN                      0x00000008L
     26#define POLICY_CREATE_ACCOUNT                   0x00000010L
     27#define POLICY_CREATE_SECRET                    0x00000020L
     28#define POLICY_CREATE_PRIVILEGE                 0x00000040L
     29#define POLICY_SET_DEFAULT_QUOTA_LIMITS         0x00000080L
     30#define POLICY_SET_AUDIT_REQUIREMENTS           0x00000100L
     31#define POLICY_AUDIT_LOG_ADMIN                  0x00000200L
     32#define POLICY_SERVER_ADMIN                     0x00000400L
     33#define POLICY_LOOKUP_NAMES                     0x00000800L
     34#define POLICY_NOTIFICATION                     0x00001000L
     35
     36#define POLICY_ALL_ACCESS                       ( \
     37    STANDARD_RIGHTS_REQUIRED | \
     38    POLICY_VIEW_LOCAL_INFORMATION | \
     39    POLICY_VIEW_AUDIT_INFORMATION | \
     40    POLICY_GET_PRIVATE_INFORMATION | \
     41    POLICY_TRUST_ADMIN | \
     42    POLICY_CREATE_ACCOUNT | \
     43    POLICY_CREATE_SECRET | \
     44    POLICY_CREATE_PRIVILEGE | \
     45    POLICY_SET_DEFAULT_QUOTA_LIMITS | \
     46    POLICY_SET_AUDIT_REQUIREMENTS | \
     47    POLICY_AUDIT_LOG_ADMIN | \
     48    POLICY_SERVER_ADMIN | \
     49    POLICY_LOOKUP_NAMES)
     50
     51
     52#define POLICY_READ                             ( \
     53    STANDARD_RIGHTS_READ | \
     54    POLICY_VIEW_AUDIT_INFORMATION | \
     55    POLICY_GET_PRIVATE_INFORMATION)
     56
     57#define POLICY_WRITE                            ( \
     58   STANDARD_RIGHTS_WRITE | \
     59   POLICY_TRUST_ADMIN | \
     60   POLICY_CREATE_ACCOUNT | \
     61   POLICY_CREATE_SECRET | \
     62   POLICY_CREATE_PRIVILEGE | \
     63   POLICY_SET_DEFAULT_QUOTA_LIMITS | \
     64   POLICY_SET_AUDIT_REQUIREMENTS | \
     65   POLICY_AUDIT_LOG_ADMIN | \
     66   POLICY_SERVER_ADMIN)
     67
     68#define POLICY_EXECUTE                          ( \
     69   STANDARD_RIGHTS_EXECUTE | \
     70   POLICY_VIEW_LOCAL_INFORMATION | \
     71   POLICY_LOOKUP_NAMES)
     72
     73#define POLICY_AUDIT_EVENT_UNCHANGED 0x00000000L
     74#define POLICY_AUDIT_EVENT_SUCCESS   0x00000001L
     75#define POLICY_AUDIT_EVENT_FAILURE   0x00000002L
     76#define POLICY_AUDIT_EVENT_NONE      0x00000004L
     77
     78#define POLICY_AUDIT_EVENT_MASK (POLICY_AUDIT_EVENT_SUCCESS | \
     79                                 POLICY_AUDIT_EVENT_FAILURE | \
     80                                 POLICY_AUDIT_EVENT_NONE)
     81
    1082typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
    1183typedef STRING LSA_STRING, *PLSA_STRING;
    1284typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
     85typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
    1386
    1487typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
     
    32105} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
    33106
     107typedef enum _SECURITY_LOGON_TYPE
     108{
     109    Interactive = 2,
     110    Network,
     111    Batch,
     112    Service,
     113    Proxy
     114} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
     115
     116typedef enum _POLICY_AUDIT_EVENT_TYPE
     117{
     118    AuditCategorySystem,
     119    AuditCategoryLogon,
     120    AuditCategoryObjectAccess,
     121    AuditCategoryPrivilegeUse,
     122    AuditCategoryDetailedTracking,
     123    AuditCategoryPolicyChange,
     124    AuditCategoryAccountManagement
     125} POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
     126
    34127typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
    35128
     
    47140} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
    48141
     142typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
     143{
     144    LSA_UNICODE_STRING DomainName;
     145    PSID DomainSid;
     146} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
     147
     148typedef struct _POLICY_DNS_DOMAIN_INFO
     149{
     150    LSA_UNICODE_STRING Name;
     151    LSA_UNICODE_STRING DnsDomainName;
     152    LSA_UNICODE_STRING DnsForestName;
     153    GUID DomainGuid;
     154    PSID Sid;
     155} POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO;
     156
     157typedef enum _POLICY_LSA_SERVER_ROLE
     158{
     159    PolicyServerRoleBackup = 2,
     160    PolicyServerRolePrimary
     161} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
     162
     163typedef struct _POLICY_LSA_SERVER_ROLE_INFO
     164{
     165    POLICY_LSA_SERVER_ROLE LsaServerRole;
     166} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
     167
     168typedef struct _POLICY_MODIFICATION_INFO
     169{
     170    LARGE_INTEGER ModifiedId;
     171    LARGE_INTEGER DatabaseCreationTime;
     172} POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
     173
     174typedef struct _SECURITY_LOGON_SESSION_DATA {
     175    ULONG Size;
     176    LUID LogonId;
     177    LSA_UNICODE_STRING UserName;
     178    LSA_UNICODE_STRING LogonDomain;
     179    LSA_UNICODE_STRING AuthenticationPackage;
     180    ULONG LogonType;
     181    ULONG Session;
     182    PSID Sid;
     183    LARGE_INTEGER LogonTime;
     184    LSA_UNICODE_STRING LogonServer;
     185    LSA_UNICODE_STRING DnsDomainName;
     186    LSA_UNICODE_STRING Upn;
     187} SECURITY_LOGON_SESSION_DATA, *PSECURITY_LOGON_SESSION_DATA;
     188
     189typedef struct
     190{
     191    SID_NAME_USE Use;
     192    LSA_UNICODE_STRING Name;
     193    LONG DomainIndex;
     194} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
     195
     196typedef struct
     197{
     198    LSA_UNICODE_STRING Name;
     199    PSID Sid;
     200} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
     201
     202typedef struct
     203{
     204    ULONG Entries;
     205    PLSA_TRUST_INFORMATION Domains;
     206} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
     207
     208typedef struct _LSA_TRANSLATED_SID
     209{
     210    SID_NAME_USE Use;
     211    ULONG RelativeId;
     212    LONG DomainIndex;
     213} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
     214
     215typedef struct _TRUSTED_DOMAIN_INFORMATION_EX
     216{
     217    LSA_UNICODE_STRING Name;
     218    LSA_UNICODE_STRING FlatName;
     219    PSID Sid;
     220    ULONG TrustDirection;
     221    ULONG TrustType;
     222    ULONG TrustAttributes;
     223} TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX;
     224
     225typedef struct _LSA_AUTH_INFORMATION
     226{
     227    LARGE_INTEGER LastUpdateTime;
     228    ULONG AuthType;
     229    ULONG AuthInfoLength;
     230    PUCHAR AuthInfo;
     231} LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION;
     232
     233typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION
     234{
     235    ULONG IncomingAuthInfos;
     236    PLSA_AUTH_INFORMATION IncomingAuthenticationInformation;
     237    PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
     238    ULONG OutgoingAuthInfos;
     239    PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation;
     240    PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
     241} TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION;
     242
     243typedef struct _LSA_TRANSLATED_SID2
     244{
     245    SID_NAME_USE Use;
     246    PSID Sid;
     247    LONG DomainIndex;
     248    ULONG Flags;
     249} LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
     250
     251typedef enum _TRUSTED_INFORMATION_CLASS
     252{
     253    TrustedDomainNameInformation = 1,
     254    TrustedControllersInformation,
     255    TrustedPosixOffsetInformation,
     256    TrustedPasswordInformation,
     257    TrustedDomainInformationBasic,
     258    TrustedDomainInformationEx,
     259    TrustedDomainAuthInformation,
     260    TrustedDomainFullInformation
     261} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
     262
     263typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS
     264{
     265    PolicyNotifyAuditEventsInformation = 1,
     266    PolicyNotifyAccountDomainInformation,
     267    PolicyNotifyServerRoleInformation,
     268    PolicyNotifyDnsDomainInformation,
     269    PolicyNotifyDomainEfsInformation,
     270    PolicyNotifyDomainKerberosTicketInformation,
     271    PolicyNotifyMachineAccountPasswordInformation
     272} POLICY_NOTIFICATION_INFORMATION_CLASS, *PPOLICY_NOTIFICATION_INFORMATION_CLASS;
    49273
    50274NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
Note: See TracChangeset for help on using the changeset viewer.