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