source: trunk/include/win/ntsecapi.h@ 21360

Last change on this file since 21360 was 21360, checked in by vladest, 16 years ago
  1. Security interface constants and structures added
  2. Fixed conflicts of data definitions in security interface
File size: 8.1 KB
Line 
1#ifndef __WINE_NTSECAPI_H
2#define __WINE_NTSECAPI_H
3
4#include "winnt.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif /* defined(__cplusplus) */
9
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
82typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
83typedef STRING LSA_STRING, *PLSA_STRING;
84typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
85typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
86
87typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
88
89NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
90
91typedef enum
92{
93 PolicyAuditLogInformation = 1,
94 PolicyAuditEventsInformation,
95 PolicyPrimaryDomainInformation,
96 PolicyPdAccountInformation,
97 PolicyAccountDomainInformation,
98 PolicyLsaServerRoleInformation,
99 PolicyReplicaSourceInformation,
100 PolicyDefaultQuotaInformation,
101 PolicyModificationInformation,
102 PolicyAuditFullSetInformation,
103 PolicyAuditFullQueryInformation,
104 PolicyDnsDomainInformation
105} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
106
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
127typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
128
129typedef struct
130{
131 BOOLEAN AuditingMode;
132 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
133 ULONG MaximumAuditEventCount;
134} POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
135
136typedef struct
137{
138 LSA_UNICODE_STRING Name;
139 PSID Sid;
140} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
141
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;
273
274NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
275
276NTSTATUS WINAPI LsaFreeMemory(PVOID);
277NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle);
278
279#ifdef __cplusplus
280} /* extern "C" */
281#endif /* defined(__cplusplus) */
282
283#endif /* !defined(__WINE_NTSECAPI_H) */
Note: See TracBrowser for help on using the repository browser.