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