Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For ease of implementation, the full IDL is provided, where ms-dtyp.idl is the IDL specified in [MS-DTYP] Appendix A.
Note The lsarpc interface is shared between this protocol and the Local Security Authority (Translation Methods) Remote Protocol [MS-LSAT]. For convenience, the IDL definitions that appear below and the IDL definitions in [MS-LSAT] section 6 have been merged and are available for download. For more information, see [MSFT-LSA-IDL].
-
import "ms-dtyp.idl"; [ uuid(12345778-1234-ABCD-EF00-0123456789AB), version(0.0), ms_union, pointer_default(unique) ] interface lsarpc { // // Type definitions. // // // Start of common types. //
-
#define MAX_CIPHER_SIZE ( 2 * ( ( 64 * 1024 ) + 8 ) )
-
typedef [context_handle] void * LSAPR_HANDLE; typedef unsigned char SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE; typedef unsigned short SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; typedef struct _STRING { unsigned short Length; unsigned short MaximumLength; [size_is(MaximumLength), length_is(Length)] char * Buffer; } STRING, *PSTRING; typedef struct _LSAPR_ACL { unsigned char AclRevision; unsigned char Sbz1; unsigned short AclSize; [size_is(AclSize - 4)] unsigned char Dummy1[*]; } LSAPR_ACL, *PLSAPR_ACL; typedef struct _LSAPR_SECURITY_DESCRIPTOR { unsigned char Revision; unsigned char Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PRPC_SID Owner; PRPC_SID Group; PLSAPR_ACL Sacl; PLSAPR_ACL Dacl; } LSAPR_SECURITY_DESCRIPTOR, *PLSAPR_SECURITY_DESCRIPTOR; typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous = 0, SecurityIdentification = 1, SecurityImpersonation = 2, SecurityDelegation = 3 } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; typedef struct _SECURITY_QUALITY_OF_SERVICE { unsigned long Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; unsigned char EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; typedef struct _LSAPR_OBJECT_ATTRIBUTES { unsigned long Length; unsigned char * RootDirectory; PSTRING ObjectName; unsigned long Attributes; PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor; PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; } LSAPR_OBJECT_ATTRIBUTES, *PLSAPR_OBJECT_ATTRIBUTES; typedef struct _LSAPR_TRUST_INFORMATION { RPC_UNICODE_STRING Name; PRPC_SID Sid; } LSAPR_TRUST_INFORMATION, *PLSAPR_TRUST_INFORMATION; // // End of common types. // typedef enum _POLICY_INFORMATION_CLASS { PolicyAuditLogInformation = 1, PolicyAuditEventsInformation, PolicyPrimaryDomainInformation, PolicyPdAccountInformation, PolicyAccountDomainInformation, PolicyLsaServerRoleInformation, PolicyReplicaSourceInformation, PolicyInformationNotUsedOnWire, PolicyModificationInformation, PolicyAuditFullSetInformation, PolicyAuditFullQueryInformation, PolicyDnsDomainInformation, PolicyDnsDomainInformationInt, PolicyLocalAccountDomainInformation, PolicyMachineAccountInformation, PolicyLastEntry } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; typedef enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem = 0, AuditCategoryLogon, AuditCategoryObjectAccess, AuditCategoryPrivilegeUse, AuditCategoryDetailedTracking, AuditCategoryPolicyChange, AuditCategoryAccountManagement, AuditCategoryDirectoryServiceAccess, AuditCategoryAccountLogon } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE; typedef RPC_UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; typedef struct _POLICY_AUDIT_LOG_INFO { unsigned long AuditLogPercentFull; unsigned long MaximumLogSize; LARGE_INTEGER AuditRetentionPeriod; unsigned char AuditLogFullShutdownInProgress; LARGE_INTEGER TimeToShutdown; unsigned long NextAuditRecordId; } POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO; 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; typedef struct _POLICY_MODIFICATION_INFO { LARGE_INTEGER ModifiedId; LARGE_INTEGER DatabaseCreationTime; } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO; typedef struct _POLICY_AUDIT_FULL_SET_INFO { unsigned char ShutDownOnFull; } POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO; typedef struct _POLICY_AUDIT_FULL_QUERY_INFO { unsigned char ShutDownOnFull; unsigned char LogIsFull; } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO; typedef enum _POLICY_DOMAIN_INFORMATION_CLASS { PolicyDomainQualityOfServiceInformation = 1, PolicyDomainEfsInformation = 2, PolicyDomainKerberosTicketInformation = 3 } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS; typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO { unsigned long 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; typedef struct _TRUSTED_POSIX_OFFSET_INFO { unsigned long Offset; } TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO; typedef enum _TRUSTED_INFORMATION_CLASS { TrustedDomainNameInformation = 1, TrustedControllersInformation, TrustedPosixOffsetInformation, TrustedPasswordInformation, TrustedDomainInformationBasic, TrustedDomainInformationEx, TrustedDomainAuthInformation, TrustedDomainFullInformation, TrustedDomainAuthInformationInternal, TrustedDomainFullInformationInternal, TrustedDomainInformationEx2Internal, TrustedDomainFullInformation2Internal, TrustedDomainSupportedEncryptionTypes, TrustedDomainAuthInformationInternalAes, TrustedDomainFullInformationInternalAes } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS; typedef enum _LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName = 0, ForestTrustTopLevelNameEx = 1, ForestTrustDomainInfo = 2, ForestTrustBinaryInfo = 3, ForestTrustScannerInfo = 4, ForestTrustRecordTypeLast = ForestTrustDomainInfo } LSA_FOREST_TRUST_RECORD_TYPE; typedef struct _LSA_FOREST_TRUST_BINARY_DATA { [range(0, 131072)] unsigned long Length; [size_is( Length )] unsigned char * 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_SCANNER_INFO { PRPC_SID DomainSid; LSA_UNICODE_STRING DnsName; LSA_UNICODE_STRING NetbiosName; } LSA_FOREST_TRUST_SCANNER_INFO, * PLSA_FOREST_TRUST_SCANNER_INFO;
-
typedef struct _LSA_FOREST_TRUST_RECORD { unsigned long 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; [case( ForestTrustScannerInfo )] LSA_FOREST_TRUST_SCANNER_INFO ScannerInfo; [default] LSA_FOREST_TRUST_BINARY_DATA Data; } ForestTrustData; } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
-
typedef struct _LSA_FOREST_TRUST_RECORD2 { unsigned long 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; [case( ForestTrustBinaryInfo )] LSA_FOREST_TRUST_BINARY_DATA BinaryData; [case( ForestTrustScannerInfo )] LSA_FOREST_TRUST_SCANNER_INFO ScannerInfo; } ForestTrustData; } LSA_FOREST_TRUST_RECORD2, * PLSA_FOREST_TRUST_RECORD2;
-
typedef struct _LSA_FOREST_TRUST_INFORMATION { [range(0,4000)] unsigned long RecordCount; [size_is( RecordCount )] PLSA_FOREST_TRUST_RECORD * Entries; } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
-
typedef struct _LSA_FOREST_TRUST_INFORMATION2 { [range(0, 4000)] unsigned long RecordCount; [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD2* Entries; } LSA_FOREST_TRUST_INFORMATION2, * PLSA_FOREST_TRUST_INFORMATION2;
-
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 { unsigned long Index; LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type; unsigned long Flags; LSA_UNICODE_STRING Name; } LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD; typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION { unsigned long RecordCount; [size_is( RecordCount )] PLSA_FOREST_TRUST_COLLISION_RECORD * Entries; } LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION; typedef LSAPR_HANDLE *PLSAPR_HANDLE; typedef struct _LSAPR_ACCOUNT_INFORMATION { PRPC_SID Sid; } LSAPR_ACCOUNT_INFORMATION, *PLSAPR_ACCOUNT_INFORMATION; typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER { unsigned long EntriesRead; [size_is(EntriesRead)] PLSAPR_ACCOUNT_INFORMATION Information; } LSAPR_ACCOUNT_ENUM_BUFFER, *PLSAPR_ACCOUNT_ENUM_BUFFER; typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR { [range(0,262144)] unsigned long Length; [size_is(Length)] unsigned char * SecurityDescriptor; } LSAPR_SR_SECURITY_DESCRIPTOR, *PLSAPR_SR_SECURITY_DESCRIPTOR; typedef struct _LSAPR_LUID_AND_ATTRIBUTES { LUID Luid; unsigned long Attributes; } LSAPR_LUID_AND_ATTRIBUTES, * PLSAPR_LUID_AND_ATTRIBUTES; typedef struct _LSAPR_PRIVILEGE_SET { [range(0,1000)] unsigned long PrivilegeCount; unsigned long Control; [size_is(PrivilegeCount)] LSAPR_LUID_AND_ATTRIBUTES Privilege[*]; } LSAPR_PRIVILEGE_SET, *PLSAPR_PRIVILEGE_SET; 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 { unsigned long Entries; [size_is(Entries)] PLSAPR_POLICY_PRIVILEGE_DEF Privileges; } LSAPR_PRIVILEGE_ENUM_BUFFER, *PLSAPR_PRIVILEGE_ENUM_BUFFER; typedef struct _LSAPR_CR_CIPHER_VALUE { [range(0, 131088)] unsigned long Length; [range(0, 131088)] unsigned long MaximumLength; [size_is(MaximumLength), length_is(Length)] unsigned char *Buffer; } LSAPR_CR_CIPHER_VALUE, *PLSAPR_CR_CIPHER_VALUE;
-
typedef struct _LSAPR_AES_CIPHER_VALUE { UCHAR AuthData[64]; UCHAR Salt[16]; [range(0, MAX_CIPHER_SIZE)] ULONG cbCipher; [size_is(cbCipher)] PUCHAR Cipher; } LSAPR_AES_CIPHER_VALUE, *PLSAPR_AES_CIPHER_VALUE;
-
typedef struct _LSAPR_TRUSTED_ENUM_BUFFER { unsigned long EntriesRead; [size_is(EntriesRead)] PLSAPR_TRUST_INFORMATION Information; } LSAPR_TRUSTED_ENUM_BUFFER, *PLSAPR_TRUSTED_ENUM_BUFFER; typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO { RPC_UNICODE_STRING DomainName; PRPC_SID DomainSid; } LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_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_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 struct _LSAPR_POLICY_PD_ACCOUNT_INFO { RPC_UNICODE_STRING Name; } LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO; typedef struct _LSAPR_POLICY_REPLICA_SRCE_INFO { RPC_UNICODE_STRING ReplicaSource; RPC_UNICODE_STRING ReplicaAccountName; } LSAPR_POLICY_REPLICA_SRCE_INFO, *PLSAPR_POLICY_REPLICA_SRCE_INFO; typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO { unsigned char AuditingMode; [size_is(MaximumAuditEventCount)] unsigned long *EventAuditingOptions; [range(0,1000)] unsigned long MaximumAuditEventCount; } LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO; typedef struct _LSAPR_POLICY_MACHINE_ACCT_INFO { unsigned long Rid; PRPC_SID Sid; } LSAPR_POLICY_MACHINE_ACCT_INFO, *PLSAPR_POLICY_MACHINE_ACCT_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 PolicyPrimaryDomainInfo; [case(PolicyAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo; [case(PolicyPdAccountInformation)] LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo; [case(PolicyLsaServerRoleInformation)] POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo; [case(PolicyReplicaSourceInformation)] LSAPR_POLICY_REPLICA_SRCE_INFO PolicyReplicaSourceInfo; [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; [case(PolicyMachineAccountInformation)] LSAPR_POLICY_MACHINE_ACCT_INFO PolicyMachineAccountInfo; } LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION; typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO { unsigned long QualityOfService; } POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO { unsigned long InfoLength; [size_is(InfoLength)] unsigned char * EfsBlob; } LSAPR_POLICY_DOMAIN_EFS_INFO, *PLSAPR_POLICY_DOMAIN_EFS_INFO; 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_NAME_INFO { RPC_UNICODE_STRING Name; } LSAPR_TRUSTED_DOMAIN_NAME_INFO, *PLSAPR_TRUSTED_DOMAIN_NAME_INFO; typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO { [range(0,5)] unsigned long Entries; [size_is(Entries)] PRPC_UNICODE_STRING Names; } LSAPR_TRUSTED_CONTROLLERS_INFO, *PLSAPR_TRUSTED_CONTROLLERS_INFO; 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_TRUSTED_DOMAIN_INFORMATION_EX { RPC_UNICODE_STRING Name; RPC_UNICODE_STRING FlatName; PRPC_SID Sid; unsigned long TrustDirection; unsigned long TrustType; unsigned long TrustAttributes; } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX; typedef struct _LSAPR_AUTH_INFORMATION { LARGE_INTEGER LastUpdateTime; unsigned long AuthType; [range(0,65536)] unsigned long AuthInfoLength; [size_is(AuthInfoLength)] unsigned char * AuthInfo; } LSAPR_AUTH_INFORMATION, *PLSAPR_AUTH_INFORMATION; typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION { [range(0,1)] unsigned long IncomingAuthInfos; PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation; PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation; [range(0,1)] unsigned long OutgoingAuthInfos; PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation; PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation; } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION; 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 LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC; typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB { [range(0, 65536)] unsigned long AuthSize; [size_is( AuthSize )] unsigned char * 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_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;
-
#define MAX_AUTHBLOB_SIZE ( 64 * 1024 ) typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES { UCHAR AuthData[64]; UCHAR Salt[16]; [range(0, MAX_AUTHBLOB_SIZE)] ULONG cbCipher; [size_is(cbCipher)] PUCHAR Cipher; } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES; typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL_AES { LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information; TRUSTED_POSIX_OFFSET_INFO PosixOffset; LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES AuthInformation; } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL_AES, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL_AES;
-
typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 { RPC_UNICODE_STRING Name; RPC_UNICODE_STRING FlatName; PRPC_SID Sid; unsigned long TrustDirection; unsigned long TrustType; unsigned long TrustAttributes; unsigned long ForestTrustLength; [size_is(ForestTrustLength)] unsigned char * ForestTrustInfo; } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2; 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 { unsigned long 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; [case(TrustedDomainAuthInformationInternalAes)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES TrustedAuthInfoInternalAes; [case(TrustedDomainFullInformationInternalAes)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL_AES TrustedFullInfoInternalAes; } LSAPR_TRUSTED_DOMAIN_INFO, *PLSAPR_TRUSTED_DOMAIN_INFO; typedef struct _LSAPR_USER_RIGHT_SET { [range(0,256)] unsigned long Entries; [size_is(Entries)] PRPC_UNICODE_STRING UserRights; } LSAPR_USER_RIGHT_SET, *PLSAPR_USER_RIGHT_SET; typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX { unsigned long EntriesRead; [size_is(EntriesRead)] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer; } LSAPR_TRUSTED_ENUM_BUFFER_EX, *PLSAPR_TRUSTED_ENUM_BUFFER_EX; // // Methods // // // The following notation conventions are used for some IDL methods: // // void // Lsar_LSA_TM_XX( void ); // // (where XX represents the opnum.) // // This notation indicates that the method is defined in this // interface but is described in the // Local Security Authority (Translation Methods) protocol // specification. // // void OpnumXXNotUsedOnWire(void); // // (where XX represents the opnum.) // // This notation indicates that the method is defined in this // interface but is not seen on the wire. // // Opnum 0 NTSTATUS LsarClose( [in,out] LSAPR_HANDLE *ObjectHandle ); // Opnum 1 void Opnum1NotUsedOnWire(void); // Opnum 2 NTSTATUS LsarEnumeratePrivileges( [in] LSAPR_HANDLE PolicyHandle, [in, out] unsigned long *EnumerationContext, [out] PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer, [in] unsigned long PreferedMaximumLength ); // Opnum 3 NTSTATUS LsarQuerySecurityObject( [in] LSAPR_HANDLE ObjectHandle, [in] SECURITY_INFORMATION SecurityInformation, [out] PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor ); // Opnum 4 NTSTATUS LsarSetSecurityObject( [in] LSAPR_HANDLE ObjectHandle, [in] SECURITY_INFORMATION SecurityInformation, [in] PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor ); // Opnum 5 void Opnum5NotUsedOnWire(void); // Opnum 6 NTSTATUS LsarOpenPolicy( [in,unique] wchar_t *SystemName, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *PolicyHandle ); // Opnum 7 NTSTATUS LsarQueryInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation ); // Opnum 8 NTSTATUS LsarSetInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation ); // Opnum 9 void Opnum9NotUsedOnWire(void); // Opnum 10 NTSTATUS LsarCreateAccount( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *AccountHandle ); // Opnum 11 NTSTATUS LsarEnumerateAccounts( [in] LSAPR_HANDLE PolicyHandle, [in] [out] unsigned long *EnumerationContext, [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer, [in] unsigned long PreferedMaximumLength ); // Opnum 12 NTSTATUS LsarCreateTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle ); // Opnum 13 NTSTATUS LsarEnumerateTrustedDomains( [in] LSAPR_HANDLE PolicyHandle, [in] [out] unsigned long *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer, [in] unsigned long PreferedMaximumLength ); // Opnum 14 void Lsar_LSA_TM_14( void ); // Opnum 15 void Lsar_LSA_TM_15( void ); // Opnum 16 NTSTATUS LsarCreateSecret( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING SecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle ); // Opnum 17 NTSTATUS LsarOpenAccount( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *AccountHandle ); // Opnum 18 NTSTATUS LsarEnumeratePrivilegesAccount( [in] LSAPR_HANDLE AccountHandle, [out] PLSAPR_PRIVILEGE_SET *Privileges ); // Opnum 19 NTSTATUS LsarAddPrivilegesToAccount( [in] LSAPR_HANDLE AccountHandle, [in] PLSAPR_PRIVILEGE_SET Privileges ); // Opnum 20 NTSTATUS LsarRemovePrivilegesFromAccount( [in] LSAPR_HANDLE AccountHandle, [in] unsigned char AllPrivileges, [in, unique] PLSAPR_PRIVILEGE_SET Privileges ); // Opnum 21 void Opnum21NotUsedOnWire(void); // Opnum 22 void Opnum22NotUsedOnWire(void); // Opnum 23 NTSTATUS LsarGetSystemAccessAccount( [in] LSAPR_HANDLE AccountHandle, [out] unsigned long *SystemAccess ); // Opnum 24 NTSTATUS LsarSetSystemAccessAccount( [in] LSAPR_HANDLE AccountHandle, [in] unsigned long SystemAccess ); // Opnum 25 NTSTATUS LsarOpenTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle ); // Opnum 26 NTSTATUS LsarQueryInfoTrustedDomain( [in] LSAPR_HANDLE TrustedDomainHandle, [in] TRUSTED_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation ); // Opnum 27 NTSTATUS LsarSetInformationTrustedDomain( [in] LSAPR_HANDLE TrustedDomainHandle, [in] TRUSTED_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation ); // Opnum 28 NTSTATUS LsarOpenSecret( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING SecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle ); // Opnum 29 NTSTATUS LsarSetSecret( [in] LSAPR_HANDLE SecretHandle, [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue, [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedOldValue ); // Opnum 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 ); // Opnum 31 NTSTATUS LsarLookupPrivilegeValue( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING Name, [out] PLUID Value ); // Opnum 32 NTSTATUS LsarLookupPrivilegeName( [in] LSAPR_HANDLE PolicyHandle, [in] PLUID Value, [out] PRPC_UNICODE_STRING *Name ); // Opnum 33 NTSTATUS LsarLookupPrivilegeDisplayName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING Name, [in] short ClientLanguage, [in] short ClientSystemDefaultLanguage, [out] PRPC_UNICODE_STRING *DisplayName, [out] unsigned short *LanguageReturned ); // Opnum 34 NTSTATUS LsarDeleteObject( [in,out] LSAPR_HANDLE *ObjectHandle ); // Opnum 35 NTSTATUS LsarEnumerateAccountsWithUserRight( [in] LSAPR_HANDLE PolicyHandle, [in,unique] PRPC_UNICODE_STRING UserRight, [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer ); // Opnum 36 NTSTATUS LsarEnumerateAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [out] PLSAPR_USER_RIGHT_SET UserRights ); // Opnum 37 NTSTATUS LsarAddAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] PLSAPR_USER_RIGHT_SET UserRights ); // Opnum 38 NTSTATUS LsarRemoveAccountRights( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] unsigned char AllRights, [in] PLSAPR_USER_RIGHT_SET UserRights ); // Opnum 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 ); // Opnum 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 ); // Opnum 41 NTSTATUS LsarDeleteTrustedDomain( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid ); // Opnum 42 NTSTATUS LsarStorePrivateData( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING KeyName, [in,unique] PLSAPR_CR_CIPHER_VALUE EncryptedData ); // Opnum 43 NTSTATUS LsarRetrievePrivateData( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING KeyName, [in, out] PLSAPR_CR_CIPHER_VALUE *EncryptedData ); // Opnum 44 NTSTATUS LsarOpenPolicy2( [in,unique,string] wchar_t *SystemName, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *PolicyHandle ); // Opnum 45 void Lsar_LSA_TM_45( void ); // Opnum 46 NTSTATUS LsarQueryInformationPolicy2( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation ); // Opnum 47 NTSTATUS LsarSetInformationPolicy2( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation ); // Opnum 48 NTSTATUS LsarQueryTrustedDomainInfoByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] TRUSTED_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation ); // Opnum 49 NTSTATUS LsarSetTrustedDomainInfoByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] TRUSTED_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation ); // Opnum 50 NTSTATUS LsarEnumerateTrustedDomainsEx( [in] LSAPR_HANDLE PolicyHandle, [in, out] unsigned long *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer, [in] unsigned long PreferedMaximumLength ); // Opnum 51 NTSTATUS LsarCreateTrustedDomainEx( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle ); // Opnum 52 void Opnum52NotUsedOnWire(void); // Opnum 53 NTSTATUS LsarQueryDomainInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_DOMAIN_INFORMATION_CLASS InformationClass, [out, switch_is(InformationClass)] PLSAPR_POLICY_DOMAIN_INFORMATION *PolicyDomainInformation ); // Opnum 54 NTSTATUS LsarSetDomainInformationPolicy( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_DOMAIN_INFORMATION_CLASS InformationClass, [in, unique, switch_is(InformationClass)] PLSAPR_POLICY_DOMAIN_INFORMATION PolicyDomainInformation ); // Opnum 55 NTSTATUS LsarOpenTrustedDomainByName( [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle ); // Opnum 56 void Opnum56NotUsedOnWire(void); // Opnum 57 void Lsar_LSA_TM_57( void ); // Opnum 58 void Lsar_LSA_TM_58( void ); // Opnum 59 NTSTATUS LsarCreateTrustedDomainEx2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthenticationInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *TrustedDomainHandle ); // Opnum 60 void Opnum60NotUsedOnWire(void); // Opnum 61 void Opnum61NotUsedOnWire(void); // Opnum 62 void Opnum62NotUsedOnWire(void); // Opnum 63 void Opnum63NotUsedOnWire(void); // Opnum 64 void Opnum64NotUsedOnWire(void); // Opnum 65 void Opnum65NotUsedOnWire(void); // Opnum 66 void Opnum66NotUsedOnWire(void); // Opnum 67 void Opnum67NotUsedOnWire(void); // Opnum 68 void Lsar_LSA_TM_68( void ); // Opnum 69 void Opnum69NotUsedOnWire(void); // Opnum 70 void Opnum70NotUsedOnWire(void); // Opnum 71 void Opnum71NotUsedOnWire(void); // Opnum 72 void Opnum72NotUsedOnWire(void); // Opnum 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 ); // Opnum 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] unsigned char CheckOnly, [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION * CollisionInfo ); // Opnum 75 void Opnum75NotUsedOnWire(void); // Opnum 76 void Opnum76NotUsedOnWire(void); // Opnum 77 void Opnum77NotUsedOnWire(void); // Opnum 78 void Opnum78NotUsedOnWire(void); // Opnum 79 void Opnum79NotUsedOnWire(void); // Opnum 80 void Opnum80NotUsedOnWire(void); // Opnum 81 void Opnum81NotUsedOnWire(void); // Opnum 82 void Opnum82NotUsedOnWire(void); // Opnum 83 void Opnum83NotUsedOnWire(void); // Opnum 84 void Opnum84NotUsedOnWire(void); // Opnum 85 void Opnum85NotUsedOnWire(void); // Opnum 86 void Opnum86NotUsedOnWire(void); // Opnum 87 void Opnum87NotUsedOnWire(void); // Opnum 88 void Opnum88NotUsedOnWire(void); // Opnum 89 void Opnum89NotUsedOnWire(void); // Opnum 90 void Opnum90NotUsedOnWire(void); // Opnum 91 void Opnum91NotUsedOnWire(void); // Opnum 92 void Opnum92NotUsedOnWire(void); // Opnum 93 void Opnum93NotUsedOnWire(void); // Opnum 94 void Opnum94NotUsedOnWire(void); // Opnum 95 void Opnum95NotUsedOnWire(void); // Opnum 96 void Opnum96NotUsedOnWire(void); // Opnum 97 void Opnum97NotUsedOnWire(void); // Opnum 98 void Opnum98NotUsedOnWire(void); // Opnum 99 void Opnum99NotUsedOnWire(void); // Opnum 100 void Opnum100NotUsedOnWire(void); // Opnum 101 void Opnum101NotUsedOnWire(void); // Opnum 102 void Opnum102NotUsedOnWire(void); // Opnum 103 void Opnum103NotUsedOnWire(void); // Opnum 104 void Opnum104NotUsedOnWire(void); // Opnum 105 void Opnum105NotUsedOnWire(void); // Opnum 106 void Opnum106NotUsedOnWire(void); // Opnum 107 void Opnum107NotUsedOnWire(void); // Opnum 108 void Opnum108NotUsedOnWire(void); // Opnum 109 void Opnum109NotUsedOnWire(void); // Opnum 110 void Opnum110NotUsedOnWire(void); // Opnum 111 void Opnum111NotUsedOnWire(void); // Opnum 112 void Opnum112NotUsedOnWire(void); // Opnum 113 void Opnum113NotUsedOnWire(void); // Opnum 114 void Opnum114NotUsedOnWire(void); // Opnum 115 void Opnum115NotUsedOnWire(void); // Opnum 116 void Opnum116NotUsedOnWire(void); // Opnum 117 void Opnum117NotUsedOnWire(void); // Opnum 118 void Opnum118NotUsedOnWire(void); // Opnum 119 void Opnum119NotUsedOnWire(void); // Opnum 120 void Opnum120NotUsedOnWire(void); // Opnum 121 void Opnum121NotUsedOnWire(void); // Opnum 122 void Opnum122NotUsedOnWire(void); // Opnum 123 void Opnum123NotUsedOnWire(void); // Opnum 124 void Opnum124NotUsedOnWire(void); // Opnum 125 void Opnum125NotUsedOnWire(void); // Opnum 126 void Opnum126NotUsedOnWire(void); // Opnum 127 void Opnum127NotUsedOnWire(void); // Opnum 128 void Opnum128NotUsedOnWire(void);
-
// Opnum 129 NTSTATUS LsarCreateTrustedDomainEx3( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL_AES AuthenticationInformation, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE* TrustedDomainHandle ); // Opnum 130 typedef [handle] LPWSTR PLSAPR_SERVER_NAME, *PPLSAPR_SERVER_NAME; typedef struct _LSAPR_REVISION_INFO_V1 { ULONG Revision; ULONG SupportedFeatures; } LSAPR_REVISION_INFO_V1, *PLSAPR_REVISION_INFO_V1; typedef [switch_type(ULONG)] union { [case(1)] LSAPR_REVISION_INFO_V1 V1; } LSAPR_REVISION_INFO, *PLSAPR_REVISION_INFO; NTSTATUS LsarOpenPolicy3( [in,unique,string] PLSAPR_SERVER_NAME SystemName, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [in] ULONG InVersion, [in] [switch_is(InVersion)] LSAPR_REVISION_INFO* InRevisionInfo, [out] ULONG* OutVersion, [out] [switch_is(*OutVersion)] LSAPR_REVISION_INFO* OutRevisionInfo, [out] LSAPR_HANDLE* PolicyHandle );
-
// Opnum 131 void Opnum131NotUsedOnWire(void); // Opnum 132 NTSTATUS LsarQueryForestTrustInformation2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, [out] PLSA_FOREST_TRUST_INFORMATION2* ForestTrustInfo2 ); // Opnum 133 NTSTATUS LsarSetForestTrustInformation2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, [in] PLSA_FOREST_TRUST_INFORMATION2 ForestTrustInfo2, [in] unsigned char CheckOnly, [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION* CollisionInfo ); // Opnum 134 void Opnum134NotUsedOnWire(void); // Opnum 135 NTSTATUS LsarOpenPolicyWithCreds( [in] handle_t BindingHandle, [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, [in] ACCESS_MASK DesiredAccess, [in] ULONG InVersion, [in] [switch_is(InVersion)] LSAPR_REVISION_INFO* InRevisionInfo, [out] ULONG* OutVersion, [out] [switch_is(*OutVersion)] LSAPR_REVISION_INFO* OutRevisionInfo, [out] LSAPR_HANDLE* PolicyHandle );
-
// Opnum 136 NTSTATUS LsarOpenSecret2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_AES_CIPHER_VALUE EncryptedSecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle ); // Opnum 137 NTSTATUS LsarCreateSecret2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_AES_CIPHER_VALUE EncryptedSecretName, [in] ACCESS_MASK DesiredAccess, [out] LSAPR_HANDLE *SecretHandle ); // Opnum 138 NTSTATUS LsarSetSecret2( [in] LSAPR_HANDLE SecretHandle, [in, unique] PLSAPR_AES_CIPHER_VALUE EncryptedCurrentValue, [in, unique] PLSAPR_AES_CIPHER_VALUE EncryptedOldValue ); // Opnum 139 NTSTATUS LsarQuerySecret2( [in] LSAPR_HANDLE SecretHandle, [in, out, unique] PLSAPR_AES_CIPHER_VALUE *EncryptedCurrentValue, [in, out, unique] PLARGE_INTEGER CurrentValueSetTime, [in, out, unique] PLSAPR_AES_CIPHER_VALUE *EncryptedOldValue, [in, out, unique] PLARGE_INTEGER OldValueSetTime ); // Opnum 140 NTSTATUS LsarStorePrivateData2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_AES_CIPHER_VALUE EncryptedKeyName, [in,unique] PLSAPR_AES_CIPHER_VALUE EncryptedData ); // Opnum 141 NTSTATUS LsarRetrievePrivateData2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_AES_CIPHER_VALUE EncryptedKeyName, [in, out, unique] PLSAPR_AES_CIPHER_VALUE *EncryptedData );
-
}