7 #define LOGON_NOENCRYPTION 2
8 #define LOGON_CACHED_ACCOUNT 4
9 #define LOGON_USED_LM_PASSWORD 8
10 #define LOGON_EXTRA_SIDS 32
11 #define LOGON_SUBAUTH_SESSION_KEY 64
12 #define LOGON_SERVER_TRUST_ACCOUNT 128
13 #define LOGON_NTLMV2_ENABLED 256
14 #define LOGON_RESOURCE_GROUPS 512
15 #define LOGON_PROFILE_PATH_RETURNED 1024
16 #define LOGON_GRACE_LOGON 16777216
17 #define LSA_MODE_PASSWORD_PROTECTED 1
18 #define LSA_MODE_INDIVIDUAL_ACCOUNTS 2
19 #define LSA_MODE_MANDATORY_ACCESS 3
20 #define LSA_MODE_LOG_FULL 4
21 #define LSA_SUCCESS(x) ((LONG)(x)>=0)
22 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 32
23 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 2048
24 #define MSV1_0_CHALLENGE_LENGTH 8
25 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 2
26 #define MSV1_0_CRED_LM_PRESENT 1
27 #define MSV1_0_CRED_NT_PRESENT 2
28 #define MSV1_0_CRED_VERSION 0
29 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 16
30 #define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8
31 #define MSV1_0_MAX_NTLM3_LIFE 1800
32 #define MSV1_0_MAX_AVL_SIZE 64000
33 #define MSV1_0_MNS_LOGON 16777216
34 #define MSV1_0_NTLM3_RESPONSE_LENGTH 16
35 #define MSV1_0_NTLM3_OWF_LENGTH 16
36 #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE)-MSV1_0_NTLM3_RESPONSE_LENGTH)
37 #define MSV1_0_OWF_PASSWORD_LENGTH 16
38 #define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
39 #define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
40 #define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW)-sizeof(WCHAR)
41 #define MSV1_0_RETURN_USER_PARAMETERS 8
42 #define MSV1_0_RETURN_PASSWORD_EXPIRY 64
43 #define MSV1_0_RETURN_PROFILE_PATH 512
44 #define MSV1_0_SUBAUTHENTICATION_DLL_EX 1048576
45 #define MSV1_0_SUBAUTHENTICATION_DLL 0xff000000
46 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24
47 #define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2
48 #define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132
49 #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xff000000
50 #define MSV1_0_SUBAUTHENTICATION_KEY "System\\CurrentControlSet\\Control\\Lsa\\MSV1_0"
51 #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth"
52 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 256
53 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 1024
54 #define MSV1_0_UPDATE_LOGON_STATISTICS 4
55 #define MSV1_0_USE_CLIENT_CHALLENGE 128
56 #define MSV1_0_USER_SESSION_KEY_LENGTH 16
57 #define POLICY_VIEW_LOCAL_INFORMATION 1
58 #define POLICY_VIEW_AUDIT_INFORMATION 2
59 #define POLICY_GET_PRIVATE_INFORMATION 4
60 #define POLICY_TRUST_ADMIN 8
61 #define POLICY_CREATE_ACCOUNT 16
62 #define POLICY_CREATE_SECRET 32
63 #define POLICY_CREATE_PRIVILEGE 64
64 #define POLICY_SET_DEFAULT_QUOTA_LIMITS 128
65 #define POLICY_SET_AUDIT_REQUIREMENTS 256
66 #define POLICY_AUDIT_LOG_ADMIN 512
67 #define POLICY_SERVER_ADMIN 1024
68 #define POLICY_LOOKUP_NAMES 2048
69 #define POLICY_READ (STANDARD_RIGHTS_READ|6)
70 #define POLICY_WRITE (STANDARD_RIGHTS_WRITE|2040)
71 #define POLICY_EXECUTE (STANDARD_RIGHTS_EXECUTE|2049)
72 #define POLICY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|4095)
73 #define POLICY_AUDIT_EVENT_UNCHANGED 0
74 #define POLICY_AUDIT_EVENT_SUCCESS 1
75 #define POLICY_AUDIT_EVENT_FAILURE 2
76 #define POLICY_AUDIT_EVENT_NONE 4
77 #define POLICY_AUDIT_EVENT_MASK 7
78 #define POLICY_LOCATION_LOCAL 1
79 #define POLICY_LOCATION_DS 2
80 #define POLICY_MACHINE_POLICY_LOCAL 0
81 #define POLICY_MACHINE_POLICY_DEFAULTED 1
82 #define POLICY_MACHINE_POLICY_EXPLICIT 2
83 #define POLICY_MACHINE_POLICY_UNKNOWN 0xFFFFFFFF
84 #define POLICY_QOS_SCHANEL_REQUIRED 1
85 #define POLICY_QOS_OUTBOUND_INTEGRITY 2
86 #define POLICY_QOS_OUTBOUND_CONFIDENTIALITY 4
87 #define POLICY_QOS_INBOUND_INTEGREITY 8
88 #define POLICY_QOS_INBOUND_CONFIDENTIALITY 16
89 #define POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE 32
90 #define POLICY_QOS_RAS_SERVER_ALLOWED 64
91 #define POLICY_QOS_DHCP_SERVER_ALLOWD 128
92 #define POLICY_KERBEROS_FORWARDABLE 1
93 #define POLICY_KERBEROS_PROXYABLE 2
94 #define POLICY_KERBEROS_RENEWABLE 4
95 #define POLICY_KERBEROS_POSTDATEABLE 8
96 #define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify"
97 #define SAM_INIT_NOTIFICATION_ROUTINE "InitializeChangeNotify"
98 #define SAM_PASSWORD_FILTER_ROUTINE "PasswordFilter"
99 #define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight")
100 #define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight")
101 #define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight")
102 #define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight")
103 #define TRUST_ATTRIBUTE_NON_TRANSITIVE 1
104 #define TRUST_ATTRIBUTE_UPLEVEL_ONLY 2
105 #define TRUST_ATTRIBUTE_TREE_PARENT 4194304
106 #define TRUST_ATTRIBUTES_VALID -16580609
107 #define TRUST_AUTH_TYPE_NONE 0
108 #define TRUST_AUTH_TYPE_NT4OWF 1
109 #define TRUST_AUTH_TYPE_CLEAR 2
110 #define TRUST_DIRECTION_DISABLED 0
111 #define TRUST_DIRECTION_INBOUND 1
112 #define TRUST_DIRECTION_OUTBOUND 2
113 #define TRUST_DIRECTION_BIDIRECTIONAL 3
114 #define TRUST_TYPE_DOWNLEVEL 1
115 #define TRUST_TYPE_UPLEVEL 2
116 #define TRUST_TYPE_MIT 3
117 #define TRUST_TYPE_DCE 4
118 #if !defined(_NTDEF_H) && !defined(_SUBAUTH_H)
119 typedef LONG NTSTATUS
, *PNTSTATUS
;
120 typedef struct _UNICODE_STRING
{
122 USHORT MaximumLength
;
124 } UNICODE_STRING
, *PUNICODE_STRING
;
125 typedef struct _STRING
{
127 USHORT MaximumLength
;
131 typedef UNICODE_STRING LSA_UNICODE_STRING
, *PLSA_UNICODE_STRING
;
132 typedef STRING LSA_STRING
, *PLSA_STRING
;
133 typedef enum _MSV1_0_LOGON_SUBMIT_TYPE
{
134 MsV1_0InteractiveLogon
= 2,
138 MsV1_0WorkstationUnlockLogon
= 7
139 } MSV1_0_LOGON_SUBMIT_TYPE
, *PMSV1_0_LOGON_SUBMIT_TYPE
;
140 typedef enum _MSV1_0_PROFILE_BUFFER_TYPE
{
141 MsV1_0InteractiveProfile
= 2,
142 MsV1_0Lm20LogonProfile
,
143 MsV1_0SmartCardProfile
144 } MSV1_0_PROFILE_BUFFER_TYPE
, *PMSV1_0_PROFILE_BUFFER_TYPE
;
149 MsvAvDnsComputerName
,
152 typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE
{
153 MsV1_0Lm20ChallengeRequest
= 0,
154 MsV1_0Lm20GetChallengeResponse
,
155 MsV1_0EnumerateUsers
,
158 MsV1_0ChangePassword
,
159 MsV1_0ChangeCachedPassword
,
160 MsV1_0GenericPassthrough
,
163 MsV1_0DeriveCredential
,
165 } MSV1_0_PROTOCOL_MESSAGE_TYPE
, *PMSV1_0_PROTOCOL_MESSAGE_TYPE
;
166 typedef enum _POLICY_LSA_SERVER_ROLE
{
167 PolicyServerRoleBackup
= 2,
168 PolicyServerRolePrimary
169 } POLICY_LSA_SERVER_ROLE
, *PPOLICY_LSA_SERVER_ROLE
;
170 typedef enum _POLICY_SERVER_ENABLE_STATE
{
171 PolicyServerEnabled
= 2,
173 } POLICY_SERVER_ENABLE_STATE
, *PPOLICY_SERVER_ENABLE_STATE
;
174 typedef enum _POLICY_INFORMATION_CLASS
{
175 PolicyAuditLogInformation
= 1,
176 PolicyAuditEventsInformation
,
177 PolicyPrimaryDomainInformation
,
178 PolicyPdAccountInformation
,
179 PolicyAccountDomainInformation
,
180 PolicyLsaServerRoleInformation
,
181 PolicyReplicaSourceInformation
,
182 PolicyDefaultQuotaInformation
,
183 PolicyModificationInformation
,
184 PolicyAuditFullSetInformation
,
185 PolicyAuditFullQueryInformation
,
186 PolicyDnsDomainInformation
,
188 } POLICY_INFORMATION_CLASS
, *PPOLICY_INFORMATION_CLASS
;
189 typedef enum _POLICY_AUDIT_EVENT_TYPE
{
192 AuditCategoryObjectAccess
,
193 AuditCategoryPrivilegeUse
,
194 AuditCategoryDetailedTracking
,
195 AuditCategoryPolicyChange
,
196 AuditCategoryAccountManagement
,
197 AuditCategoryDirectoryServiceAccess
,
198 AuditCategoryAccountLogon
199 } POLICY_AUDIT_EVENT_TYPE
, *PPOLICY_AUDIT_EVENT_TYPE
;
200 typedef enum _POLICY_LOCAL_INFORMATION_CLASS
{
201 PolicyLocalAuditEventsInformation
= 1,
202 PolicyLocalPdAccountInformation
,
203 PolicyLocalAccountDomainInformation
,
204 PolicyLocalLsaServerRoleInformation
,
205 PolicyLocalReplicaSourceInformation
,
206 PolicyLocalModificationInformation
,
207 PolicyLocalAuditFullSetInformation
,
208 PolicyLocalAuditFullQueryInformation
,
209 PolicyLocalDnsDomainInformation
,
210 PolicyLocalIPSecReferenceInformation
,
211 PolicyLocalMachinePasswordInformation
,
212 PolicyLocalQualityOfServiceInformation
,
213 PolicyLocalPolicyLocationInformation
214 } POLICY_LOCAL_INFORMATION_CLASS
, *PPOLICY_LOCAL_INFORMATION_CLASS
;
215 typedef enum _POLICY_DOMAIN_INFORMATION_CLASS
{
216 PolicyDomainIPSecReferenceInformation
= 1,
217 PolicyDomainQualityOfServiceInformation
,
218 PolicyDomainEfsInformation
,
219 PolicyDomainPublicKeyInformation
,
220 PolicyDomainPasswordPolicyInformation
,
221 PolicyDomainLockoutInformation
,
222 PolicyDomainKerberosTicketInformation
223 } POLICY_DOMAIN_INFORMATION_CLASS
, *PPOLICY_DOMAIN_INFORMATION_CLASS
;
224 typedef enum _SECURITY_LOGON_TYPE
{
231 } SECURITY_LOGON_TYPE
, *PSECURITY_LOGON_TYPE
;
232 typedef enum _TRUSTED_INFORMATION_CLASS
{
233 TrustedDomainNameInformation
= 1,
234 TrustedControllersInformation
,
235 TrustedPosixOffsetInformation
,
236 TrustedPasswordInformation
,
237 TrustedDomainInformationBasic
,
238 TrustedDomainInformationEx
,
239 TrustedDomainAuthInformation
,
240 TrustedDomainFullInformation
241 } TRUSTED_INFORMATION_CLASS
, *PTRUSTED_INFORMATION_CLASS
;
242 typedef struct _DOMAIN_PASSWORD_INFORMATION
{
243 USHORT MinPasswordLength
;
244 USHORT PasswordHistoryLength
;
245 ULONG PasswordProperties
;
246 LARGE_INTEGER MaxPasswordAge
;
247 LARGE_INTEGER MinPasswordAge
;
248 } DOMAIN_PASSWORD_INFORMATION
, *PDOMAIN_PASSWORD_INFORMATION
;
249 typedef ULONG LSA_ENUMERATION_HANDLE
, *PLSA_ENUMERATION_HANDLE
;
250 typedef struct _LSA_ENUMERATION_INFORMATION
{
252 } LSA_ENUMERATION_INFORMATION
, *PLSA_ENUMERATION_INFORMATION
;
253 typedef ULONG LSA_OPERATIONAL_MODE
, *PLSA_OPERATIONAL_MODE
;
254 #if !defined(_NTDEF_H)
255 typedef struct _LSA_OBJECT_ATTRIBUTES
{
257 HANDLE RootDirectory
;
258 PLSA_UNICODE_STRING ObjectName
;
260 PVOID SecurityDescriptor
;
261 PVOID SecurityQualityOfService
;
262 } OBJECT_ATTRIBUTES
, *POBJECT_ATTRIBUTES
;
264 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES
, *PLSA_OBJECT_ATTRIBUTES
;
265 typedef struct _LSA_TRUST_INFORMATION
{
266 LSA_UNICODE_STRING Name
;
268 } LSA_TRUST_INFORMATION
, *PLSA_TRUST_INFORMATION
;
269 typedef struct _LSA_REFERENCED_DOMAIN_LIST
{
271 PLSA_TRUST_INFORMATION Domains
;
272 } LSA_REFERENCED_DOMAIN_LIST
, *PLSA_REFERENCED_DOMAIN_LIST
;
273 typedef struct _LSA_TRANSLATED_SID
{
277 } LSA_TRANSLATED_SID
, *PLSA_TRANSLATED_SID
;
278 typedef struct _LSA_TRANSLATED_NAME
{
280 LSA_UNICODE_STRING Name
;
282 } LSA_TRANSLATED_NAME
, *PLSA_TRANSLATED_NAME
;
283 typedef struct _MSV1_0_INTERACTIVE_LOGON
{
284 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
285 UNICODE_STRING LogonDomainName
;
286 UNICODE_STRING UserName
;
287 UNICODE_STRING Password
;
288 } MSV1_0_INTERACTIVE_LOGON
, *PMSV1_0_INTERACTIVE_LOGON
;
289 typedef struct _MSV1_0_INTERACTIVE_PROFILE
{
290 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
292 USHORT BadPasswordCount
;
293 LARGE_INTEGER LogonTime
;
294 LARGE_INTEGER LogoffTime
;
295 LARGE_INTEGER KickOffTime
;
296 LARGE_INTEGER PasswordLastSet
;
297 LARGE_INTEGER PasswordCanChange
;
298 LARGE_INTEGER PasswordMustChange
;
299 UNICODE_STRING LogonScript
;
300 UNICODE_STRING HomeDirectory
;
301 UNICODE_STRING FullName
;
302 UNICODE_STRING ProfilePath
;
303 UNICODE_STRING HomeDirectoryDrive
;
304 UNICODE_STRING LogonServer
;
306 } MSV1_0_INTERACTIVE_PROFILE
, *PMSV1_0_INTERACTIVE_PROFILE
;
307 typedef struct _MSV1_0_LM20_LOGON
{
308 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
309 UNICODE_STRING LogonDomainName
;
310 UNICODE_STRING UserName
;
311 UNICODE_STRING Workstation
;
312 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
313 STRING CaseSensitiveChallengeResponse
;
314 STRING CaseInsensitiveChallengeResponse
;
315 ULONG ParameterControl
;
316 } MSV1_0_LM20_LOGON
, * PMSV1_0_LM20_LOGON
;
317 typedef struct _MSV1_0_SUBAUTH_LOGON
{ /* W2K only */
318 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
319 UNICODE_STRING LogonDomainName
;
320 UNICODE_STRING UserName
;
321 UNICODE_STRING Workstation
;
322 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
323 STRING AuthenticationInfo1
;
324 STRING AuthenticationInfo2
;
325 ULONG ParameterControl
;
326 ULONG SubAuthPackageId
;
327 } MSV1_0_SUBAUTH_LOGON
, * PMSV1_0_SUBAUTH_LOGON
;
328 typedef struct _MSV1_0_LM20_LOGON_PROFILE
{
329 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
330 LARGE_INTEGER KickOffTime
;
331 LARGE_INTEGER LogoffTime
;
333 UCHAR UserSessionKey
[MSV1_0_USER_SESSION_KEY_LENGTH
];
334 UNICODE_STRING LogonDomainName
;
335 UCHAR LanmanSessionKey
[MSV1_0_LANMAN_SESSION_KEY_LENGTH
];
336 UNICODE_STRING LogonServer
;
337 UNICODE_STRING UserParameters
;
338 } MSV1_0_LM20_LOGON_PROFILE
, * PMSV1_0_LM20_LOGON_PROFILE
;
339 typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL
{
342 UCHAR LmPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
343 UCHAR NtPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
344 } MSV1_0_SUPPLEMENTAL_CREDENTIAL
, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL
;
345 typedef struct _MSV1_0_NTLM3_RESPONSE
{
346 UCHAR Response
[MSV1_0_NTLM3_RESPONSE_LENGTH
];
352 UCHAR ChallengeFromClient
[MSV1_0_CHALLENGE_LENGTH
];
355 } MSV1_0_NTLM3_RESPONSE
, *PMSV1_0_NTLM3_RESPONSE
;
356 typedef struct _MSV1_0_AV_PAIR
{
359 } MSV1_0_AV_PAIR
, *PMSV1_0_AV_PAIR
;
360 typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST
{
361 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
362 UNICODE_STRING DomainName
;
363 UNICODE_STRING AccountName
;
364 UNICODE_STRING OldPassword
;
365 UNICODE_STRING NewPassword
;
366 BOOLEAN Impersonating
;
367 } MSV1_0_CHANGEPASSWORD_REQUEST
, *PMSV1_0_CHANGEPASSWORD_REQUEST
;
368 typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE
{
369 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
370 BOOLEAN PasswordInfoValid
;
371 DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo
;
372 } MSV1_0_CHANGEPASSWORD_RESPONSE
, *PMSV1_0_CHANGEPASSWORD_RESPONSE
;
373 typedef struct _MSV1_0_SUBAUTH_REQUEST
{
374 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
375 ULONG SubAuthPackageId
;
376 ULONG SubAuthInfoLength
;
377 PUCHAR SubAuthSubmitBuffer
;
378 } MSV1_0_SUBAUTH_REQUEST
, *PMSV1_0_SUBAUTH_REQUEST
;
379 typedef struct _MSV1_0_SUBAUTH_RESPONSE
{
380 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
381 ULONG SubAuthInfoLength
;
382 PUCHAR SubAuthReturnBuffer
;
383 } MSV1_0_SUBAUTH_RESPONSE
, *PMSV1_0_SUBAUTH_RESPONSE
;
384 #define MSV1_0_DERIVECRED_TYPE_SHA1 0
385 typedef struct _MSV1_0_DERIVECRED_REQUEST
{
386 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
388 ULONG DeriveCredType
;
389 ULONG DeriveCredInfoLength
;
390 UCHAR DeriveCredSubmitBuffer
[1];
391 } MSV1_0_DERIVECRED_REQUEST
, *PMSV1_0_DERIVECRED_REQUEST
;
392 typedef struct _MSV1_0_DERIVECRED_RESPONSE
{
393 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
394 ULONG DeriveCredInfoLength
;
395 UCHAR DeriveCredReturnBuffer
[1];
396 } MSV1_0_DERIVECRED_RESPONSE
, *PMSV1_0_DERIVECRED_RESPONSE
;
397 typedef ULONG POLICY_AUDIT_EVENT_OPTIONS
, *PPOLICY_AUDIT_EVENT_OPTIONS
;
398 typedef struct _POLICY_PRIVILEGE_DEFINITION
{
399 LSA_UNICODE_STRING Name
;
401 } POLICY_PRIVILEGE_DEFINITION
, *PPOLICY_PRIVILEGE_DEFINITION
;
402 typedef struct _POLICY_AUDIT_LOG_INFO
{
403 ULONG AuditLogPercentFull
;
404 ULONG MaximumLogSize
;
405 LARGE_INTEGER AuditRetentionPeriod
;
406 BOOLEAN AuditLogFullShutdownInProgress
;
407 LARGE_INTEGER TimeToShutdown
;
408 ULONG NextAuditRecordId
;
409 } POLICY_AUDIT_LOG_INFO
, *PPOLICY_AUDIT_LOG_INFO
;
410 typedef struct _POLICY_AUDIT_EVENTS_INFO
{
411 BOOLEAN AuditingMode
;
412 PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions
;
413 ULONG MaximumAuditEventCount
;
414 } POLICY_AUDIT_EVENTS_INFO
, *PPOLICY_AUDIT_EVENTS_INFO
;
415 typedef struct _POLICY_ACCOUNT_DOMAIN_INFO
{
416 LSA_UNICODE_STRING DomainName
;
418 } POLICY_ACCOUNT_DOMAIN_INFO
, *PPOLICY_ACCOUNT_DOMAIN_INFO
;
419 typedef struct _POLICY_PRIMARY_DOMAIN_INFO
{
420 LSA_UNICODE_STRING Name
;
422 } POLICY_PRIMARY_DOMAIN_INFO
, *PPOLICY_PRIMARY_DOMAIN_INFO
;
423 typedef struct _POLICY_DNS_DOMAIN_INFO
{
424 LSA_UNICODE_STRING Name
;
425 LSA_UNICODE_STRING DnsDomainName
;
426 LSA_UNICODE_STRING DnsTreeName
;
429 } POLICY_DNS_DOMAIN_INFO
, *PPOLICY_DNS_DOMAIN_INFO
;
430 typedef struct _POLICY_PD_ACCOUNT_INFO
{
431 LSA_UNICODE_STRING Name
;
432 } POLICY_PD_ACCOUNT_INFO
, *PPOLICY_PD_ACCOUNT_INFO
;
433 typedef struct _POLICY_LSA_SERVER_ROLE_INFO
{
434 POLICY_LSA_SERVER_ROLE LsaServerRole
;
435 } POLICY_LSA_SERVER_ROLE_INFO
, *PPOLICY_LSA_SERVER_ROLE_INFO
;
436 typedef struct _POLICY_REPLICA_SOURCE_INFO
{
437 LSA_UNICODE_STRING ReplicaSource
;
438 LSA_UNICODE_STRING ReplicaAccountName
;
439 } POLICY_REPLICA_SOURCE_INFO
, *PPOLICY_REPLICA_SOURCE_INFO
;
440 typedef struct _POLICY_DEFAULT_QUOTA_INFO
{
441 QUOTA_LIMITS QuotaLimits
;
442 } POLICY_DEFAULT_QUOTA_INFO
, *PPOLICY_DEFAULT_QUOTA_INFO
;
443 typedef struct _POLICY_MODIFICATION_INFO
{
444 LARGE_INTEGER ModifiedId
;
445 LARGE_INTEGER DatabaseCreationTime
;
446 } POLICY_MODIFICATION_INFO
, *PPOLICY_MODIFICATION_INFO
;
447 typedef struct _POLICY_AUDIT_FULL_SET_INFO
{
448 BOOLEAN ShutDownOnFull
;
449 } POLICY_AUDIT_FULL_SET_INFO
, *PPOLICY_AUDIT_FULL_SET_INFO
;
450 typedef struct _POLICY_AUDIT_FULL_QUERY_INFO
{
451 BOOLEAN ShutDownOnFull
;
453 } POLICY_AUDIT_FULL_QUERY_INFO
, *PPOLICY_AUDIT_FULL_QUERY_INFO
;
454 typedef struct _POLICY_EFS_INFO
{
457 } POLICY_EFS_INFO
, *PPOLICY_EFS_INFO
;
458 typedef struct _POLICY_LOCAL_IPSEC_REFERENCE_INFO
{
459 LSA_UNICODE_STRING ObjectPath
;
460 } POLICY_LOCAL_IPSEC_REFERENCE_INFO
, *PPOLICY_LOCAL_IPSEC_REFERENCE_INFO
;
461 typedef struct _POLICY_LOCAL_MACHINE_PASSWORD_INFO
{
462 LARGE_INTEGER PasswordChangeInterval
;
463 } POLICY_LOCAL_MACHINE_PASSWORD_INFO
, *PPOLICY_LOCAL_MACHINE_PASSWORD_INFO
;
464 typedef struct _POLICY_LOCAL_POLICY_LOCATION_INFO
{
465 ULONG PolicyLocation
;
466 } POLICY_LOCAL_POLICY_LOCATION_INFO
, *PPOLICY_LOCAL_POLICY_LOCATION_INFO
;
467 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO
{
468 ULONG QualityOfService
;
469 } POLICY_LOCAL_QUALITY_OF_SERVICE_INFO
, *PPOLICY_LOCAL_QUALITY_OF_SERVICE_INFO
;
470 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO
;
471 typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO
*PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO
;
472 typedef struct _POLICY_DOMAIN_PUBLIC_KEY_INFO
{
474 PUCHAR PublicKeyInfo
;
475 } POLICY_DOMAIN_PUBLIC_KEY_INFO
, *PPOLICY_DOMAIN_PUBLIC_KEY_INFO
;
476 typedef struct _POLICY_DOMAIN_LOCKOUT_INFO
{
477 LARGE_INTEGER LockoutDuration
;
478 LARGE_INTEGER LockoutObservationWindow
;
479 USHORT LockoutThreshold
;
480 } POLICY_DOMAIN_LOCKOUT_INFO
, *PPOLICY_DOMAIN_LOCKOUT_INFO
;
481 typedef struct _POLICY_DOMAIN_PASSWORD_INFO
{
482 USHORT MinPasswordLength
;
483 USHORT PasswordHistoryLength
;
484 ULONG PasswordProperties
;
485 LARGE_INTEGER MaxPasswordAge
;
486 LARGE_INTEGER MinPasswordAge
;
487 } POLICY_DOMAIN_PASSWORD_INFO
, *PPOLICY_DOMAIN_PASSWORD_INFO
;
488 typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO
{
489 ULONG AuthenticationOptions
;
490 LARGE_INTEGER MinTicketAge
;
491 LARGE_INTEGER MaxTicketAge
;
492 LARGE_INTEGER MaxRenewAge
;
493 LARGE_INTEGER ProxyLifetime
;
494 LARGE_INTEGER ForceLogoff
;
495 } POLICY_DOMAIN_KERBEROS_TICKET_INFO
, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO
;
496 typedef PVOID LSA_HANDLE
, *PLSA_HANDLE
;
497 typedef struct _TRUSTED_DOMAIN_NAME_INFO
{
498 LSA_UNICODE_STRING Name
;
499 } TRUSTED_DOMAIN_NAME_INFO
, *PTRUSTED_DOMAIN_NAME_INFO
;
500 typedef struct _TRUSTED_CONTROLLERS_INFO
{
502 PLSA_UNICODE_STRING Names
;
503 } TRUSTED_CONTROLLERS_INFO
, *PTRUSTED_CONTROLLERS_INFO
;
504 typedef struct _TRUSTED_POSIX_OFFSET_INFO
{
506 } TRUSTED_POSIX_OFFSET_INFO
, *PTRUSTED_POSIX_OFFSET_INFO
;
507 typedef struct _TRUSTED_PASSWORD_INFO
{
508 LSA_UNICODE_STRING Password
;
509 LSA_UNICODE_STRING OldPassword
;
510 } TRUSTED_PASSWORD_INFO
, *PTRUSTED_PASSWORD_INFO
;
511 typedef LSA_TRUST_INFORMATION TRUSTED_DOMAIN_INFORMATION_BASIC
;
512 typedef PLSA_TRUST_INFORMATION
*PTRUSTED_DOMAIN_INFORMATION_BASIC
;
513 typedef struct _TRUSTED_DOMAIN_INFORMATION_EX
{
514 LSA_UNICODE_STRING Name
;
515 LSA_UNICODE_STRING FlatName
;
517 ULONG TrustDirection
;
519 ULONG TrustAttributes
;
520 } TRUSTED_DOMAIN_INFORMATION_EX
, *PTRUSTED_DOMAIN_INFORMATION_EX
;
521 typedef struct _LSA_AUTH_INFORMATION
{
522 LARGE_INTEGER LastUpdateTime
;
524 ULONG AuthInfoLength
;
526 } LSA_AUTH_INFORMATION
, *PLSA_AUTH_INFORMATION
;
527 typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION
{
528 ULONG IncomingAuthInfos
;
529 PLSA_AUTH_INFORMATION IncomingAuthenticationInformation
;
530 PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation
;
531 ULONG OutgoingAuthInfos
;
532 PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation
;
533 PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation
;
534 } TRUSTED_DOMAIN_AUTH_INFORMATION
, *PTRUSTED_DOMAIN_AUTH_INFORMATION
;
535 typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION
{
536 TRUSTED_DOMAIN_INFORMATION_EX Information
;
537 TRUSTED_POSIX_OFFSET_INFO PosixOffset
;
538 TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation
;
539 } TRUSTED_DOMAIN_FULL_INFORMATION
, *PTRUSTED_DOMAIN_FULL_INFORMATION
;
540 NTSTATUS NTAPI
LsaAddAccountRights(LSA_HANDLE
,PSID
,PLSA_UNICODE_STRING
,ULONG
);
541 NTSTATUS NTAPI
LsaCallAuthenticationPackage(HANDLE
,ULONG
,PVOID
,ULONG
,PVOID
*,
543 NTSTATUS NTAPI
LsaClose(LSA_HANDLE
);
544 NTSTATUS NTAPI
LsaConnectUntrusted(PHANDLE
);
545 NTSTATUS NTAPI
LsaCreateTrustedDomainEx(LSA_HANDLE
,
546 PTRUSTED_DOMAIN_INFORMATION_EX
,
547 PTRUSTED_DOMAIN_AUTH_INFORMATION
,ACCESS_MASK
,
549 NTSTATUS NTAPI
LsaDeleteTrustedDomain(LSA_HANDLE
,PSID
);
550 NTSTATUS NTAPI
LsaDeregisterLogonProcess(HANDLE
);
551 NTSTATUS NTAPI
LsaEnumerateAccountRights(LSA_HANDLE
,PSID
,PLSA_UNICODE_STRING
*,PULONG
);
552 NTSTATUS NTAPI
LsaEnumerateAccountsWithUserRight(LSA_HANDLE
,PLSA_UNICODE_STRING
,
554 NTSTATUS NTAPI
LsaEnumerateTrustedDomains(LSA_HANDLE
,PLSA_ENUMERATION_HANDLE
,
555 PVOID
*,ULONG
,PULONG
);
556 NTSTATUS NTAPI
LsaEnumerateTrustedDomainsEx(LSA_HANDLE
,PLSA_ENUMERATION_HANDLE
,
557 TRUSTED_INFORMATION_CLASS
,PVOID
*,ULONG
,PULONG
);
558 NTSTATUS NTAPI
LsaFreeMemory(PVOID
);
559 NTSTATUS NTAPI
LsaFreeReturnBuffer(PVOID
);
560 NTSTATUS NTAPI
LsaLogonUser(HANDLE
,PLSA_STRING
,SECURITY_LOGON_TYPE
,ULONG
,PVOID
,
561 ULONG
,PTOKEN_GROUPS
,PTOKEN_SOURCE
,PVOID
*,PULONG
,
562 PLUID
,PHANDLE
,PQUOTA_LIMITS
,PNTSTATUS
);
563 NTSTATUS NTAPI
LsaLookupAuthenticationPackage(HANDLE
,PLSA_STRING
,PULONG
);
564 NTSTATUS NTAPI
LsaLookupNames(LSA_HANDLE
,ULONG
,PLSA_UNICODE_STRING
,
565 PLSA_REFERENCED_DOMAIN_LIST
*,PLSA_TRANSLATED_SID
*);
566 NTSTATUS NTAPI
LsaLookupSids(LSA_HANDLE
,ULONG
,PSID
*,
567 PLSA_REFERENCED_DOMAIN_LIST
*,PLSA_TRANSLATED_NAME
*);
568 ULONG NTAPI
LsaNtStatusToWinError(NTSTATUS
);
569 NTSTATUS NTAPI
LsaOpenPolicy(PLSA_UNICODE_STRING
,PLSA_OBJECT_ATTRIBUTES
,
570 ACCESS_MASK
,PLSA_HANDLE
);
571 NTSTATUS NTAPI
LsaQueryDomainInformationPolicy(LSA_HANDLE
,
572 POLICY_DOMAIN_INFORMATION_CLASS
,PVOID
*);
573 NTSTATUS NTAPI
LsaQueryInformationPolicy(LSA_HANDLE
,POLICY_INFORMATION_CLASS
,PVOID
*);
574 NTSTATUS NTAPI
LsaQueryLocalInformationPolicy(LSA_HANDLE
,
575 POLICY_LOCAL_INFORMATION_CLASS
,PVOID
*);
576 NTSTATUS NTAPI
LsaQueryTrustedDomainInfo(LSA_HANDLE
,PSID
,
577 TRUSTED_INFORMATION_CLASS
,PVOID
*);
578 NTSTATUS NTAPI
LsaQueryTrustedDomainInfoByName(LSA_HANDLE
,PLSA_UNICODE_STRING
,
579 TRUSTED_INFORMATION_CLASS
,PVOID
*);
580 NTSTATUS NTAPI
LsaRegisterLogonProcess(PLSA_STRING
,PHANDLE
,PLSA_OPERATIONAL_MODE
);
581 NTSTATUS NTAPI
LsaRemoveAccountRights(LSA_HANDLE
,PSID
,BOOLEAN
,
582 PLSA_UNICODE_STRING
,ULONG
);
583 NTSTATUS NTAPI
LsaRetrievePrivateData(LSA_HANDLE
,PLSA_UNICODE_STRING
,
584 PLSA_UNICODE_STRING
*);
585 NTSTATUS NTAPI
LsaSetDomainInformationPolicy(LSA_HANDLE
,
586 POLICY_DOMAIN_INFORMATION_CLASS
,PVOID
);
587 NTSTATUS NTAPI
LsaSetInformationPolicy(LSA_HANDLE
,POLICY_INFORMATION_CLASS
, PVOID
);
588 NTSTATUS NTAPI
LsaSetLocalInformationPolicy(LSA_HANDLE
,
589 POLICY_LOCAL_INFORMATION_CLASS
,PVOID
);
590 NTSTATUS NTAPI
LsaSetTrustedDomainInformation(LSA_HANDLE
,PSID
,
591 TRUSTED_INFORMATION_CLASS
,PVOID
);
592 NTSTATUS NTAPI
LsaSetTrustedDomainInfoByName(LSA_HANDLE
,PLSA_UNICODE_STRING
,
593 TRUSTED_INFORMATION_CLASS
,PVOID
);
594 NTSTATUS NTAPI
LsaStorePrivateData(LSA_HANDLE
,PLSA_UNICODE_STRING
,
595 PLSA_UNICODE_STRING
);
596 typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE
)(PUNICODE_STRING
,
597 ULONG
,PUNICODE_STRING
);
598 typedef BOOLEAN (*PSAM_INIT_NOTIFICATION_ROUTINE
)(void);
599 typedef BOOLEAN (*PSAM_PASSWORD_FILTER_ROUTINE
)(PUNICODE_STRING
,PUNICODE_STRING
,
600 PUNICODE_STRING
,BOOLEAN
);
604 #endif /* _NTSECAPI_H */