fix compile with gcc
[reactos.git] / reactos / w32api / include / ntsecapi.h
1 #ifndef _NTSECAPI_H
2 #define _NTSECAPI_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #define KERB_WRAP_NO_ENCRYPT 0x80000001
11 #define LOGON_GUEST 1
12 #define LOGON_NOENCRYPTION 2
13 #define LOGON_CACHED_ACCOUNT 4
14 #define LOGON_USED_LM_PASSWORD 8
15 #define LOGON_EXTRA_SIDS 32
16 #define LOGON_SUBAUTH_SESSION_KEY 64
17 #define LOGON_SERVER_TRUST_ACCOUNT 128
18 #define LOGON_NTLMV2_ENABLED 256
19 #define LOGON_RESOURCE_GROUPS 512
20 #define LOGON_PROFILE_PATH_RETURNED 1024
21 #define LOGON_GRACE_LOGON 16777216
22 #define LSA_MODE_PASSWORD_PROTECTED 1
23 #define LSA_MODE_INDIVIDUAL_ACCOUNTS 2
24 #define LSA_MODE_MANDATORY_ACCESS 3
25 #define LSA_MODE_LOG_FULL 4
26 #define LSA_SUCCESS(x) ((LONG)(x)>=0)
27 #define MICROSOFT_KERBEROS_NAME_A "Kerberos"
28 #define MICROSOFT_KERBEROS_NAME_W L"Kerberos"
29 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 32
30 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 2048
31 #define MSV1_0_CHALLENGE_LENGTH 8
32 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 2
33 #define MSV1_0_CRED_LM_PRESENT 1
34 #define MSV1_0_CRED_NT_PRESENT 2
35 #define MSV1_0_CRED_VERSION 0
36 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 16
37 #define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8
38 #define MSV1_0_MAX_NTLM3_LIFE 1800
39 #define MSV1_0_MAX_AVL_SIZE 64000
40 #define MSV1_0_MNS_LOGON 16777216
41 #define MSV1_0_NTLM3_RESPONSE_LENGTH 16
42 #define MSV1_0_NTLM3_OWF_LENGTH 16
43 #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE)-MSV1_0_NTLM3_RESPONSE_LENGTH)
44 #define MSV1_0_OWF_PASSWORD_LENGTH 16
45 #define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
46 #define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
47 #define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW)-sizeof(WCHAR)
48 #define MSV1_0_RETURN_USER_PARAMETERS 8
49 #define MSV1_0_RETURN_PASSWORD_EXPIRY 64
50 #define MSV1_0_RETURN_PROFILE_PATH 512
51 #define MSV1_0_SUBAUTHENTICATION_DLL_EX 1048576
52 #define MSV1_0_SUBAUTHENTICATION_DLL 0xff000000
53 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24
54 #define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2
55 #define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132
56 #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xff000000
57 #define MSV1_0_SUBAUTHENTICATION_KEY "System\\CurrentControlSet\\Control\\Lsa\\MSV1_0"
58 #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth"
59 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 256
60 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 1024
61 #define MSV1_0_UPDATE_LOGON_STATISTICS 4
62 #define MSV1_0_USE_CLIENT_CHALLENGE 128
63 #define MSV1_0_USER_SESSION_KEY_LENGTH 16
64 #define POLICY_VIEW_LOCAL_INFORMATION 1
65 #define POLICY_VIEW_AUDIT_INFORMATION 2
66 #define POLICY_GET_PRIVATE_INFORMATION 4
67 #define POLICY_TRUST_ADMIN 8
68 #define POLICY_CREATE_ACCOUNT 16
69 #define POLICY_CREATE_SECRET 32
70 #define POLICY_CREATE_PRIVILEGE 64
71 #define POLICY_SET_DEFAULT_QUOTA_LIMITS 128
72 #define POLICY_SET_AUDIT_REQUIREMENTS 256
73 #define POLICY_AUDIT_LOG_ADMIN 512
74 #define POLICY_SERVER_ADMIN 1024
75 #define POLICY_LOOKUP_NAMES 2048
76 #define POLICY_READ (STANDARD_RIGHTS_READ|6)
77 #define POLICY_WRITE (STANDARD_RIGHTS_WRITE|2040)
78 #define POLICY_EXECUTE (STANDARD_RIGHTS_EXECUTE|2049)
79 #define POLICY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|4095)
80 #define POLICY_AUDIT_EVENT_UNCHANGED 0
81 #define POLICY_AUDIT_EVENT_SUCCESS 1
82 #define POLICY_AUDIT_EVENT_FAILURE 2
83 #define POLICY_AUDIT_EVENT_NONE 4
84 #define POLICY_AUDIT_EVENT_MASK 7
85 #define POLICY_LOCATION_LOCAL 1
86 #define POLICY_LOCATION_DS 2
87 #define POLICY_MACHINE_POLICY_LOCAL 0
88 #define POLICY_MACHINE_POLICY_DEFAULTED 1
89 #define POLICY_MACHINE_POLICY_EXPLICIT 2
90 #define POLICY_MACHINE_POLICY_UNKNOWN 0xFFFFFFFF
91 #define POLICY_QOS_SCHANEL_REQUIRED 1
92 #define POLICY_QOS_OUTBOUND_INTEGRITY 2
93 #define POLICY_QOS_OUTBOUND_CONFIDENTIALITY 4
94 #define POLICY_QOS_INBOUND_INTEGREITY 8
95 #define POLICY_QOS_INBOUND_CONFIDENTIALITY 16
96 #define POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE 32
97 #define POLICY_QOS_RAS_SERVER_ALLOWED 64
98 #define POLICY_QOS_DHCP_SERVER_ALLOWD 128
99 #define POLICY_KERBEROS_FORWARDABLE 1
100 #define POLICY_KERBEROS_PROXYABLE 2
101 #define POLICY_KERBEROS_RENEWABLE 4
102 #define POLICY_KERBEROS_POSTDATEABLE 8
103 #define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify"
104 #define SAM_INIT_NOTIFICATION_ROUTINE "InitializeChangeNotify"
105 #define SAM_PASSWORD_FILTER_ROUTINE "PasswordFilter"
106 #define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight")
107 #define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight")
108 #define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight")
109 #define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight")
110 #define TRUST_ATTRIBUTE_NON_TRANSITIVE 1
111 #define TRUST_ATTRIBUTE_UPLEVEL_ONLY 2
112 #define TRUST_ATTRIBUTE_TREE_PARENT 4194304
113 #define TRUST_ATTRIBUTES_VALID -16580609
114 #define TRUST_AUTH_TYPE_NONE 0
115 #define TRUST_AUTH_TYPE_NT4OWF 1
116 #define TRUST_AUTH_TYPE_CLEAR 2
117 #define TRUST_DIRECTION_DISABLED 0
118 #define TRUST_DIRECTION_INBOUND 1
119 #define TRUST_DIRECTION_OUTBOUND 2
120 #define TRUST_DIRECTION_BIDIRECTIONAL 3
121 #define TRUST_TYPE_DOWNLEVEL 1
122 #define TRUST_TYPE_UPLEVEL 2
123 #define TRUST_TYPE_MIT 3
124 #define TRUST_TYPE_DCE 4
125 #if !defined(_NTDEF_H) && !defined(_SUBAUTH_H)
126 typedef LONG NTSTATUS, *PNTSTATUS;
127 #endif
128 typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
129 typedef STRING LSA_STRING, *PLSA_STRING;
130 typedef enum _MSV1_0_LOGON_SUBMIT_TYPE {
131 MsV1_0InteractiveLogon = 2,
132 MsV1_0Lm20Logon,
133 MsV1_0NetworkLogon,
134 MsV1_0SubAuthLogon,
135 MsV1_0WorkstationUnlockLogon = 7
136 } MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE;
137 typedef enum _MSV1_0_PROFILE_BUFFER_TYPE {
138 MsV1_0InteractiveProfile = 2,
139 MsV1_0Lm20LogonProfile,
140 MsV1_0SmartCardProfile
141 } MSV1_0_PROFILE_BUFFER_TYPE, *PMSV1_0_PROFILE_BUFFER_TYPE;
142 typedef enum {
143 MsvAvEOL,
144 MsvAvNbComputerName,
145 MsvAvNbDomainName,
146 MsvAvDnsComputerName,
147 MsvAvDnsDomainName
148 } MSV1_0_AVID;
149 typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE {
150 MsV1_0Lm20ChallengeRequest = 0,
151 MsV1_0Lm20GetChallengeResponse,
152 MsV1_0EnumerateUsers,
153 MsV1_0GetUserInfo,
154 MsV1_0ReLogonUsers,
155 MsV1_0ChangePassword,
156 MsV1_0ChangeCachedPassword,
157 MsV1_0GenericPassthrough,
158 MsV1_0CacheLogon,
159 MsV1_0SubAuth,
160 MsV1_0DeriveCredential,
161 MsV1_0CacheLookup
162 } MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE;
163 typedef enum _POLICY_LSA_SERVER_ROLE {
164 PolicyServerRoleBackup = 2,
165 PolicyServerRolePrimary
166 } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
167 typedef enum _POLICY_SERVER_ENABLE_STATE {
168 PolicyServerEnabled = 2,
169 PolicyServerDisabled
170 } POLICY_SERVER_ENABLE_STATE, *PPOLICY_SERVER_ENABLE_STATE;
171 typedef enum _POLICY_INFORMATION_CLASS {
172 PolicyAuditLogInformation = 1,
173 PolicyAuditEventsInformation,
174 PolicyPrimaryDomainInformation,
175 PolicyPdAccountInformation,
176 PolicyAccountDomainInformation,
177 PolicyLsaServerRoleInformation,
178 PolicyReplicaSourceInformation,
179 PolicyDefaultQuotaInformation,
180 PolicyModificationInformation,
181 PolicyAuditFullSetInformation,
182 PolicyAuditFullQueryInformation,
183 PolicyDnsDomainInformation,
184 PolicyEfsInformation
185 } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
186 typedef enum _POLICY_AUDIT_EVENT_TYPE {
187 AuditCategorySystem,
188 AuditCategoryLogon,
189 AuditCategoryObjectAccess,
190 AuditCategoryPrivilegeUse,
191 AuditCategoryDetailedTracking,
192 AuditCategoryPolicyChange,
193 AuditCategoryAccountManagement,
194 AuditCategoryDirectoryServiceAccess,
195 AuditCategoryAccountLogon
196 } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
197 typedef enum _POLICY_LOCAL_INFORMATION_CLASS {
198 PolicyLocalAuditEventsInformation = 1,
199 PolicyLocalPdAccountInformation,
200 PolicyLocalAccountDomainInformation,
201 PolicyLocalLsaServerRoleInformation,
202 PolicyLocalReplicaSourceInformation,
203 PolicyLocalModificationInformation,
204 PolicyLocalAuditFullSetInformation,
205 PolicyLocalAuditFullQueryInformation,
206 PolicyLocalDnsDomainInformation,
207 PolicyLocalIPSecReferenceInformation,
208 PolicyLocalMachinePasswordInformation,
209 PolicyLocalQualityOfServiceInformation,
210 PolicyLocalPolicyLocationInformation
211 } POLICY_LOCAL_INFORMATION_CLASS, *PPOLICY_LOCAL_INFORMATION_CLASS;
212 typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
213 PolicyDomainIPSecReferenceInformation = 1,
214 PolicyDomainQualityOfServiceInformation,
215 PolicyDomainEfsInformation,
216 PolicyDomainPublicKeyInformation,
217 PolicyDomainPasswordPolicyInformation,
218 PolicyDomainLockoutInformation,
219 PolicyDomainKerberosTicketInformation
220 } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
221 typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS {
222 PolicyNotifyAuditEventsInformation = 1,
223 PolicyNotifyAccountDomainInformation,
224 PolicyNotifyServerRoleInformation,
225 PolicyNotifyDnsDomainInformation,
226 PolicyNotifyDomainEfsInformation,
227 PolicyNotifyDomainKerberosTicketInformation,
228 PolicyNotifyMachineAccountPasswordInformation
229 } POLICY_NOTIFICATION_INFORMATION_CLASS, *PPOLICY_NOTIFICATION_INFORMATION_CLASS;
230 typedef enum _SECURITY_LOGON_TYPE {
231 Interactive = 2,
232 Network,
233 Batch,
234 Service,
235 Proxy,
236 Unlock
237 } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
238 typedef struct _SECURITY_LOGON_SESSION_DATA {
239 ULONG Size;
240 LUID LogonId;
241 LSA_UNICODE_STRING UserName;
242 LSA_UNICODE_STRING LogonDomain;
243 LSA_UNICODE_STRING AuthenticationPackage;
244 ULONG LogonType;
245 ULONG Session;
246 PSID Sid;
247 LARGE_INTEGER LogonTime;
248 LSA_UNICODE_STRING LogonServer;
249 LSA_UNICODE_STRING DnsDomainName;
250 LSA_UNICODE_STRING Upn;
251 } SECURITY_LOGON_SESSION_DATA, *PSECURITY_LOGON_SESSION_DATA;
252 typedef enum _TRUSTED_INFORMATION_CLASS {
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 typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
263 ForestTrustTopLevelName,
264 ForestTrustTopLevelNameEx,
265 ForestTrustDomainInfo,
266 ForestTrustRecordTypeLast = ForestTrustDomainInfo
267 } LSA_FOREST_TRUST_RECORD_TYPE;
268 typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
269 CollisionTdo,
270 CollisionXref,
271 CollisionOther
272 } LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
273 typedef struct _DOMAIN_PASSWORD_INFORMATION {
274 USHORT MinPasswordLength;
275 USHORT PasswordHistoryLength;
276 ULONG PasswordProperties;
277 LARGE_INTEGER MaxPasswordAge;
278 LARGE_INTEGER MinPasswordAge;
279 } DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION;
280 typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE;
281 typedef struct _LSA_ENUMERATION_INFORMATION {
282 PSID Sid;
283 } LSA_ENUMERATION_INFORMATION, *PLSA_ENUMERATION_INFORMATION;
284 typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
285 #if !defined(_NTDEF_H)
286 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
287 #endif
288 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
289 typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO {
290 PSID Sid;
291 LSA_UNICODE_STRING DnsName;
292 LSA_UNICODE_STRING NetbiosName;
293 } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
294 typedef struct _LSA_FOREST_TRUST_BINARY_DATA {
295 ULONG Length;
296 PUCHAR Buffer;
297 } LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
298 typedef struct _LSA_FOREST_TRUST_RECORD {
299 ULONG Flags;
300 LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
301 LARGE_INTEGER Time;
302 union {
303 LSA_UNICODE_STRING TopLevelName;
304 LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
305 LSA_FOREST_TRUST_BINARY_DATA Data;
306 } ForestTrustData;
307 } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
308 typedef struct _LSA_FOREST_TRUST_INFORMATION {
309 ULONG RecordCount;
310 PLSA_FOREST_TRUST_RECORD *Entries;
311 } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
312 typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD {
313 ULONG Index;
314 LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type;
315 ULONG Flags;
316 LSA_UNICODE_STRING Name;
317 } LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD;
318 typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION {
319 ULONG RecordCount;
320 PLSA_FOREST_TRUST_COLLISION_RECORD *Entries;
321 } LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION;
322 typedef struct _LSA_TRUST_INFORMATION {
323 LSA_UNICODE_STRING Name;
324 PSID Sid;
325 } LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
326 typedef struct _LSA_REFERENCED_DOMAIN_LIST {
327 ULONG Entries;
328 PLSA_TRUST_INFORMATION Domains;
329 } LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
330 typedef struct _LSA_TRANSLATED_SID {
331 SID_NAME_USE Use;
332 ULONG RelativeId;
333 LONG DomainIndex;
334 } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
335 typedef struct _LSA_TRANSLATED_SID2 {
336 SID_NAME_USE Use;
337 PSID Sid;
338 LONG DomainIndex;
339 ULONG Flags;
340 } LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
341 typedef struct _LSA_TRANSLATED_NAME {
342 SID_NAME_USE Use;
343 LSA_UNICODE_STRING Name;
344 LONG DomainIndex;
345 } LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
346 typedef struct _MSV1_0_INTERACTIVE_LOGON {
347 MSV1_0_LOGON_SUBMIT_TYPE MessageType;
348 UNICODE_STRING LogonDomainName;
349 UNICODE_STRING UserName;
350 UNICODE_STRING Password;
351 } MSV1_0_INTERACTIVE_LOGON, *PMSV1_0_INTERACTIVE_LOGON;
352 typedef struct _MSV1_0_INTERACTIVE_PROFILE {
353 MSV1_0_PROFILE_BUFFER_TYPE MessageType;
354 USHORT LogonCount;
355 USHORT BadPasswordCount;
356 LARGE_INTEGER LogonTime;
357 LARGE_INTEGER LogoffTime;
358 LARGE_INTEGER KickOffTime;
359 LARGE_INTEGER PasswordLastSet;
360 LARGE_INTEGER PasswordCanChange;
361 LARGE_INTEGER PasswordMustChange;
362 UNICODE_STRING LogonScript;
363 UNICODE_STRING HomeDirectory;
364 UNICODE_STRING FullName;
365 UNICODE_STRING ProfilePath;
366 UNICODE_STRING HomeDirectoryDrive;
367 UNICODE_STRING LogonServer;
368 ULONG UserFlags;
369 } MSV1_0_INTERACTIVE_PROFILE, *PMSV1_0_INTERACTIVE_PROFILE;
370 typedef struct _MSV1_0_LM20_LOGON {
371 MSV1_0_LOGON_SUBMIT_TYPE MessageType;
372 UNICODE_STRING LogonDomainName;
373 UNICODE_STRING UserName;
374 UNICODE_STRING Workstation;
375 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH];
376 STRING CaseSensitiveChallengeResponse;
377 STRING CaseInsensitiveChallengeResponse;
378 ULONG ParameterControl;
379 } MSV1_0_LM20_LOGON, * PMSV1_0_LM20_LOGON;
380 typedef struct _MSV1_0_SUBAUTH_LOGON{ /* W2K only */
381 MSV1_0_LOGON_SUBMIT_TYPE MessageType;
382 UNICODE_STRING LogonDomainName;
383 UNICODE_STRING UserName;
384 UNICODE_STRING Workstation;
385 UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH];
386 STRING AuthenticationInfo1;
387 STRING AuthenticationInfo2;
388 ULONG ParameterControl;
389 ULONG SubAuthPackageId;
390 } MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON;
391 typedef struct _MSV1_0_LM20_LOGON_PROFILE {
392 MSV1_0_PROFILE_BUFFER_TYPE MessageType;
393 LARGE_INTEGER KickOffTime;
394 LARGE_INTEGER LogoffTime;
395 ULONG UserFlags;
396 UCHAR UserSessionKey[MSV1_0_USER_SESSION_KEY_LENGTH];
397 UNICODE_STRING LogonDomainName;
398 UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH];
399 UNICODE_STRING LogonServer;
400 UNICODE_STRING UserParameters;
401 } MSV1_0_LM20_LOGON_PROFILE, * PMSV1_0_LM20_LOGON_PROFILE;
402 typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL {
403 ULONG Version;
404 ULONG Flags;
405 UCHAR LmPassword[MSV1_0_OWF_PASSWORD_LENGTH];
406 UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH];
407 } MSV1_0_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL;
408 typedef struct _MSV1_0_NTLM3_RESPONSE {
409 UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH];
410 UCHAR RespType;
411 UCHAR HiRespType;
412 USHORT Flags;
413 ULONG MsgWord;
414 ULONGLONG TimeStamp;
415 UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH];
416 ULONG AvPairsOff;
417 UCHAR Buffer[1];
418 } MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE;
419 typedef struct _MSV1_0_AV_PAIR {
420 USHORT AvId;
421 USHORT AvLen;
422 } MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR;
423 typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST {
424 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
425 UNICODE_STRING DomainName;
426 UNICODE_STRING AccountName;
427 UNICODE_STRING OldPassword;
428 UNICODE_STRING NewPassword;
429 BOOLEAN Impersonating;
430 } MSV1_0_CHANGEPASSWORD_REQUEST, *PMSV1_0_CHANGEPASSWORD_REQUEST;
431 typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE {
432 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
433 BOOLEAN PasswordInfoValid;
434 DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo;
435 } MSV1_0_CHANGEPASSWORD_RESPONSE, *PMSV1_0_CHANGEPASSWORD_RESPONSE;
436 typedef struct _MSV1_0_SUBAUTH_REQUEST{
437 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
438 ULONG SubAuthPackageId;
439 ULONG SubAuthInfoLength;
440 PUCHAR SubAuthSubmitBuffer;
441 } MSV1_0_SUBAUTH_REQUEST, *PMSV1_0_SUBAUTH_REQUEST;
442 typedef struct _MSV1_0_SUBAUTH_RESPONSE{
443 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
444 ULONG SubAuthInfoLength;
445 PUCHAR SubAuthReturnBuffer;
446 } MSV1_0_SUBAUTH_RESPONSE, *PMSV1_0_SUBAUTH_RESPONSE;
447 #define MSV1_0_DERIVECRED_TYPE_SHA1 0
448 typedef struct _MSV1_0_DERIVECRED_REQUEST {
449 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
450 LUID LogonId;
451 ULONG DeriveCredType;
452 ULONG DeriveCredInfoLength;
453 UCHAR DeriveCredSubmitBuffer[1];
454 } MSV1_0_DERIVECRED_REQUEST, *PMSV1_0_DERIVECRED_REQUEST;
455 typedef struct _MSV1_0_DERIVECRED_RESPONSE {
456 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
457 ULONG DeriveCredInfoLength;
458 UCHAR DeriveCredReturnBuffer[1];
459 } MSV1_0_DERIVECRED_RESPONSE, *PMSV1_0_DERIVECRED_RESPONSE;
460 typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
461 typedef struct _POLICY_PRIVILEGE_DEFINITION {
462 LSA_UNICODE_STRING Name;
463 LUID LocalValue;
464 } POLICY_PRIVILEGE_DEFINITION, *PPOLICY_PRIVILEGE_DEFINITION;
465 typedef struct _POLICY_AUDIT_LOG_INFO {
466 ULONG AuditLogPercentFull;
467 ULONG MaximumLogSize;
468 LARGE_INTEGER AuditRetentionPeriod;
469 BOOLEAN AuditLogFullShutdownInProgress;
470 LARGE_INTEGER TimeToShutdown;
471 ULONG NextAuditRecordId;
472 } POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO;
473 typedef struct _POLICY_AUDIT_EVENTS_INFO {
474 BOOLEAN AuditingMode;
475 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
476 ULONG MaximumAuditEventCount;
477 } POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
478 typedef struct _POLICY_ACCOUNT_DOMAIN_INFO {
479 LSA_UNICODE_STRING DomainName;
480 PSID DomainSid;
481 } POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
482 typedef struct _POLICY_PRIMARY_DOMAIN_INFO {
483 LSA_UNICODE_STRING Name;
484 PSID Sid;
485 } POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
486 typedef struct _POLICY_DNS_DOMAIN_INFO {
487 LSA_UNICODE_STRING Name;
488 LSA_UNICODE_STRING DnsDomainName;
489 LSA_UNICODE_STRING DnsTreeName;
490 GUID DomainGuid;
491 PSID Sid;
492 } POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO;
493 typedef struct _POLICY_PD_ACCOUNT_INFO {
494 LSA_UNICODE_STRING Name;
495 } POLICY_PD_ACCOUNT_INFO, *PPOLICY_PD_ACCOUNT_INFO;
496 typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
497 POLICY_LSA_SERVER_ROLE LsaServerRole;
498 } POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
499 typedef struct _POLICY_REPLICA_SOURCE_INFO {
500 LSA_UNICODE_STRING ReplicaSource;
501 LSA_UNICODE_STRING ReplicaAccountName;
502 } POLICY_REPLICA_SOURCE_INFO, *PPOLICY_REPLICA_SOURCE_INFO;
503 typedef struct _POLICY_DEFAULT_QUOTA_INFO {
504 QUOTA_LIMITS QuotaLimits;
505 } POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO;
506 typedef struct _POLICY_MODIFICATION_INFO {
507 LARGE_INTEGER ModifiedId;
508 LARGE_INTEGER DatabaseCreationTime;
509 } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
510 typedef struct _POLICY_AUDIT_FULL_SET_INFO {
511 BOOLEAN ShutDownOnFull;
512 } POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO;
513 typedef struct _POLICY_AUDIT_FULL_QUERY_INFO {
514 BOOLEAN ShutDownOnFull;
515 BOOLEAN LogIsFull;
516 } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO;
517 typedef struct _POLICY_EFS_INFO {
518 ULONG InfoLength;
519 PUCHAR EfsBlob;
520 } POLICY_EFS_INFO, *PPOLICY_EFS_INFO;
521 typedef struct _POLICY_LOCAL_IPSEC_REFERENCE_INFO {
522 LSA_UNICODE_STRING ObjectPath;
523 } POLICY_LOCAL_IPSEC_REFERENCE_INFO, *PPOLICY_LOCAL_IPSEC_REFERENCE_INFO;
524 typedef struct _POLICY_LOCAL_MACHINE_PASSWORD_INFO {
525 LARGE_INTEGER PasswordChangeInterval;
526 } POLICY_LOCAL_MACHINE_PASSWORD_INFO, *PPOLICY_LOCAL_MACHINE_PASSWORD_INFO;
527 typedef struct _POLICY_LOCAL_POLICY_LOCATION_INFO {
528 ULONG PolicyLocation;
529 } POLICY_LOCAL_POLICY_LOCATION_INFO, *PPOLICY_LOCAL_POLICY_LOCATION_INFO;
530 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO {
531 ULONG QualityOfService;
532 } POLICY_LOCAL_QUALITY_OF_SERVICE_INFO, *PPOLICY_LOCAL_QUALITY_OF_SERVICE_INFO;
533 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
534 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
535 typedef struct _POLICY_DOMAIN_PUBLIC_KEY_INFO {
536 ULONG InfoLength;
537 PUCHAR PublicKeyInfo;
538 } POLICY_DOMAIN_PUBLIC_KEY_INFO, *PPOLICY_DOMAIN_PUBLIC_KEY_INFO;
539 typedef struct _POLICY_DOMAIN_LOCKOUT_INFO {
540 LARGE_INTEGER LockoutDuration;
541 LARGE_INTEGER LockoutObservationWindow;
542 USHORT LockoutThreshold;
543 } POLICY_DOMAIN_LOCKOUT_INFO, *PPOLICY_DOMAIN_LOCKOUT_INFO;
544 typedef struct _POLICY_DOMAIN_PASSWORD_INFO {
545 USHORT MinPasswordLength;
546 USHORT PasswordHistoryLength;
547 ULONG PasswordProperties;
548 LARGE_INTEGER MaxPasswordAge;
549 LARGE_INTEGER MinPasswordAge;
550 } POLICY_DOMAIN_PASSWORD_INFO, *PPOLICY_DOMAIN_PASSWORD_INFO;
551 typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO {
552 ULONG AuthenticationOptions;
553 LARGE_INTEGER MinTicketAge;
554 LARGE_INTEGER MaxTicketAge;
555 LARGE_INTEGER MaxRenewAge;
556 LARGE_INTEGER ProxyLifetime;
557 LARGE_INTEGER ForceLogoff;
558 } POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
559 typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
560 typedef struct _TRUSTED_DOMAIN_NAME_INFO {
561 LSA_UNICODE_STRING Name;
562 } TRUSTED_DOMAIN_NAME_INFO, *PTRUSTED_DOMAIN_NAME_INFO;
563 typedef struct _TRUSTED_CONTROLLERS_INFO {
564 ULONG Entries;
565 PLSA_UNICODE_STRING Names;
566 } TRUSTED_CONTROLLERS_INFO, *PTRUSTED_CONTROLLERS_INFO;
567 typedef struct _TRUSTED_POSIX_OFFSET_INFO {
568 ULONG Offset;
569 } TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO;
570 typedef struct _TRUSTED_PASSWORD_INFO {
571 LSA_UNICODE_STRING Password;
572 LSA_UNICODE_STRING OldPassword;
573 } TRUSTED_PASSWORD_INFO, *PTRUSTED_PASSWORD_INFO;
574 typedef LSA_TRUST_INFORMATION TRUSTED_DOMAIN_INFORMATION_BASIC;
575 typedef PLSA_TRUST_INFORMATION *PTRUSTED_DOMAIN_INFORMATION_BASIC;
576 typedef struct _TRUSTED_DOMAIN_INFORMATION_EX {
577 LSA_UNICODE_STRING Name;
578 LSA_UNICODE_STRING FlatName;
579 PSID Sid;
580 ULONG TrustDirection;
581 ULONG TrustType;
582 ULONG TrustAttributes;
583 } TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX;
584 typedef struct _LSA_AUTH_INFORMATION {
585 LARGE_INTEGER LastUpdateTime;
586 ULONG AuthType;
587 ULONG AuthInfoLength;
588 PUCHAR AuthInfo;
589 } LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION;
590 typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION {
591 ULONG IncomingAuthInfos;
592 PLSA_AUTH_INFORMATION IncomingAuthenticationInformation;
593 PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
594 ULONG OutgoingAuthInfos;
595 PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation;
596 PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
597 } TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION;
598 typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION {
599 TRUSTED_DOMAIN_INFORMATION_EX Information;
600 TRUSTED_POSIX_OFFSET_INFO PosixOffset;
601 TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
602 } TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION;
603 NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
604 NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,
605 PULONG,PNTSTATUS);
606 NTSTATUS NTAPI LsaClose(LSA_HANDLE);
607 NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE);
608 NTSTATUS NTAPI LsaCreateTrustedDomainEx(LSA_HANDLE,
609 PTRUSTED_DOMAIN_INFORMATION_EX,
610 PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK,
611 PLSA_HANDLE);
612 NTSTATUS NTAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
613 NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE);
614 NTSTATUS NTAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
615 NTSTATUS NTAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING,
616 PVOID*,PULONG);
617 NTSTATUS NTAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
618 PVOID*,ULONG,PULONG);
619 NTSTATUS NTAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
620 PVOID*,ULONG,PULONG);
621 NTSTATUS NTAPI LsaFreeMemory(PVOID);
622 NTSTATUS NTAPI LsaFreeReturnBuffer(PVOID);
623 NTSTATUS NTAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,
624 ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG,
625 PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS);
626 NTSTATUS NTAPI LsaLookupAuthenticationPackage(HANDLE,PLSA_STRING,PULONG);
627 NTSTATUS NTAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING,
628 PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_SID*);
629 NTSTATUS NTAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID*,
630 PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_NAME*);
631 ULONG NTAPI LsaNtStatusToWinError(NTSTATUS);
632 NTSTATUS NTAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,
633 ACCESS_MASK,PLSA_HANDLE);
634 NTSTATUS NTAPI LsaQueryDomainInformationPolicy(LSA_HANDLE,
635 POLICY_DOMAIN_INFORMATION_CLASS,PVOID*);
636 NTSTATUS NTAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
637 NTSTATUS NTAPI LsaQueryLocalInformationPolicy(LSA_HANDLE,
638 POLICY_LOCAL_INFORMATION_CLASS,PVOID*);
639 NTSTATUS NTAPI LsaQueryTrustedDomainInfo(LSA_HANDLE,PSID,
640 TRUSTED_INFORMATION_CLASS,PVOID*);
641 NTSTATUS NTAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,
642 TRUSTED_INFORMATION_CLASS,PVOID*);
643 NTSTATUS NTAPI LsaRegisterLogonProcess(PLSA_STRING,PHANDLE,PLSA_OPERATIONAL_MODE);
644 NTSTATUS NTAPI LsaRemoveAccountRights(LSA_HANDLE,PSID,BOOLEAN,
645 PLSA_UNICODE_STRING,ULONG);
646 NTSTATUS NTAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,
647 PLSA_UNICODE_STRING*);
648 NTSTATUS NTAPI LsaSetDomainInformationPolicy(LSA_HANDLE,
649 POLICY_DOMAIN_INFORMATION_CLASS,PVOID);
650 NTSTATUS NTAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS, PVOID);
651 NTSTATUS NTAPI LsaSetLocalInformationPolicy(LSA_HANDLE,
652 POLICY_LOCAL_INFORMATION_CLASS,PVOID);
653 NTSTATUS NTAPI LsaSetTrustedDomainInformation(LSA_HANDLE,PSID,
654 TRUSTED_INFORMATION_CLASS,PVOID);
655 NTSTATUS NTAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,
656 TRUSTED_INFORMATION_CLASS,PVOID);
657 NTSTATUS NTAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,
658 PLSA_UNICODE_STRING);
659 typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE)(PUNICODE_STRING,
660 ULONG,PUNICODE_STRING);
661 typedef BOOLEAN (*PSAM_INIT_NOTIFICATION_ROUTINE)(void);
662 typedef BOOLEAN (*PSAM_PASSWORD_FILTER_ROUTINE)(PUNICODE_STRING,PUNICODE_STRING,
663 PUNICODE_STRING,BOOLEAN);
664 #ifdef __cplusplus
665 }
666 #endif
667 #endif /* _NTSECAPI_H */