source: trunk/include/win/ntsecapi.h

Last change on this file was 21452, checked in by dmik, 15 years ago

netsecapi.h needs ntdef.h due to UNICODE_STRING and friends.

File size: 8.1 KB
Line 
1#ifndef __WINE_NTSECAPI_H
2#define __WINE_NTSECAPI_H
3
4#include <winnt.h>
5#include <ntdef.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif /* defined(__cplusplus) */
10
11#ifndef GUID_DEFINED
12#define GUID_DEFINED
13typedef struct _GUID
14{
15 unsigned long Data1;
16 unsigned short Data2;
17 unsigned short Data3;
18 unsigned char Data4[ 8 ];
19} GUID;
20#endif
21
22/* Policy access rights */
23#define POLICY_VIEW_LOCAL_INFORMATION 0x00000001L
24#define POLICY_VIEW_AUDIT_INFORMATION 0x00000002L
25#define POLICY_GET_PRIVATE_INFORMATION 0x00000004L
26#define POLICY_TRUST_ADMIN 0x00000008L
27#define POLICY_CREATE_ACCOUNT 0x00000010L
28#define POLICY_CREATE_SECRET 0x00000020L
29#define POLICY_CREATE_PRIVILEGE 0x00000040L
30#define POLICY_SET_DEFAULT_QUOTA_LIMITS 0x00000080L
31#define POLICY_SET_AUDIT_REQUIREMENTS 0x00000100L
32#define POLICY_AUDIT_LOG_ADMIN 0x00000200L
33#define POLICY_SERVER_ADMIN 0x00000400L
34#define POLICY_LOOKUP_NAMES 0x00000800L
35#define POLICY_NOTIFICATION 0x00001000L
36
37#define POLICY_ALL_ACCESS ( \
38 STANDARD_RIGHTS_REQUIRED | \
39 POLICY_VIEW_LOCAL_INFORMATION | \
40 POLICY_VIEW_AUDIT_INFORMATION | \
41 POLICY_GET_PRIVATE_INFORMATION | \
42 POLICY_TRUST_ADMIN | \
43 POLICY_CREATE_ACCOUNT | \
44 POLICY_CREATE_SECRET | \
45 POLICY_CREATE_PRIVILEGE | \
46 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
47 POLICY_SET_AUDIT_REQUIREMENTS | \
48 POLICY_AUDIT_LOG_ADMIN | \
49 POLICY_SERVER_ADMIN | \
50 POLICY_LOOKUP_NAMES)
51
52
53#define POLICY_READ ( \
54 STANDARD_RIGHTS_READ | \
55 POLICY_VIEW_AUDIT_INFORMATION | \
56 POLICY_GET_PRIVATE_INFORMATION)
57
58#define POLICY_WRITE ( \
59 STANDARD_RIGHTS_WRITE | \
60 POLICY_TRUST_ADMIN | \
61 POLICY_CREATE_ACCOUNT | \
62 POLICY_CREATE_SECRET | \
63 POLICY_CREATE_PRIVILEGE | \
64 POLICY_SET_DEFAULT_QUOTA_LIMITS | \
65 POLICY_SET_AUDIT_REQUIREMENTS | \
66 POLICY_AUDIT_LOG_ADMIN | \
67 POLICY_SERVER_ADMIN)
68
69#define POLICY_EXECUTE ( \
70 STANDARD_RIGHTS_EXECUTE | \
71 POLICY_VIEW_LOCAL_INFORMATION | \
72 POLICY_LOOKUP_NAMES)
73
74#define POLICY_AUDIT_EVENT_UNCHANGED 0x00000000L
75#define POLICY_AUDIT_EVENT_SUCCESS 0x00000001L
76#define POLICY_AUDIT_EVENT_FAILURE 0x00000002L
77#define POLICY_AUDIT_EVENT_NONE 0x00000004L
78
79#define POLICY_AUDIT_EVENT_MASK (POLICY_AUDIT_EVENT_SUCCESS | \
80 POLICY_AUDIT_EVENT_FAILURE | \
81 POLICY_AUDIT_EVENT_NONE)
82
83typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
84typedef STRING LSA_STRING, *PLSA_STRING;
85typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
86typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
87
88typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
89
90NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
91
92typedef enum
93{
94 PolicyAuditLogInformation = 1,
95 PolicyAuditEventsInformation,
96 PolicyPrimaryDomainInformation,
97 PolicyPdAccountInformation,
98 PolicyAccountDomainInformation,
99 PolicyLsaServerRoleInformation,
100 PolicyReplicaSourceInformation,
101 PolicyDefaultQuotaInformation,
102 PolicyModificationInformation,
103 PolicyAuditFullSetInformation,
104 PolicyAuditFullQueryInformation,
105 PolicyDnsDomainInformation
106} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
107
108typedef enum _SECURITY_LOGON_TYPE
109{
110 Interactive = 2,
111 Network,
112 Batch,
113 Service,
114 Proxy
115} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
116
117typedef enum _POLICY_AUDIT_EVENT_TYPE
118{
119 AuditCategorySystem,
120 AuditCategoryLogon,
121 AuditCategoryObjectAccess,
122 AuditCategoryPrivilegeUse,
123 AuditCategoryDetailedTracking,
124 AuditCategoryPolicyChange,
125 AuditCategoryAccountManagement
126} POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
127
128typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
129
130typedef struct
131{
132 BOOLEAN AuditingMode;
133 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
134 ULONG MaximumAuditEventCount;
135} POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
136
137typedef struct
138{
139 LSA_UNICODE_STRING Name;
140 PSID Sid;
141} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
142
143typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
144{
145 LSA_UNICODE_STRING DomainName;
146 PSID DomainSid;
147} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
148
149typedef struct _POLICY_DNS_DOMAIN_INFO
150{
151 LSA_UNICODE_STRING Name;
152 LSA_UNICODE_STRING DnsDomainName;
153 LSA_UNICODE_STRING DnsForestName;
154 GUID DomainGuid;
155 PSID Sid;
156} POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO;
157
158typedef enum _POLICY_LSA_SERVER_ROLE
159{
160 PolicyServerRoleBackup = 2,
161 PolicyServerRolePrimary
162} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
163
164typedef struct _POLICY_LSA_SERVER_ROLE_INFO
165{
166 POLICY_LSA_SERVER_ROLE LsaServerRole;
167} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
168
169typedef struct _POLICY_MODIFICATION_INFO
170{
171 LARGE_INTEGER ModifiedId;
172 LARGE_INTEGER DatabaseCreationTime;
173} POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
174
175typedef struct _SECURITY_LOGON_SESSION_DATA {
176 ULONG Size;
177 LUID LogonId;
178 LSA_UNICODE_STRING UserName;
179 LSA_UNICODE_STRING LogonDomain;
180 LSA_UNICODE_STRING AuthenticationPackage;
181 ULONG LogonType;
182 ULONG Session;
183 PSID Sid;
184 LARGE_INTEGER LogonTime;
185 LSA_UNICODE_STRING LogonServer;
186 LSA_UNICODE_STRING DnsDomainName;
187 LSA_UNICODE_STRING Upn;
188} SECURITY_LOGON_SESSION_DATA, *PSECURITY_LOGON_SESSION_DATA;
189
190typedef struct
191{
192 SID_NAME_USE Use;
193 LSA_UNICODE_STRING Name;
194 LONG DomainIndex;
195} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
196
197typedef struct
198{
199 LSA_UNICODE_STRING Name;
200 PSID Sid;
201} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
202
203typedef struct
204{
205 ULONG Entries;
206 PLSA_TRUST_INFORMATION Domains;
207} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
208
209typedef struct _LSA_TRANSLATED_SID
210{
211 SID_NAME_USE Use;
212 ULONG RelativeId;
213 LONG DomainIndex;
214} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
215
216typedef struct _TRUSTED_DOMAIN_INFORMATION_EX
217{
218 LSA_UNICODE_STRING Name;
219 LSA_UNICODE_STRING FlatName;
220 PSID Sid;
221 ULONG TrustDirection;
222 ULONG TrustType;
223 ULONG TrustAttributes;
224} TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX;
225
226typedef struct _LSA_AUTH_INFORMATION
227{
228 LARGE_INTEGER LastUpdateTime;
229 ULONG AuthType;
230 ULONG AuthInfoLength;
231 PUCHAR AuthInfo;
232} LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION;
233
234typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION
235{
236 ULONG IncomingAuthInfos;
237 PLSA_AUTH_INFORMATION IncomingAuthenticationInformation;
238 PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
239 ULONG OutgoingAuthInfos;
240 PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation;
241 PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
242} TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION;
243
244typedef struct _LSA_TRANSLATED_SID2
245{
246 SID_NAME_USE Use;
247 PSID Sid;
248 LONG DomainIndex;
249 ULONG Flags;
250} LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
251
252typedef enum _TRUSTED_INFORMATION_CLASS
253{
254 TrustedDomainNameInformation = 1,
255 TrustedControllersInformation,
256 TrustedPosixOffsetInformation,
257 TrustedPasswordInformation,
258 TrustedDomainInformationBasic,
259 TrustedDomainInformationEx,
260 TrustedDomainAuthInformation,
261 TrustedDomainFullInformation
262} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
263
264typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS
265{
266 PolicyNotifyAuditEventsInformation = 1,
267 PolicyNotifyAccountDomainInformation,
268 PolicyNotifyServerRoleInformation,
269 PolicyNotifyDnsDomainInformation,
270 PolicyNotifyDomainEfsInformation,
271 PolicyNotifyDomainKerberosTicketInformation,
272 PolicyNotifyMachineAccountPasswordInformation
273} POLICY_NOTIFICATION_INFORMATION_CLASS, *PPOLICY_NOTIFICATION_INFORMATION_CLASS;
274
275NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
276
277NTSTATUS WINAPI LsaFreeMemory(PVOID);
278NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle);
279
280#ifdef __cplusplus
281} /* extern "C" */
282#endif /* defined(__cplusplus) */
283
284#endif /* !defined(__WINE_NTSECAPI_H) */
Note: See TracBrowser for help on using the repository browser.