2 * Local Security Authority interface definition
7 typedef [handle] LPWSTR PLSAPR_SERVER_NAME;
9 typedef [context_handle] PVOID LSAPR_HANDLE;
10 typedef LSAPR_HANDLE *PLSAPR_HANDLE;
12 cpp_quote("#ifndef _WINNT_H")
13 typedef struct _LUID {
19 cpp_quote("#ifndef _NTDEF_")
20 typedef long NTSTATUS;
21 typedef struct _STRING {
24 [size_is(MaximumLength), length_is(Length)] LPSTR Buffer;
29 typedef struct _LSAPR_ACL {
33 [size_is(AclSize - 4)] BYTE Dummy1[*];
34 } LSAPR_ACL, *PLSAPR_ACL;
36 cpp_quote("#ifndef _WINNT_H")
37 typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
40 typedef struct _LSAPR_SECURITY_DESCRIPTOR {
43 SECURITY_DESCRIPTOR_CONTROL Control;
47 /* FIXME: should be PLSAPR_ACL Sacl; */
49 /* FIXME: should be PLSAPR_ACL Dacl; */
50 } LSAPR_SECURITY_DESCRIPTOR, *PLSAPR_SECURITY_DESCRIPTOR;
54 typedef enum _SECURITY_IMPERSONATION_LEVEL {
55 SecurityAnonymous = 0,
56 SecurityIdentification,
57 SecurityImpersonation,
59 } SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
61 typedef BYTE SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
63 typedef struct _SECURITY_QUALITY_OF_SERVICE {
65 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
66 SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
68 } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
72 typedef struct _LSAPR_OBJECT_ATTRIBUTES {
77 PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor;
78 PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
79 } LSAPR_OBJECT_ATTRIBUTES, *PLSAPR_OBJECT_ATTRIBUTES;
81 typedef struct _LSAPR_POLICY_PRIVILEGE_DEF {
82 RPC_UNICODE_STRING Name;
84 } LSAPR_POLICY_PRIVILEGE_DEF, *PLSAPR_POLICY_PRIVILEGE_DEF;
86 typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER {
88 [size_is(Entries)] PLSAPR_POLICY_PRIVILEGE_DEF Privileges;
89 } LSAPR_PRIVILEGE_ENUM_BUFFER, *PLSAPR_PRIVILEGE_ENUM_BUFFER;
91 typedef struct _LSAPR_ACCOUNT_INFORMATION {
93 } LSAPR_ACCOUNT_INFORMATION, *PLSAPR_ACCOUNT_INFORMATION;
95 typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER {
97 [size_is(EntriesRead)] PLSAPR_ACCOUNT_INFORMATION Information;
98 } LSAPR_ACCOUNT_ENUM_BUFFER, *PLSAPR_ACCOUNT_ENUM_BUFFER;
100 cpp_quote("#ifndef _NTSECAPI_H")
101 typedef RPC_UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
104 typedef struct _LSAPR_TRUST_INFORMATION {
105 RPC_UNICODE_STRING Name;
107 } LSAPR_TRUST_INFORMATION, *PLSAPR_TRUST_INFORMATION;
109 typedef struct _LSAPR_REFERENCED_DOMAIN_LIST {
111 [size_is(Entries)] PLSAPR_TRUST_INFORMATION Domains;
113 } LSAPR_REFERENCED_DOMAIN_LIST, *PLSAPR_REFERENCED_DOMAIN_LIST;
117 typedef enum _SID_NAME_USE {
122 SidTypeWellKnownGroup,
123 SidTypeDeletedAccount,
128 } SID_NAME_USE, *PSID_NAME_USE;
132 cpp_quote("#ifndef _NTDEF_")
134 typedef struct _LSA_TRANSLATED_SID {
138 } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
142 typedef struct _LSAPR_TRANSLATED_SIDS {
144 [size_is(Entries)] PLSA_TRANSLATED_SID Sids;
145 } LSAPR_TRANSLATED_SIDS, *PLSAPR_TRANSLATED_SIDS;
147 typedef enum _LSAP_LOOKUP_LEVEL {
152 LsapLookupXForestReferral,
153 LsapLookupXForestResolve,
154 LsapLookupRODCReferralToFullDC,
155 } LSAP_LOOKUP_LEVEL, *PLSAP_LOOKUP_LEVEL;
157 typedef struct _LSAPR_SID_INFORMATION {
159 } LSAPR_SID_INFORMATION, *PLSAPR_SID_INFORMATION;
161 typedef struct _LSAPR_SID_ENUM_BUFFER {
163 [size_is(Entries)] PLSAPR_SID_INFORMATION SidInfo;
164 } LSAPR_SID_ENUM_BUFFER, *PLSAPR_SID_ENUM_BUFFER;
166 typedef struct _LSAPR_TRANSLATED_NAME {
168 RPC_UNICODE_STRING Name;
170 } LSAPR_TRANSLATED_NAME, *PLSAPR_TRANSLATED_NAME;
172 typedef struct _LSAPR_TRANSLATED_NAMES {
174 [size_is(Entries)] PLSAPR_TRANSLATED_NAME Names;
175 } LSAPR_TRANSLATED_NAMES, *PLSAPR_TRANSLATED_NAMES;
177 typedef struct _LSAPR_TRANSLATED_NAME_EX {
179 RPC_UNICODE_STRING Name;
182 } LSAPR_TRANSLATED_NAME_EX, *PLSAPR_TRANSLATED_NAME_EX;
184 typedef struct _LSAPR_TRANSLATED_NAMES_EX {
186 [size_is(Entries)] PLSAPR_TRANSLATED_NAME_EX Names;
187 } LSAPR_TRANSLATED_NAMES_EX, *PLSAPR_TRANSLATED_NAMES_EX;
189 typedef struct _LSAPR_TRANSLATED_SID_EX {
194 } LSAPR_TRANSLATED_SID_EX, *PLSAPR_TRANSLATED_SID_EX;
196 typedef struct _LSAPR_TRANSLATED_SIDS_EX {
198 [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX Sids;
199 } LSAPR_TRANSLATED_SIDS_EX, *PLSAPR_TRANSLATED_SIDS_EX;
201 typedef struct _LSAPR_TRANSLATED_SID_EX2 {
206 } LSAPR_TRANSLATED_SID_EX2, *PLSAPR_TRANSLATED_SID_EX2;
208 typedef struct _LSAPR_TRANSLATED_SIDS_EX2 {
210 [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX2 Sids;
211 } LSAPR_TRANSLATED_SIDS_EX2, *PLSAPR_TRANSLATED_SIDS_EX2;
213 typedef LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC;
215 typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR {
217 [size_is(Length)] BYTE *SecurityDescriptor;
218 } LSAPR_SR_SECURITY_DESCRIPTOR, *PLSAPR_SR_SECURITY_DESCRIPTOR;
220 cpp_quote("#ifndef _NTSECAPI_H")
221 typedef enum _POLICY_INFORMATION_CLASS {
222 PolicyAuditLogInformation = 1,
223 PolicyAuditEventsInformation,
224 PolicyPrimaryDomainInformation,
225 PolicyPdAccountInformation,
226 PolicyAccountDomainInformation,
227 PolicyLsaServerRoleInformation,
228 PolicyReplicaSourceInformation,
229 PolicyDefaultQuotaInformation,
230 PolicyModificationInformation,
231 PolicyAuditFullSetInformation,
232 PolicyAuditFullQueryInformation,
233 PolicyDnsDomainInformation,
234 PolicyDnsDomainInformationInt,
235 PolicyLocalAccountDomainInformation,
237 } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
239 typedef struct _POLICY_AUDIT_LOG_INFO {
240 DWORD AuditLogPercentFull;
241 DWORD MaximumLogSize;
242 LARGE_INTEGER AuditRetentionPeriod;
243 BYTE AuditLogFullShutdownInProgress;
244 LARGE_INTEGER TimeToShutdown;
245 DWORD NextAuditRecordId;
246 } POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO;
249 typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO {
251 [size_is(MaximumAuditEventCount)] DWORD *EventAuditingOptions;
252 DWORD MaximumAuditEventCount;
253 } LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO;
255 typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO {
256 RPC_UNICODE_STRING Name;
258 } LSAPR_POLICY_PRIMARY_DOM_INFO, *PLSAPR_POLICY_PRIMARY_DOM_INFO;
260 typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO {
261 RPC_UNICODE_STRING DomainName;
263 } LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_INFO;
265 typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO {
266 RPC_UNICODE_STRING Name;
267 } LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO;
269 cpp_quote("#ifndef _NTSECAPI_H")
270 typedef enum _POLICY_LSA_SERVER_ROLE {
271 PolicyServerRoleBackup = 2,
272 PolicyServerRolePrimary,
273 } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
275 typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
276 POLICY_LSA_SERVER_ROLE LsaServerRole;
277 } POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
280 typedef struct _POLICY_LSA_REPLICA_SRCE_INFO {
281 RPC_UNICODE_STRING ReplicaSource;
282 RPC_UNICODE_STRING ReplicaAccountName;
283 } POLICY_LSA_REPLICA_SRCE_INFO, *PPOLICY_LSA_REPLICA_SRCE_INFO;
285 cpp_quote("#ifndef _WINNT_H")
286 typedef struct _QUOTA_LIMITS {
287 INT64 PagedPoolLimit;
288 INT64 NonPagedPoolLimit;
289 INT64 MinimumWorkingSetSize;
290 INT64 MaximumWorkingSetSize;
292 LARGE_INTEGER TimeLimit;
293 } QUOTA_LIMITS, *PQUOTA_LIMITS;
296 cpp_quote("#ifndef _NTSECAPI_H")
297 typedef struct _POLICY_DEFAULT_QUOTA_INFO {
298 QUOTA_LIMITS QuotaLimits;
299 } POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO;
301 typedef struct _POLICY_MODIFICATION_INFO {
302 LARGE_INTEGER ModifiedId;
303 LARGE_INTEGER DatabaseCreationTime;
304 } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
306 typedef struct _POLICY_AUDIT_FULL_SET_INFO {
308 } POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO;
310 typedef struct _POLICY_AUDIT_FULL_QUERY_INFO {
313 } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO;
316 typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO {
317 RPC_UNICODE_STRING Name;
318 RPC_UNICODE_STRING DnsDomainName;
319 RPC_UNICODE_STRING DnsForestName;
322 } LSAPR_POLICY_DNS_DOMAIN_INFO, *PLSAPR_POLICY_DNS_DOMAIN_INFO;
325 [switch_type(POLICY_INFORMATION_CLASS)] union _LSAPR_POLICY_INFORMATION {
326 [case(PolicyAuditLogInformation)] POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo;
327 [case(PolicyAuditEventsInformation)] LSAPR_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo;
328 [case(PolicyPrimaryDomainInformation)] LSAPR_POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomInfo;
329 [case(PolicyPdAccountInformation)] LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo;
330 [case(PolicyAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo;
331 [case(PolicyLsaServerRoleInformation)] POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo;
332 [case(PolicyReplicaSourceInformation)] POLICY_LSA_REPLICA_SRCE_INFO PolicyReplicaSourceInfo;
333 [case(PolicyDefaultQuotaInformation)] POLICY_DEFAULT_QUOTA_INFO PolicyDefaultQuotaInfo;
334 [case(PolicyModificationInformation)] POLICY_MODIFICATION_INFO PolicyModificationInfo;
335 [case(PolicyAuditFullSetInformation)] POLICY_AUDIT_FULL_SET_INFO PolicyAuditFullSetInfo;
336 [case(PolicyAuditFullQueryInformation)] POLICY_AUDIT_FULL_QUERY_INFO PolicyAuditFullQueryInfo;
337 [case(PolicyDnsDomainInformation)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfo;
338 [case(PolicyDnsDomainInformationInt)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt;
339 [case(PolicyLocalAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyLocalAccountDomainInfo;
340 } LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION;
342 typedef struct _LSAPR_TRUSTED_ENUM_BUFFER {
344 [size_is(EntriesRead)] PLSAPR_TRUST_INFORMATION Information;
345 } LSAPR_TRUSTED_ENUM_BUFFER, *PLSAPR_TRUSTED_ENUM_BUFFER;
347 cpp_quote("#ifndef _NTSECAPI_H")
348 typedef enum _TRUSTED_INFORMATION_CLASS {
349 TrustedDomainNameInformation = 1,
350 TrustedControllersInformation,
351 TrustedPosixOffsetInformation,
352 TrustedPasswordInformation,
353 TrustedDomainInformationBasic,
354 TrustedDomainInformationEx,
355 TrustedDomainAuthInformation,
356 TrustedDomainFullInformation,
357 TrustedDomainAuthInformationInternal,
358 TrustedDomainFullInformationInternal,
359 TrustedDomainInformationEx2Internal,
360 TrustedDomainFullInformation2Internal,
361 TrustedDomainSupportedEncryptionTypes,
362 } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
365 typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO {
366 RPC_UNICODE_STRING Name;
367 } LSAPR_TRUSTED_DOMAIN_NAME_INFO, *PLSAPR_TRUSTED_DOMAIN_NAME_INFO;
369 typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO {
371 [size_is(Entries)] PRPC_UNICODE_STRING Names;
372 } LSAPR_TRUSTED_CONTROLLERS_INFO, *PLSAPR_TRUSTED_CONTROLLERS_INFO;
374 cpp_quote("#ifndef _NTSECAPI_H")
375 typedef struct _TRUSTED_POSIX_OFFSET_INFO {
377 } TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO;
380 typedef struct _LSAPR_CR_CIPHER_VALUE {
383 [size_is(MaximumLength), length_is(Length)] BYTE *Buffer;
384 } LSAPR_CR_CIPHER_VALUE, *PLSAPR_CR_CIPHER_VALUE;
386 typedef struct _LSAPR_TRUSTED_PASSWORD_INFO {
387 PLSAPR_CR_CIPHER_VALUE Password;
388 PLSAPR_CR_CIPHER_VALUE OldPassword;
389 } LSAPR_TRUSTED_PASSWORD_INFO, *PLSAPR_TRUSTED_PASSWORD_INFO;
391 typedef struct _LSAPR_USER_RIGHT_SET {
393 [size_is(Entries)] PRPC_UNICODE_STRING UserRights;
394 } LSAPR_USER_RIGHT_SET, *PLSAPR_USER_RIGHT_SET;
396 cpp_quote("#ifndef _NTSECAPI_H")
397 typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
398 PolicyDomainQualityOfServiceInformation = 1,
399 PolicyDomainEfsInformation = 2,
400 PolicyDomainKerberosTicketInformation = 3,
401 } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
403 typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO {
404 DWORD QualityOfService;
405 } POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
408 typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO {
410 [size_is(InfoLength)] BYTE *EfsBlob;
411 } LSAPR_POLICY_DOMAIN_EFS_INFO, *PLSAPR_POLICY_DOMAIN_EFS_INFO;
413 cpp_quote("#ifndef _NTSECAPI_H")
414 typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO {
415 DWORD AuthenticationOptions;
416 LARGE_INTEGER MaxServiceTicketAge;
417 LARGE_INTEGER MaxTicketAge;
418 LARGE_INTEGER MaxRenewAge;
419 LARGE_INTEGER MaxClockSkew;
420 LARGE_INTEGER Reserved;
421 } POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
425 [switch_type(POLICY_DOMAIN_INFORMATION_CLASS)] union _LSAPR_POLICY_DOMAIN_INFORMATION {
426 [case(PolicyDomainQualityOfServiceInformation)] POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO PolicyDomainQualityOfServiceInfo;
427 [case(PolicyDomainEfsInformation)] LSAPR_POLICY_DOMAIN_EFS_INFO PolicyDomainEfsInfo;
428 [case(PolicyDomainKerberosTicketInformation)] POLICY_DOMAIN_KERBEROS_TICKET_INFO PolicyDomainKerbTicketInfo;
429 } LSAPR_POLICY_DOMAIN_INFORMATION, *PLSAPR_POLICY_DOMAIN_INFORMATION;
431 typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX {
432 RPC_UNICODE_STRING Name;
433 RPC_UNICODE_STRING FlatName;
435 DWORD TrustDirection;
437 DWORD TrustAttributes;
438 } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX;
440 typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX {
442 [size_is(EntriesRead)] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer;
443 } LSAPR_TRUSTED_ENUM_BUFFER_EX, *PLSAPR_TRUSTED_ENUM_BUFFER_EX;
445 typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 {
446 RPC_UNICODE_STRING Name;
447 RPC_UNICODE_STRING FlatName;
449 DWORD TrustDirection;
451 DWORD TrustAttributes;
452 DWORD ForestTrustLength;
453 [size_is(ForestTrustLength)] BYTE *ForestTrustInfo;
454 } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2;
456 typedef struct _LSAPR_AUTH_INFORMATION {
457 LARGE_INTEGER LastUpdateTime;
459 DWORD AuthInfoLength;
460 [size_is(AuthInfoLength)] BYTE *AuthInfo;
461 } LSAPR_AUTH_INFORMATION, *PLSAPR_AUTH_INFORMATION;
463 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION {
464 DWORD IncomingAuthInfos;
465 PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation;
466 PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
467 DWORD OutgoingAuthInfos;
468 PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation;
469 PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
470 } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION;
472 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB {
474 [size_is(AuthSize)] BYTE *AuthBlob;
475 } LSAPR_TRUSTED_DOMAIN_AUTH_BLOB, *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB;
477 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL {
478 LSAPR_TRUSTED_DOMAIN_AUTH_BLOB AuthBlob;
479 } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL;
481 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION {
482 LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
483 TRUSTED_POSIX_OFFSET_INFO PosixOffset;
484 LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
485 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION;
487 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL {
488 LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
489 TRUSTED_POSIX_OFFSET_INFO PosixOffset;
490 LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthInformation;
491 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL;
493 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 {
494 LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 Information;
495 TRUSTED_POSIX_OFFSET_INFO PosixOffset;
496 LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
497 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2;
499 typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES {
500 DWORD SupportedEncryptionTypes;
501 } TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES, *PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES;
504 [switch_type(TRUSTED_INFORMATION_CLASS)] union _LSAPR_TRUSTED_DOMAIN_INFO {
505 [case(TrustedDomainNameInformation)] LSAPR_TRUSTED_DOMAIN_NAME_INFO TrustedDomainNameInfo;
506 [case(TrustedControllersInformation)] LSAPR_TRUSTED_CONTROLLERS_INFO TrustedControllersInfo;
507 [case(TrustedPosixOffsetInformation)] TRUSTED_POSIX_OFFSET_INFO TrustedPosixOffsetInfo;
508 [case(TrustedPasswordInformation)] LSAPR_TRUSTED_PASSWORD_INFO TrustedPasswordInfo;
509 [case(TrustedDomainInformationBasic)] LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC TrustedDomainInfoBasic;
510 [case(TrustedDomainInformationEx)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInfoEx;
511 [case(TrustedDomainAuthInformation)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION TrustedAuthInfo;
512 [case(TrustedDomainFullInformation)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION TrustedFullInfo;
513 [case(TrustedDomainAuthInformationInternal)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL TrustedAuthInfoInternal;
514 [case(TrustedDomainFullInformationInternal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL TrustedFullInfoInternal;
515 [case(TrustedDomainInformationEx2Internal)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 TrustedDomainInfoEx2;
516 [case(TrustedDomainFullInformation2Internal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 TrustedFullInfo2;
517 [case(TrustedDomainSupportedEncryptionTypes)] TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES TrustedDomainSETs;
518 } LSAPR_TRUSTED_DOMAIN_INFO, *PLSAPR_TRUSTED_DOMAIN_INFO;
520 typedef struct _LSAPR_LUID_AND_ATTRIBUTES {
523 } LSAPR_LUID_AND_ATTRIBUTES, *PLSAPR_LUID_AND_ATTRIBUTES;
525 typedef struct _LSAPR_PRIVILEGE_SET {
526 DWORD PrivilegeCount;
528 [size_is(PrivilegeCount)] LSAPR_LUID_AND_ATTRIBUTES Privilege[*];
529 } LSAPR_PRIVILEGE_SET, *PLSAPR_PRIVILEGE_SET;
531 cpp_quote("#ifndef _NTSECAPI_H")
532 typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
533 ForestTrustTopLevelName = 0,
534 ForestTrustTopLevelNameEx = 1,
535 ForestTrustDomainInfo = 2,
536 } LSA_FOREST_TRUST_RECORD_TYPE;
538 typedef struct _LSA_FOREST_TRUST_BINARY_DATA {
540 [size_is(Length)] BYTE *Buffer;
541 } LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
543 typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO {
545 LSA_UNICODE_STRING DnsName;
546 LSA_UNICODE_STRING NetbiosName;
547 } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
549 typedef struct _LSA_FOREST_TRUST_RECORD {
551 LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
553 [switch_type(LSA_FOREST_TRUST_RECORD_TYPE), switch_is(ForestTrustType)] union {
554 [case(ForestTrustTopLevelName, ForestTrustTopLevelNameEx)] LSA_UNICODE_STRING TopLevelName;
555 [case(ForestTrustDomainInfo)] LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
556 [default] LSA_FOREST_TRUST_BINARY_DATA Data;
558 } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
560 typedef struct _LSA_FOREST_TRUST_INFORMATION {
562 [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD *Entries;
563 } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
565 typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
569 } LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
571 typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD {
573 LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type;
575 LSA_UNICODE_STRING Name;
576 } LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD;
578 typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION {
580 [size_is(RecordCount)] PLSA_FOREST_TRUST_COLLISION_RECORD *Entries;
581 } LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION;
585 uuid(12345778-1234-abcd-ef00-0123456789ab),
587 pointer_default(unique)
595 NTSTATUS __stdcall LsarClose(
596 [in, out] LSAPR_HANDLE *ObjectHandle);
599 NTSTATUS __stdcall LsarDelete(
600 [in] LSAPR_HANDLE ObjectHandle);
603 NTSTATUS __stdcall LsarEnumeratePrivileges(
604 [in] LSAPR_HANDLE PolicyHandle,
605 [in, out] DWORD *EnumerationContext,
606 [out] PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
607 [in] DWORD PreferedMaximumLength);
610 NTSTATUS __stdcall LsarQuerySecurityObject(
611 [in] LSAPR_HANDLE ObjectHandle,
612 [in] SECURITY_INFORMATION SecurityInformation,
613 [out] PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor);
616 NTSTATUS __stdcall LsarSetSecurityObject(
617 [in] LSAPR_HANDLE ObjectHandle,
618 [in] SECURITY_INFORMATION SecurityInformation,
619 [in] PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor);
622 NTSTATUS __stdcall LsarChangePassword(
623 [in] PRPC_UNICODE_STRING String1,
624 [in] PRPC_UNICODE_STRING String2,
625 [in] PRPC_UNICODE_STRING String3,
626 [in] PRPC_UNICODE_STRING String4,
627 [in] PRPC_UNICODE_STRING String5);
630 NTSTATUS __stdcall LsarOpenPolicy(
631 [in, unique] PLSAPR_SERVER_NAME SystemName,
632 [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
633 [in] ACCESS_MASK DesiredAccess,
634 [out] LSAPR_HANDLE *PolicyHandle);
637 NTSTATUS __stdcall LsarQueryInformationPolicy(
638 [in] LSAPR_HANDLE PolicyHandle,
639 [in] POLICY_INFORMATION_CLASS InformationClass,
640 [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation);
643 NTSTATUS __stdcall LsarSetInformationPolicy(
644 [in] LSAPR_HANDLE PolicyHandle,
645 [in] POLICY_INFORMATION_CLASS InformationClass,
646 [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation);
649 NTSTATUS __stdcall LsarClearAuditLog(
650 [in] LSAPR_HANDLE ObjectHandle);
653 NTSTATUS __stdcall LsarCreateAccount(
654 [in] LSAPR_HANDLE PolicyHandle,
655 [in] PRPC_SID AccountSid,
656 [in] ACCESS_MASK DesiredAccess,
657 [out] LSAPR_HANDLE *AccountHandle);
660 NTSTATUS __stdcall LsarEnumerateAccounts(
661 [in] LSAPR_HANDLE PolicyHandle,
662 [in, out] DWORD *EnumerationContext,
663 [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
664 [in] DWORD PreferedMaximumLength);
667 NTSTATUS __stdcall LsarCreateTrustedDomain(
668 [in] LSAPR_HANDLE PolicyHandle,
669 [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
670 [in] ACCESS_MASK DesiredAccess,
671 [out] LSAPR_HANDLE *TrustedDomainHandle);
674 NTSTATUS __stdcall LsarEnumerateTrustedDomains(
675 [in] LSAPR_HANDLE PolicyHandle,
676 [in, out] DWORD *EnumerationContext,
677 [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
678 [in] DWORD PreferedMaximumLength);
681 NTSTATUS __stdcall LsarLookupNames(
682 [in] LSAPR_HANDLE PolicyHandle,
684 [in, size_is(Count)] PRPC_UNICODE_STRING Names,
685 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
686 [in, out] PLSAPR_TRANSLATED_SIDS TranslatedSids,
687 [in] LSAP_LOOKUP_LEVEL LookupLevel,
688 [in, out] DWORD *MappedCount);
691 NTSTATUS __stdcall LsarLookupSids(
692 [in] LSAPR_HANDLE PolicyHandle,
693 [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
694 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
695 [in, out] PLSAPR_TRANSLATED_NAMES TranslatedNames,
696 [in] LSAP_LOOKUP_LEVEL LookupLevel,
697 [in, out] DWORD *MappedCount);
700 NTSTATUS __stdcall LsarCreateSecret(
701 [in] LSAPR_HANDLE PolicyHandle,
702 [in] PRPC_UNICODE_STRING SecretName,
703 [in] ACCESS_MASK DesiredAccess,
704 [out] LSAPR_HANDLE *SecretHandle);
707 NTSTATUS __stdcall LsarOpenAccount(
708 [in] LSAPR_HANDLE PolicyHandle,
709 [in] PRPC_SID AccountSid,
710 [in] ACCESS_MASK DesiredAccess,
711 [out] LSAPR_HANDLE *AccountHandle);
714 NTSTATUS __stdcall LsarEnumeratePrivilegesAccount(
715 [in] LSAPR_HANDLE AccountHandle,
716 [out] PLSAPR_PRIVILEGE_SET *Privileges);
719 NTSTATUS __stdcall LsarAddPrivilegesToAccount(
720 [in] LSAPR_HANDLE AccountHandle,
721 [in] PLSAPR_PRIVILEGE_SET Privileges);
724 NTSTATUS __stdcall LsarRemovePrivilegesFromAccount(
725 [in] LSAPR_HANDLE AccountHandle,
726 [in] BOOL AllPrivileges,
727 [in, unique] PLSAPR_PRIVILEGE_SET Privileges);
730 NTSTATUS __stdcall LsarGetQuotasForAccount(
731 [in] LSAPR_HANDLE AccountHandle,
732 [out] PQUOTA_LIMITS QuotaLimits);
735 NTSTATUS __stdcall LsarSetQuotasForAccount(
736 [in] LSAPR_HANDLE AccountHandle,
737 [in] PQUOTA_LIMITS QuotaLimits);
740 NTSTATUS __stdcall LsarGetSystemAccessAccount(
741 [in] LSAPR_HANDLE AccountHandle,
742 [out] ACCESS_MASK *SystemAccess);
745 NTSTATUS __stdcall LsarSetSystemAccessAccount(
746 [in] LSAPR_HANDLE AccountHandle,
747 [in] ACCESS_MASK SystemAccess);
750 NTSTATUS __stdcall LsarOpenTrustedDomain(
751 [in] LSAPR_HANDLE PolicyHandle,
752 [in] PRPC_SID TrustedDomainSid,
753 [in] ACCESS_MASK DesiredAccess,
754 [out] LSAPR_HANDLE *TrustedDomainHandle);
757 NTSTATUS __stdcall LsarQueryInfoTrustedDomain(
758 [in] LSAPR_HANDLE TrustedDomainHandle,
759 [in] TRUSTED_INFORMATION_CLASS InformationClass,
760 [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
763 NTSTATUS __stdcall LsarSetInformationTrustedDomain(
764 [in] LSAPR_HANDLE TrustedDomainHandle,
765 [in] TRUSTED_INFORMATION_CLASS InformationClass,
766 [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
769 NTSTATUS __stdcall LsarOpenSecret(
770 [in] LSAPR_HANDLE PolicyHandle,
771 [in] PRPC_UNICODE_STRING SecretName,
772 [in] ACCESS_MASK DesiredAccess,
773 [out] LSAPR_HANDLE *SecretHandle);
776 NTSTATUS __stdcall LsarSetSecret(
777 [in] LSAPR_HANDLE *SecretHandle,
778 [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
779 [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedOldValue);
782 NTSTATUS __stdcall LsarQuerySecret(
783 [in] LSAPR_HANDLE SecretHandle,
784 [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
785 [in, out, unique] PLARGE_INTEGER CurrentValueSetTime,
786 [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
787 [in, out, unique] PLARGE_INTEGER OldValueSetTime);
790 NTSTATUS __stdcall LsarLookupPrivilegeValue(
791 [in] LSAPR_HANDLE PolicyHandle,
792 [in] PRPC_UNICODE_STRING Name,
796 NTSTATUS __stdcall LsarLookupPrivilegeName(
797 [in] LSAPR_HANDLE PolicyHandle,
799 [out] PRPC_UNICODE_STRING *Name);
802 NTSTATUS __stdcall LsarLookupPrivilegeDisplayName(
803 [in] LSAPR_HANDLE PolicyHandle,
804 [in] PRPC_UNICODE_STRING Name,
805 [in] USHORT ClientLanguage,
806 [in] USHORT ClientSystemDefaultLanguage,
807 [out] PRPC_UNICODE_STRING *DisplayName,
808 [out] USHORT *LanguageReturned);
811 NTSTATUS __stdcall LsarDeleteObject(
812 [in, out] LSAPR_HANDLE *ObjectHandle);
814 cpp_quote("#if _WIN32_WINNT >= 0x0351")
817 NTSTATUS __stdcall LsarEnumerateAccountsWithUserRight(
818 [in] LSAPR_HANDLE PolicyHandle,
819 [in, unique] PRPC_UNICODE_STRING UserRight,
820 [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer);
823 NTSTATUS __stdcall LsarEnmuerateAccountRights(
824 [in] LSAPR_HANDLE PolicyHandle,
825 [in] PRPC_SID AccountSid,
826 [out] PLSAPR_USER_RIGHT_SET UserRights);
829 NTSTATUS __stdcall LsarAddAccountRights(
830 [in] LSAPR_HANDLE PolicyHandle,
831 [in] PRPC_SID AccountSid,
832 [in] PLSAPR_USER_RIGHT_SET UserRights);
835 NTSTATUS __stdcall LsarRemoveAccountRights(
836 [in] LSAPR_HANDLE PolicyHandle,
837 [in] PRPC_SID AccountSid,
839 [in] PLSAPR_USER_RIGHT_SET UserRights);
842 NTSTATUS __stdcall LsarQueryTrustedDomainInfo(
843 [in] LSAPR_HANDLE PolicyHandle,
844 [in] PRPC_SID TrustedDomainSid,
845 [in] TRUSTED_INFORMATION_CLASS InformationClass,
846 [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
849 NTSTATUS __stdcall LsarSetTrustedDomainInfo(
850 [in] LSAPR_HANDLE PolicyHandle,
851 [in] PRPC_SID TrustedDomainSid,
852 [in] TRUSTED_INFORMATION_CLASS InformationClass,
853 [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
856 NTSTATUS __stdcall LsarDeleteTrustedDomain(
857 [in] LSAPR_HANDLE PolicyHandle,
858 [in] PRPC_SID TrustedDomainSid);
861 NTSTATUS __stdcall LsarStorePrivateData(
862 [in] LSAPR_HANDLE PolicyHandle,
863 [in] PRPC_UNICODE_STRING KeyName,
864 [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedData);
867 NTSTATUS __stdcall LsarRetrievePrivateData(
868 [in] LSAPR_HANDLE PolicyHandle,
869 [in] PRPC_UNICODE_STRING KeyName,
870 [in, out] PLSAPR_CR_CIPHER_VALUE *EncryptedData);
873 NTSTATUS __stdcall LsarOpenPolicy2(
874 [in, unique, string] PLSAPR_SERVER_NAME SystemName,
875 [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
876 [in] ACCESS_MASK DesiredAccess,
877 [out] LSAPR_HANDLE *PolicyHandle);
880 NTSTATUS __stdcall LsarGetUserName(
881 [in, unique, string] PLSAPR_SERVER_NAME SystemName,
882 [in, out] PRPC_UNICODE_STRING *UserName,
883 [in, out, unique] PRPC_UNICODE_STRING *DomainName);
885 cpp_quote("#if _WIN32_WINNT >= 0x0500")
888 NTSTATUS __stdcall LsarQueryInformationPolicy2(
889 [in] LSAPR_HANDLE PolicyHandle,
890 [in] POLICY_INFORMATION_CLASS InformationClass,
891 [out] unsigned long *PolicyInformation);
892 /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
895 NTSTATUS __stdcall LsarSetInformationPolicy2(
896 [in] LSAPR_HANDLE PolicyHandle,
897 [in] POLICY_INFORMATION_CLASS InformationClass,
898 [in] unsigned long PolicyInformation);
899 /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
902 NTSTATUS __stdcall LsarQueryTrustedDomainInfoByName(
903 [in] LSAPR_HANDLE PolicyHandle,
904 [in] PRPC_UNICODE_STRING TrustedDomainName,
905 [in] POLICY_INFORMATION_CLASS InformationClass,
906 [out] unsigned long *PolicyInformation);
907 /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
910 NTSTATUS __stdcall LsarSetTrustedDomainInfoByName(
911 [in] LSAPR_HANDLE PolicyHandle,
912 [in] PRPC_UNICODE_STRING TrustedDomainName,
913 [in] POLICY_INFORMATION_CLASS InformationClass,
914 [in] unsigned long PolicyInformation);
915 /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
918 NTSTATUS __stdcall LsarEnumerateTrustedDomainsEx(
919 [in] LSAPR_HANDLE PolicyHandle,
920 [in, out] DWORD *EnumerationContext,
921 [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
922 [in] DWORD PreferedMaximumLength);
925 NTSTATUS __stdcall LsarCreateTrustedDomainEx(
926 [in] LSAPR_HANDLE PolicyHandle,
927 [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
928 [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
929 [in] ACCESS_MASK DesiredAccess,
930 [out] LSAPR_HANDLE *TrustedDomainHandle);
933 NTSTATUS __stdcall LsarSetPolicyReplicationHandle(
934 [in, out] PLSAPR_HANDLE PolicyHandle);
937 NTSTATUS __stdcall LsarQueryDomainInformationPolicy(
938 [in] LSAPR_HANDLE PolicyHandle,
939 [in] POLICY_INFORMATION_CLASS InformationClass,
940 [out] unsigned long *PolicyInformation);
941 /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
944 NTSTATUS __stdcall LsarSetDomainInformationPolicy(
945 [in] LSAPR_HANDLE PolicyHandle,
946 [in] POLICY_INFORMATION_CLASS InformationClass,
947 [in] unsigned long PolicyInformation);
948 /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
951 NTSTATUS __stdcall LsarOpenTrustedDomainByName(
952 [in] LSAPR_HANDLE PolicyHandle,
953 [in] PRPC_UNICODE_STRING TrustedDomainName,
954 [in] ACCESS_MASK DesiredAccess,
955 [out] LSAPR_HANDLE *TrustedDomainHandle);
958 NTSTATUS __stdcall LsarTestCall(
959 [in] handle_t hBinding); /* FIXME */
962 NTSTATUS __stdcall LsarLookupSids2(
963 [in] LSAPR_HANDLE PolicyHandle,
964 [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
965 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
966 [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
967 [in] LSAP_LOOKUP_LEVEL LookupLevel,
968 [in, out] DWORD *MappedCount,
969 [in] DWORD LookupOptions,
970 [in] DWORD ClientRevision);
973 NTSTATUS __stdcall LsarLookupNames2(
974 [in] LSAPR_HANDLE PolicyHandle,
976 [in, size_is(Count)] PRPC_UNICODE_STRING Names,
977 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
978 [in, out] PLSAPR_TRANSLATED_SIDS_EX TranslatedSids,
979 [in] LSAP_LOOKUP_LEVEL LookupLevel,
980 [in, out] DWORD *MappedCount,
981 [in] DWORD LookupOptions,
982 [in] DWORD ClientRevision);
985 NTSTATUS __stdcall LsarCreateTrustedDomainEx2(
986 [in] LSAPR_HANDLE PolicyHandle,
987 [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
988 [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation,
989 [in] ACCESS_MASK DesiredAccess,
990 [out] LSAPR_HANDLE *TrustedDomainHandle);
992 cpp_quote("#if _WIN32_WINNT >= 0x0501")
995 NTSTATUS __stdcall CredrWrite(
996 [in] handle_t hBinding); /* FIXME */
999 NTSTATUS __stdcall CredrRead(
1000 [in] handle_t hBinding); /* FIXME */
1003 NTSTATUS __stdcall CredrEnumerate(
1004 [in] handle_t hBinding); /* FIXME */
1007 NTSTATUS __stdcall CredrWriteDomainCredentials(
1008 [in] handle_t hBinding); /* FIXME */
1011 NTSTATUS __stdcall CredrReadDomainCredentials(
1012 [in] handle_t hBinding); /* FIXME */
1015 NTSTATUS __stdcall CredrDelete(
1016 [in] handle_t hBinding); /* FIXME */
1019 NTSTATUS __stdcall CredrGetTargetInfo(
1020 [in] handle_t hBinding); /* FIXME */
1023 NTSTATUS __stdcall CredrProfileLoaded(
1024 [in] handle_t hBinding); /* FIXME */
1027 NTSTATUS __stdcall LsarLookupNames3(
1028 [in] LSAPR_HANDLE PolicyHandle,
1030 [in, size_is(Count)] PRPC_UNICODE_STRING Names,
1031 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1032 [in, out] PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
1033 [in] LSAP_LOOKUP_LEVEL LookupLevel,
1034 [in, out] DWORD *MappedCount,
1035 [in] DWORD LookupOptions,
1036 [in] DWORD ClientRevision);
1039 NTSTATUS __stdcall CredrGetSessionTypes(
1040 [in] handle_t hBinding); /* FIXME */
1043 NTSTATUS __stdcall LsarRegisterAuditEvent(
1044 [in] handle_t hBinding); /* FIXME */
1047 NTSTATUS __stdcall LsarGenAuditEvent(
1048 [in] handle_t hBinding); /* FIXME */
1051 NTSTATUS __stdcall LsarUnregisterAuditEvent(
1052 [in] handle_t hBinding); /* FIXME */
1055 NTSTATUS __stdcall LsarQueryForestTrustInformation(
1056 [in] LSAPR_HANDLE PolicyHandle,
1057 [in] PLSA_UNICODE_STRING TrustedDomainName,
1058 [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1059 [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
1062 NTSTATUS __stdcall LsarSetForestTrustInformation(
1063 [in] LSAPR_HANDLE PolicyHandle,
1064 [in] PLSA_UNICODE_STRING TrustedDomainName,
1065 [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1066 [in] PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
1067 [in] BOOL CheckOnly,
1068 [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo);
1071 NTSTATUS __stdcall CredrRename(
1072 [in] handle_t hBinding); /* FIXME */
1075 NTSTATUS __stdcall LsarLookupSids3(
1076 [in] LSAPR_HANDLE PolicyHandle,
1077 [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
1078 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1079 [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
1080 [in] LSAP_LOOKUP_LEVEL LookupLevel,
1081 [in, out] DWORD *MappedCount,
1082 [in] DWORD LookupOptions,
1083 [in] DWORD ClientRevision);
1086 NTSTATUS __stdcall LsarLookupNames4(
1087 [in] LSAPR_HANDLE PolicyHandle,
1089 [in, size_is(Count)] PRPC_UNICODE_STRING Names,
1090 [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1091 [in, out] PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
1092 [in] LSAP_LOOKUP_LEVEL LookupLevel,
1093 [in, out] DWORD *MappedCount,
1094 [in] DWORD LookupOptions,
1095 [in] DWORD ClientRevision);
1098 NTSTATUS __stdcall LsarOpenPolicySce(
1099 [in] handle_t hBinding); /* FIXME */
1102 NTSTATUS __stdcall LsarAdtRegisterSecurityEventSource(
1103 [in] handle_t hBinding); /* FIXME */
1106 NTSTATUS __stdcall LsarAdtUnregisterSecurityEventSource(
1107 [in] handle_t hBinding); /* FIXME */
1110 NTSTATUS __stdcall LsarAdtReportSecurityEvent(
1111 [in] handle_t hBinding); /* FIXME */
1113 cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
1114 cpp_quote("#endif /* _WIN32_WINNT >= 0x0500 */")
1115 cpp_quote("#endif /* _WIN32_WINNT >= 0x0351 */")