/* * Local Security Authority interface definition */ #include typedef [handle] LPWSTR PLSAPR_SERVER_NAME; typedef [context_handle] PVOID LSAPR_HANDLE; typedef LSAPR_HANDLE *PLSAPR_HANDLE; cpp_quote("#ifndef _WINNT_H") typedef struct _LUID { DWORD LowPart; LONG HighPart; } LUID, *PLUID; cpp_quote("#endif") cpp_quote("#ifndef _NTDEF_") typedef long NTSTATUS; typedef struct _STRING { WORD Length; WORD MaximumLength; [size_is(MaximumLength), length_is(Length)] LPSTR Buffer; } STRING, *PSTRING; cpp_quote("#endif") typedef struct _LSAPR_ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; [size_is(AclSize - 4)] BYTE Dummy1[*]; } LSAPR_ACL, *PLSAPR_ACL; cpp_quote("#ifndef _WINNT_H") typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; cpp_quote("#endif") typedef struct _LSAPR_SECURITY_DESCRIPTOR { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PRPC_SID Owner; PRPC_SID Group; LSAPR_ACL *Sacl; /* FIXME: should be PLSAPR_ACL Sacl; */ LSAPR_ACL *Dacl; /* FIXME: should be PLSAPR_ACL Dacl; */ } LSAPR_SECURITY_DESCRIPTOR, *PLSAPR_SECURITY_DESCRIPTOR; cpp_quote("#if 0") typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous = 0, SecurityIdentification, SecurityImpersonation, SecurityDelegation, } SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL; typedef BYTE SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE; typedef struct _SECURITY_QUALITY_OF_SERVICE { DWORD Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; BYTE EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE; cpp_quote("#endif") typedef struct _LSAPR_OBJECT_ATTRIBUTES { DWORD Length; BYTE *RootDirectory; PSTRING ObjectName; DWORD Attributes; PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor; PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; } LSAPR_OBJECT_ATTRIBUTES, *PLSAPR_OBJECT_ATTRIBUTES; typedef struct _LSAPR_POLICY_PRIVILEGE_DEF { RPC_UNICODE_STRING Name; LUID LocalValue; } LSAPR_POLICY_PRIVILEGE_DEF, *PLSAPR_POLICY_PRIVILEGE_DEF; typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER { DWORD Entries; [size_is(Entries)] PLSAPR_POLICY_PRIVILEGE_DEF Privileges; } LSAPR_PRIVILEGE_ENUM_BUFFER, *PLSAPR_PRIVILEGE_ENUM_BUFFER; typedef struct _LSAPR_ACCOUNT_INFORMATION { PRPC_SID Sid; } LSAPR_ACCOUNT_INFORMATION, *PLSAPR_ACCOUNT_INFORMATION; typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER { DWORD EntriesRead; [size_is(EntriesRead)] PLSAPR_ACCOUNT_INFORMATION Information; } LSAPR_ACCOUNT_ENUM_BUFFER, *PLSAPR_ACCOUNT_ENUM_BUFFER; cpp_quote("#ifndef _NTSECAPI_H") typedef RPC_UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; cpp_quote("#endif") typedef struct _LSAPR_TRUST_INFORMATION { RPC_UNICODE_STRING Name; PRPC_SID Sid; } LSAPR_TRUST_INFORMATION, *PLSAPR_TRUST_INFORMATION; typedef struct _LSAPR_REFERENCED_DOMAIN_LIST { DWORD Entries; [size_is(Entries)] PLSAPR_TRUST_INFORMATION Domains; DWORD MaxEntries; } LSAPR_REFERENCED_DOMAIN_LIST, *PLSAPR_REFERENCED_DOMAIN_LIST; cpp_quote("#if 0") typedef enum _SID_NAME_USE { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown, SidTypeComputer, SidTypeLabel, } SID_NAME_USE, *PSID_NAME_USE; cpp_quote("#endif") cpp_quote("#ifndef _NTDEF_") typedef struct _LSA_TRANSLATED_SID { SID_NAME_USE Use; DWORD RelativeId; LONG DomainIndex; } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID; cpp_quote("#endif") typedef struct _LSAPR_TRANSLATED_SIDS { DWORD Entries; [size_is(Entries)] PLSA_TRANSLATED_SID Sids; } LSAPR_TRANSLATED_SIDS, *PLSAPR_TRANSLATED_SIDS; typedef enum _LSAP_LOOKUP_LEVEL { LsapLookupWksta = 1, LsapLookupPDC, LsapLookupTDL, LsapLookupGC, LsapLookupXForestReferral, LsapLookupXForestResolve, LsapLookupRODCReferralToFullDC, } LSAP_LOOKUP_LEVEL, *PLSAP_LOOKUP_LEVEL; typedef struct _LSAPR_SID_INFORMATION { PRPC_SID Sid; } LSAPR_SID_INFORMATION, *PLSAPR_SID_INFORMATION; typedef struct _LSAPR_SID_ENUM_BUFFER { DWORD Entries; [size_is(Entries)] PLSAPR_SID_INFORMATION SidInfo; } LSAPR_SID_ENUM_BUFFER, *PLSAPR_SID_ENUM_BUFFER; typedef struct _LSAPR_TRANSLATED_NAME { SID_NAME_USE Use; RPC_UNICODE_STRING Name; LONG DomainIndex; } LSAPR_TRANSLATED_NAME, *PLSAPR_TRANSLATED_NAME; typedef struct _LSAPR_TRANSLATED_NAMES { DWORD Entries; [size_is(Entries)] PLSAPR_TRANSLATED_NAME Names; } LSAPR_TRANSLATED_NAMES, *PLSAPR_TRANSLATED_NAMES; typedef struct _LSAPR_TRANSLATED_NAME_EX { SID_NAME_USE Use; RPC_UNICODE_STRING Name; LONG DomainIndex; DWORD Flags; } LSAPR_TRANSLATED_NAME_EX, *PLSAPR_TRANSLATED_NAME_EX; typedef struct _LSAPR_TRANSLATED_NAMES_EX { DWORD Entries; [size_is(Entries)] PLSAPR_TRANSLATED_NAME_EX Names; } LSAPR_TRANSLATED_NAMES_EX, *PLSAPR_TRANSLATED_NAMES_EX; typedef struct _LSAPR_TRANSLATED_SID_EX { SID_NAME_USE Use; DWORD RelativeId; LONG DomainIndex; DWORD Flags; } LSAPR_TRANSLATED_SID_EX, *PLSAPR_TRANSLATED_SID_EX; typedef struct _LSAPR_TRANSLATED_SIDS_EX { DWORD Entries; [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX Sids; } LSAPR_TRANSLATED_SIDS_EX, *PLSAPR_TRANSLATED_SIDS_EX; typedef struct _LSAPR_TRANSLATED_SID_EX2 { SID_NAME_USE Use; PRPC_SID Sid; LONG DomainIndex; DWORD Flags; } LSAPR_TRANSLATED_SID_EX2, *PLSAPR_TRANSLATED_SID_EX2; typedef struct _LSAPR_TRANSLATED_SIDS_EX2 { DWORD Entries; [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX2 Sids; } LSAPR_TRANSLATED_SIDS_EX2, *PLSAPR_TRANSLATED_SIDS_EX2; typedef LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC; typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR { DWORD Length; [size_is(Length)] BYTE *SecurityDescriptor; } LSAPR_SR_SECURITY_DESCRIPTOR, *PLSAPR_SR_SECURITY_DESCRIPTOR; cpp_quote("#ifndef _NTSECAPI_H") typedef enum _POLICY_INFORMATION_CLASS { PolicyAuditLogInformation = 1, PolicyAuditEventsInformation, PolicyPrimaryDomainInformation, PolicyPdAccountInformation, PolicyAccountDomainInformation, PolicyLsaServerRoleInformation, PolicyReplicaSourceInformation, PolicyDefaultQuotaInformation, PolicyModificationInformation, PolicyAuditFullSetInformation, PolicyAuditFullQueryInformation, PolicyDnsDomainInformation, PolicyDnsDomainInformationInt, PolicyLocalAccountDomainInformation, PolicyLastEntry, } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; typedef struct _POLICY_AUDIT_LOG_INFO { DWORD AuditLogPercentFull; DWORD MaximumLogSize; LARGE_INTEGER AuditRetentionPeriod; BYTE AuditLogFullShutdownInProgress; LARGE_INTEGER TimeToShutdown; DWORD NextAuditRecordId; } POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO; cpp_quote("#endif") typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO { BYTE AuditingMode; [size_is(MaximumAuditEventCount)] DWORD *EventAuditingOptions; DWORD MaximumAuditEventCount; } LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO; typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO { RPC_UNICODE_STRING Name; PRPC_SID Sid; } LSAPR_POLICY_PRIMARY_DOM_INFO, *PLSAPR_POLICY_PRIMARY_DOM_INFO; typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO { RPC_UNICODE_STRING DomainName; PRPC_SID Sid; } LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_INFO; typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO { RPC_UNICODE_STRING Name; } LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO; cpp_quote("#ifndef _NTSECAPI_H") typedef enum _POLICY_LSA_SERVER_ROLE { PolicyServerRoleBackup = 2, PolicyServerRolePrimary, } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE; typedef struct _POLICY_LSA_SERVER_ROLE_INFO { POLICY_LSA_SERVER_ROLE LsaServerRole; } POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO; cpp_quote("#endif") typedef struct _POLICY_LSA_REPLICA_SRCE_INFO { RPC_UNICODE_STRING ReplicaSource; RPC_UNICODE_STRING ReplicaAccountName; } POLICY_LSA_REPLICA_SRCE_INFO, *PPOLICY_LSA_REPLICA_SRCE_INFO; cpp_quote("#ifndef _WINNT_H") typedef struct _QUOTA_LIMITS { INT64 PagedPoolLimit; INT64 NonPagedPoolLimit; INT64 MinimumWorkingSetSize; INT64 MaximumWorkingSetSize; INT64 PagefileLimit; LARGE_INTEGER TimeLimit; } QUOTA_LIMITS, *PQUOTA_LIMITS; cpp_quote("#endif") cpp_quote("#ifndef _NTSECAPI_H") typedef struct _POLICY_DEFAULT_QUOTA_INFO { QUOTA_LIMITS QuotaLimits; } POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO; typedef struct _POLICY_MODIFICATION_INFO { LARGE_INTEGER ModifiedId; LARGE_INTEGER DatabaseCreationTime; } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO; typedef struct _POLICY_AUDIT_FULL_SET_INFO { BOOL ShutDownOnFull; } POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO; typedef struct _POLICY_AUDIT_FULL_QUERY_INFO { BOOL ShutDownOnFull; BOOL LogIsFull; } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO; cpp_quote("#endif") typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO { RPC_UNICODE_STRING Name; RPC_UNICODE_STRING DnsDomainName; RPC_UNICODE_STRING DnsForestName; GUID DomainGuid; PRPC_SID Sid; } LSAPR_POLICY_DNS_DOMAIN_INFO, *PLSAPR_POLICY_DNS_DOMAIN_INFO; typedef [switch_type(POLICY_INFORMATION_CLASS)] union _LSAPR_POLICY_INFORMATION { [case(PolicyAuditLogInformation)] POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo; [case(PolicyAuditEventsInformation)] LSAPR_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo; [case(PolicyPrimaryDomainInformation)] LSAPR_POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomInfo; [case(PolicyPdAccountInformation)] LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo; [case(PolicyAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo; [case(PolicyLsaServerRoleInformation)] POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo; [case(PolicyReplicaSourceInformation)] POLICY_LSA_REPLICA_SRCE_INFO PolicyReplicaSourceInfo; [case(PolicyDefaultQuotaInformation)] POLICY_DEFAULT_QUOTA_INFO PolicyDefaultQuotaInfo; [case(PolicyModificationInformation)] POLICY_MODIFICATION_INFO PolicyModificationInfo; [case(PolicyAuditFullSetInformation)] POLICY_AUDIT_FULL_SET_INFO PolicyAuditFullSetInfo; [case(PolicyAuditFullQueryInformation)] POLICY_AUDIT_FULL_QUERY_INFO PolicyAuditFullQueryInfo; [case(PolicyDnsDomainInformation)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfo; [case(PolicyDnsDomainInformationInt)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt; [case(PolicyLocalAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyLocalAccountDomainInfo; } LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION; typedef struct _LSAPR_TRUSTED_ENUM_BUFFER { DWORD EntriesRead; [size_is(EntriesRead)] PLSAPR_TRUST_INFORMATION Information; } LSAPR_TRUSTED_ENUM_BUFFER, *PLSAPR_TRUSTED_ENUM_BUFFER; cpp_quote("#ifndef _NTSECAPI_H") typedef enum _TRUSTED_INFORMATION_CLASS { TrustedDomainNameInformation = 1, TrustedControllersInformation, TrustedPosixOffsetInformation, TrustedPasswordInformation, TrustedDomainInformationBasic, TrustedDomainInformationEx, TrustedDomainAuthInformation, TrustedDomainFullInformation, TrustedDomainAuthInformationInternal, TrustedDomainFullInformationInternal, TrustedDomainInformationEx2Internal, TrustedDomainFullInformation2Internal, TrustedDomainSupportedEncryptionTypes, } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS; cpp_quote("#endif") typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO { RPC_UNICODE_STRING Name; } LSAPR_TRUSTED_DOMAIN_NAME_INFO, *PLSAPR_TRUSTED_DOMAIN_NAME_INFO; typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO { DWORD Entries; [size_is(Entries)] PRPC_UNICODE_STRING Names; } LSAPR_TRUSTED_CONTROLLERS_INFO, *PLSAPR_TRUSTED_CONTROLLERS_INFO; cpp_quote("#ifndef _NTSECAPI_H") typedef struct _TRUSTED_POSIX_OFFSET_INFO { DWORD Offset; } TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO; cpp_quote("#endif") typedef struct _LSAPR_CR_CIPHER_VALUE { DWORD Length; DWORD MaximumLength; [size_is(MaximumLength), length_is(Length)] BYTE *Buffer; } LSAPR_CR_CIPHER_VALUE, *PLSAPR_CR_CIPHER_VALUE; typedef struct _LSAPR_TRUSTED_PASSWORD_INFO { PLSAPR_CR_CIPHER_VALUE Password; PLSAPR_CR_CIPHER_VALUE OldPassword; } LSAPR_TRUSTED_PASSWORD_INFO, *PLSAPR_TRUSTED_PASSWORD_INFO; typedef struct _LSAPR_USER_RIGHT_SET { DWORD Entries; [size_is(Entries)] PRPC_UNICODE_STRING UserRights; } LSAPR_USER_RIGHT_SET, *PLSAPR_USER_RIGHT_SET; cpp_quote("#ifndef _NTSECAPI_H") typedef enum _POLICY_DOMAIN_INFORMATION_CLASS { PolicyDomainQualityOfServiceInformation = 1, PolicyDomainEfsInformation = 2, PolicyDomainKerberosTicketInformation = 3, } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS; typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO { DWORD QualityOfService; } POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; cpp_quote("#endif") typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO { DWORD InfoLength; [size_is(InfoLength)] BYTE *EfsBlob; } LSAPR_POLICY_DOMAIN_EFS_INFO, *PLSAPR_POLICY_DOMAIN_EFS_INFO; cpp_quote("#ifndef _NTSECAPI_H") typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO { DWORD AuthenticationOptions; LARGE_INTEGER MaxServiceTicketAge; LARGE_INTEGER MaxTicketAge; LARGE_INTEGER MaxRenewAge; LARGE_INTEGER MaxClockSkew; LARGE_INTEGER Reserved; } POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO; cpp_quote("#endif") typedef [switch_type(POLICY_DOMAIN_INFORMATION_CLASS)] union _LSAPR_POLICY_DOMAIN_INFORMATION { [case(PolicyDomainQualityOfServiceInformation)] POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO PolicyDomainQualityOfServiceInfo; [case(PolicyDomainEfsInformation)] LSAPR_POLICY_DOMAIN_EFS_INFO PolicyDomainEfsInfo; [case(PolicyDomainKerberosTicketInformation)] POLICY_DOMAIN_KERBEROS_TICKET_INFO PolicyDomainKerbTicketInfo; } LSAPR_POLICY_DOMAIN_INFORMATION, *PLSAPR_POLICY_DOMAIN_INFORMATION; typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX { RPC_UNICODE_STRING Name; RPC_UNICODE_STRING FlatName; PRPC_SID Sid; DWORD TrustDirection; DWORD TrustType; DWORD TrustAttributes; } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX; typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX { DWORD EntriesRead; [size_is(EntriesRead)] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer; } LSAPR_TRUSTED_ENUM_BUFFER_EX, *PLSAPR_TRUSTED_ENUM_BUFFER_EX; typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 { RPC_UNICODE_STRING Name; RPC_UNICODE_STRING FlatName; PRPC_SID Sid; DWORD TrustDirection; DWORD TrustType; DWORD TrustAttributes; DWORD ForestTrustLength; [size_is(ForestTrustLength)] BYTE *ForestTrustInfo; } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2; typedef struct _LSAPR_AUTH_INFORMATION { LARGE_INTEGER LastUpdateTime; DWORD AuthType; DWORD AuthInfoLength; [size_is(AuthInfoLength)] BYTE *AuthInfo; } LSAPR_AUTH_INFORMATION, *PLSAPR_AUTH_INFORMATION; typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION { DWORD IncomingAuthInfos; PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation; PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation; DWORD OutgoingAuthInfos; PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation; PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation; } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION; typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB { DWORD AuthSize; [size_is(AuthSize)] BYTE *AuthBlob; } LSAPR_TRUSTED_DOMAIN_AUTH_BLOB, *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB; typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL { LSAPR_TRUSTED_DOMAIN_AUTH_BLOB AuthBlob; } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL; typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION { LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information; TRUSTED_POSIX_OFFSET_INFO PosixOffset; LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION; typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL { LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information; TRUSTED_POSIX_OFFSET_INFO PosixOffset; LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthInformation; } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL; typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 { LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 Information; TRUSTED_POSIX_OFFSET_INFO PosixOffset; LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2; typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES { DWORD SupportedEncryptionTypes; } TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES, *PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES; typedef [switch_type(TRUSTED_INFORMATION_CLASS)] union _LSAPR_TRUSTED_DOMAIN_INFO { [case(TrustedDomainNameInformation)] LSAPR_TRUSTED_DOMAIN_NAME_INFO TrustedDomainNameInfo; [case(TrustedControllersInformation)] LSAPR_TRUSTED_CONTROLLERS_INFO TrustedControllersInfo; [case(TrustedPosixOffsetInformation)] TRUSTED_POSIX_OFFSET_INFO TrustedPosixOffsetInfo; [case(TrustedPasswordInformation)] LSAPR_TRUSTED_PASSWORD_INFO TrustedPasswordInfo; [case(TrustedDomainInformationBasic)] LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC TrustedDomainInfoBasic; [case(TrustedDomainInformationEx)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInfoEx; [case(TrustedDomainAuthInformation)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION TrustedAuthInfo; [case(TrustedDomainFullInformation)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION TrustedFullInfo; [case(TrustedDomainAuthInformationInternal)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL TrustedAuthInfoInternal; [case(TrustedDomainFullInformationInternal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL TrustedFullInfoInternal; [case(TrustedDomainInformationEx2Internal)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 TrustedDomainInfoEx2; [case(TrustedDomainFullInformation2Internal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 TrustedFullInfo2; [case(TrustedDomainSupportedEncryptionTypes)] TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES TrustedDomainSETs; } LSAPR_TRUSTED_DOMAIN_INFO, *PLSAPR_TRUSTED_DOMAIN_INFO; typedef struct _LSAPR_LUID_AND_ATTRIBUTES { LUID Luid; DWORD Attributes; } LSAPR_LUID_AND_ATTRIBUTES, *PLSAPR_LUID_AND_ATTRIBUTES; typedef struct _LSAPR_PRIVILEGE_SET { DWORD PrivilegeCount; DWORD Control; [size_is(PrivilegeCount)] LSAPR_LUID_AND_ATTRIBUTES Privilege[*]; } LSAPR_PRIVILEGE_SET, *PLSAPR_PRIVILEGE_SET; cpp_quote("#ifndef _NTSECAPI_H") typedef enum _LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName = 0, ForestTrustTopLevelNameEx = 1, ForestTrustDomainInfo = 2, } LSA_FOREST_TRUST_RECORD_TYPE; typedef struct _LSA_FOREST_TRUST_BINARY_DATA { DWORD Length; [size_is(Length)] BYTE *Buffer; } LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA; typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO { PRPC_SID Sid; LSA_UNICODE_STRING DnsName; LSA_UNICODE_STRING NetbiosName; } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO; typedef struct _LSA_FOREST_TRUST_RECORD { DWORD Flags; LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType; LARGE_INTEGER Time; [switch_type(LSA_FOREST_TRUST_RECORD_TYPE), switch_is(ForestTrustType)] union { [case(ForestTrustTopLevelName, ForestTrustTopLevelNameEx)] LSA_UNICODE_STRING TopLevelName; [case(ForestTrustDomainInfo)] LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo; [default] LSA_FOREST_TRUST_BINARY_DATA Data; } ForestTrustData; } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD; typedef struct _LSA_FOREST_TRUST_INFORMATION { DWORD RecordCount; [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD *Entries; } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION; typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE { CollisionTdo = 0, CollisionXref, CollisionOther, } LSA_FOREST_TRUST_COLLISION_RECORD_TYPE; typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD { DWORD Index; LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type; DWORD Flags; LSA_UNICODE_STRING Name; } LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD; typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION { DWORD RecordCount; [size_is(RecordCount)] PLSA_FOREST_TRUST_COLLISION_RECORD *Entries; } LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION; cpp_quote("#endif") [ uuid(12345778-1234-abcd-ef00-0123456789ab), version(0.0), pointer_default(unique) #ifndef __midl ,explicit_handle #endif ] interface lsarpc { /* Function 0 */ NTSTATUS LsarClose( [in, out] LSAPR_HANDLE *ObjectHandle); /* Function 1 */ NTSTATUS LsarDelete( [in] LSAPR_HANDLE ObjectHandle); /* Function 2 */ NTSTATUS LsarEnumeratePrivileges( [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer, [in] DWORD PreferedMaximumLength); /* Function 3 */ NTSTATUS LsarQuerySecurityObject( [in] LSAPR_HANDLE ObjectHandle, [in] SECURITY_INFORMATION SecurityInformation, [out] PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor); /* Function 4 */ NTSTATUS LsarSetSecurityObject( [in] LSAPR_HANDLE ObjectHandle, [in] SECURITY_INFORMATION SecurityInformation, [in] PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor); /* Function 5 */ NTSTATUS LsarChangePassword( [in] PRPC_UNICODE_STRING String1, [in] PRPC_UNICODE_STRING String2, [in] PRPC_UNICODE_STRING String3, [in] PRPC_UNICODE_STRING String4, [in] PRPC_UNICODE_STRING String5); /* Function 6 */ NTSTATUS LsarOpenPolicy( [in, unique] PLSAPR_SERVER_NAME SystemName, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *PolicyHandle); /* Function 7 */ NTSTATUS LsarQueryInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); /* Function 8 */ NTSTATUS LsarSetInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); /* Function 9 */ NTSTATUS LsarClearAuditLog( [in] LSAPR_HANDLE ObjectHandle); /* Function 10 */ NTSTATUS LsarCreateAccount( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *AccountHandle); /* Function 11 */ NTSTATUS LsarEnumerateAccounts( [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer, [in] DWORD PreferedMaximumLength); /* Function 12 */ NTSTATUS LsarCreateTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle); /* Function 13 */ NTSTATUS LsarEnumerateTrustedDomains( [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer, [in] DWORD PreferedMaximumLength); /* Function 14 */ NTSTATUS LsarLookupNames( [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_SIDS TranslatedSids, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount); /* Function 15 */ NTSTATUS LsarLookupSids( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_NAMES TranslatedNames, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount); /* Function 16 */ NTSTATUS LsarCreateSecret( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING SecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle); /* Function 17 */ NTSTATUS LsarOpenAccount( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *AccountHandle); /* Function 18 */ NTSTATUS LsarEnumeratePrivilegesAccount( [in] LSAPR_HANDLE AccountHandle, [out] PLSAPR_PRIVILEGE_SET *Privileges); /* Function 19 */ NTSTATUS LsarAddPrivilegesToAccount( [in] LSAPR_HANDLE AccountHandle, [in] PLSAPR_PRIVILEGE_SET Privileges); /* Function 20 */ NTSTATUS LsarRemovePrivilegesFromAccount( [in] LSAPR_HANDLE AccountHandle, [in] BOOL AllPrivileges, [in, unique] PLSAPR_PRIVILEGE_SET Privileges); /* Function 21 */ NTSTATUS LsarGetQuotasForAccount( [in] LSAPR_HANDLE AccountHandle, [out] PQUOTA_LIMITS QuotaLimits); /* Function 22 */ NTSTATUS LsarSetQuotasForAccount( [in] LSAPR_HANDLE AccountHandle, [in] PQUOTA_LIMITS QuotaLimits); /* Function 23 */ NTSTATUS LsarGetSystemAccessAccount( [in] LSAPR_HANDLE AccountHandle, [out] ACCESS_MASK *SystemAccess); /* Function 24 */ NTSTATUS LsarSetSystemAccessAccount( [in] LSAPR_HANDLE AccountHandle, [in] ACCESS_MASK SystemAccess); /* Function 25 */ NTSTATUS LsarOpenTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle); /* Function 26 */ NTSTATUS LsarQueryInfoTrustedDomain( [in] LSAPR_HANDLE TrustedDomainHandle, [in] TRUSTED_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation); /* Function 27 */ NTSTATUS LsarSetInformationTrustedDomain( [in] LSAPR_HANDLE TrustedDomainHandle, [in] TRUSTED_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation); /* Function 28 */ NTSTATUS LsarOpenSecret( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING SecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle); /* Function 29 */ NTSTATUS LsarSetSecret( [in] LSAPR_HANDLE *SecretHandle, [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue, [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedOldValue); /* Function 30 */ NTSTATUS LsarQuerySecret( [in] LSAPR_HANDLE SecretHandle, [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue, [in, out, unique] PLARGE_INTEGER CurrentValueSetTime, [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue, [in, out, unique] PLARGE_INTEGER OldValueSetTime); /* Function 31 */ NTSTATUS LsarLookupPrivilegeValue( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING Name, [out] PLUID Value); /* Function 32 */ NTSTATUS LsarLookupPrivilegeName( [in] LSAPR_HANDLE PolicyHandle, [in] PLUID Value, [out] PRPC_UNICODE_STRING *Name); /* Function 33 */ NTSTATUS LsarLookupPrivilegeDisplayName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING Name, [in] USHORT ClientLanguage, [in] USHORT ClientSystemDefaultLanguage, [out] PRPC_UNICODE_STRING *DisplayName, [out] USHORT *LanguageReturned); /* Function 34 */ NTSTATUS LsarDeleteObject( [in, out] LSAPR_HANDLE *ObjectHandle); cpp_quote("#if _WIN32_WINNT >= 0x0351") /* Function 35 */ NTSTATUS LsarEnumerateAccountsWithUserRight( [in] LSAPR_HANDLE PolicyHandle, [in, unique] PRPC_UNICODE_STRING UserRight, [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer); /* Function 36 */ NTSTATUS LsarEnmuerateAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [out] PLSAPR_USER_RIGHT_SET UserRights); /* Function 37 */ NTSTATUS LsarAddAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] PLSAPR_USER_RIGHT_SET UserRights); /* Function 38 */ NTSTATUS LsarRemoveAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] BOOL AllRights, [in] PLSAPR_USER_RIGHT_SET UserRights); /* Function 39 */ NTSTATUS LsarQueryTrustedDomainInfo( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] TRUSTED_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation); /* Function 40 */ NTSTATUS LsarSetTrustedDomainInfo( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] TRUSTED_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation); /* Function 41 */ NTSTATUS LsarDeleteTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid); /* Function 42 */ NTSTATUS LsarStorePrivateData( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING KeyName, [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedData); /* Function 43 */ NTSTATUS LsarRetrievePrivateData( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING KeyName, [in, out] PLSAPR_CR_CIPHER_VALUE *EncryptedData); /* Function 44 */ NTSTATUS LsarOpenPolicy2( [in, unique, string] PLSAPR_SERVER_NAME SystemName, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *PolicyHandle); /* Function 45 */ NTSTATUS LsarGetUserName( [in, unique, string] PLSAPR_SERVER_NAME SystemName, [in, out] PRPC_UNICODE_STRING *UserName, [in, out, unique] PRPC_UNICODE_STRING *DomainName); cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 46 */ NTSTATUS LsarQueryInformationPolicy2( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out] unsigned long *PolicyInformation); /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */ /* Function 47 */ NTSTATUS LsarSetInformationPolicy2( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in] unsigned long PolicyInformation); /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */ /* Function 48 */ NTSTATUS LsarQueryTrustedDomainInfoByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] POLICY_INFORMATION_CLASS InformationClass, [out] unsigned long *PolicyInformation); /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */ /* Function 49 */ NTSTATUS LsarSetTrustedDomainInfoByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] POLICY_INFORMATION_CLASS InformationClass, [in] unsigned long PolicyInformation); /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */ /* Function 50 */ NTSTATUS LsarEnumerateTrustedDomainsEx( [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer, [in] DWORD PreferedMaximumLength); /* Function 51 */ NTSTATUS LsarCreateTrustedDomainEx( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle); /* Function 52 */ NTSTATUS LsarSetPolicyReplicationHandle( [in, out] PLSAPR_HANDLE PolicyHandle); /* Function 53 */ NTSTATUS LsarQueryDomainInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out] unsigned long *PolicyInformation); /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */ /* Function 54 */ NTSTATUS LsarSetDomainInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in] unsigned long PolicyInformation); /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */ /* Function 55 */ NTSTATUS LsarOpenTrustedDomainByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle); /* Function 56 */ NTSTATUS LsarTestCall( [in] handle_t hBinding); /* FIXME */ /* Function 57 */ NTSTATUS LsarLookupSids2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount, [in] DWORD LookupOptions, [in] DWORD ClientRevision); /* Function 58 */ NTSTATUS LsarLookupNames2( [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_SID_EX TranslatedSids, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount, [in] DWORD LookupOptions, [in] DWORD ClientRevision); /* Function 59 */ NTSTATUS LsarCreateTrustedDomainEx2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle); cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 60 */ NTSTATUS CredrWrite( [in] handle_t hBinding); /* FIXME */ /* Function 61 */ NTSTATUS CredrRead( [in] handle_t hBinding); /* FIXME */ /* Function 62 */ NTSTATUS CredrEnumerate( [in] handle_t hBinding); /* FIXME */ /* Function 63 */ NTSTATUS CredrWriteDomainCredentials( [in] handle_t hBinding); /* FIXME */ /* Function 64 */ NTSTATUS CredrReadDomainCredentials( [in] handle_t hBinding); /* FIXME */ /* Function 65 */ NTSTATUS CredrDelete( [in] handle_t hBinding); /* FIXME */ /* Function 66 */ NTSTATUS CredrGetTargetInfo( [in] handle_t hBinding); /* FIXME */ /* Function 67 */ NTSTATUS CredrProfileLoaded( [in] handle_t hBinding); /* FIXME */ /* Function 68 */ NTSTATUS LsarLookupNames3( [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_SID_EX2 TranslatedSids, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount, [in] DWORD LookupOptions, [in] DWORD ClientRevision); /* Function 69 */ NTSTATUS CredrGetSessionTypes( [in] handle_t hBinding); /* FIXME */ /* Function 70 */ NTSTATUS LsarRegisterAuditEvent( [in] handle_t hBinding); /* FIXME */ /* Function 71 */ NTSTATUS LsarGenAuditEvent( [in] handle_t hBinding); /* FIXME */ /* Function 72 */ NTSTATUS LsarUnregisterAuditEvent( [in] handle_t hBinding); /* FIXME */ /* Function 73 */ NTSTATUS LsarQueryForestTrustInformation( [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo); /* Function 74 */ NTSTATUS LsarSetForestTrustInformation( [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, [in] PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo, [in] BOOL CheckOnly, [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo); /* Function 75 */ NTSTATUS CredrRename( [in] handle_t hBinding); /* FIXME */ /* Function 76 */ NTSTATUS LsarLookupSids3( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount, [in] DWORD LookupOptions, [in] DWORD ClientRevision); /* Function 77 */ NTSTATUS LsarLookupNames4( [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_SID_EX2 TranslatedSids, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] DWORD *MappedCount, [in] DWORD LookupOptions, [in] DWORD ClientRevision); /* Function 78 */ NTSTATUS LsarOpenPolicySce( [in] handle_t hBinding); /* FIXME */ /* Function 79 */ NTSTATUS LsarAdtRegisterSecurityEventSource( [in] handle_t hBinding); /* FIXME */ /* Function 80 */ NTSTATUS LsarAdtUnregisterSecurityEventSource( [in] handle_t hBinding); /* FIXME */ /* Function 81 */ NTSTATUS LsarAdtReportSecurityEvent( [in] handle_t hBinding); /* FIXME */ cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */") cpp_quote("#endif /* _WIN32_WINNT >= 0x0500 */") cpp_quote("#endif /* _WIN32_WINNT >= 0x0351 */") }