s3-build: re-run make samba3-idl.
authorGünther Deschner <gd@samba.org>
Wed, 15 Oct 2008 16:49:03 +0000 (18:49 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 15 Oct 2008 17:44:48 +0000 (19:44 +0200)
Guenther

source3/include/proto.h
source3/librpc/gen_ndr/cli_lsa.c
source3/librpc/gen_ndr/cli_lsa.h
source3/librpc/gen_ndr/lsa.h
source3/librpc/gen_ndr/ndr_lsa.c
source3/librpc/gen_ndr/ndr_lsa.h
source3/librpc/gen_ndr/srv_lsa.c

index 860d33a4a4f6609e58975efeef35530aef9b9be2..3c196dbd5aa5cf1235f00d3814a295c00fb234d7 100644 (file)
@@ -2635,7 +2635,15 @@ _PUBLIC_ void ndr_print_lsa_PrivilegeSet(struct ndr_print *ndr, const char *name
 _PUBLIC_ void ndr_print_lsa_DATA_BUF(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF *r);
 _PUBLIC_ void ndr_print_lsa_DATA_BUF2(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF2 *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomInfoEnum(struct ndr_print *ndr, const char *name, enum lsa_TrustDomInfoEnum r);
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_TrustDirection(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_TrustDirection(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+_PUBLIC_ void ndr_print_lsa_TrustDirection(struct ndr_print *ndr, const char *name, uint32_t r);
+_PUBLIC_ void ndr_print_lsa_TrustType(struct ndr_print *ndr, const char *name, enum lsa_TrustType r);
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+_PUBLIC_ void ndr_print_lsa_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoName(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoName *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoControllers(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoControllers *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoPosixOffset(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoPosixOffset *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoPassword(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoPassword *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoBasic(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoBasic *r);
@@ -2643,8 +2651,11 @@ _PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoEx(struct ndr_print *ndr, const c
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoBuffer(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoBuffer *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoAuthInfo(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoAuthInfo *r);
 _PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfo(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfo *r);
-_PUBLIC_ void ndr_print_lsa_TrustDomainInfo11(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfo11 *r);
-_PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoAll(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoAll *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoAuthInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoAuthInfoInternal *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfoInternal *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoEx2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoEx2Internal *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfo2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfo2Internal *r);
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoSupportedEncTypes(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoSupportedEncTypes *r);
 _PUBLIC_ void ndr_print_lsa_TrustedDomainInfo(struct ndr_print *ndr, const char *name, const union lsa_TrustedDomainInfo *r);
 _PUBLIC_ void ndr_print_lsa_DATA_BUF_PTR(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF_PTR *r);
 _PUBLIC_ void ndr_print_lsa_RightSet(struct ndr_print *ndr, const char *name, const struct lsa_RightSet *r);
index 4ab27ed04b10af05607e96137dad3febd8a8cdc2..15ff462ef614771e1652ae334359f4fde408ba2b 100644 (file)
@@ -1141,12 +1141,18 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfo(struct rpc_pipe_client *cli,
 }
 
 NTSTATUS rpccli_lsa_SetInformationTrustedDomain(struct rpc_pipe_client *cli,
-                                               TALLOC_CTX *mem_ctx)
+                                               TALLOC_CTX *mem_ctx,
+                                               struct policy_handle *trustdom_handle /* [in] [ref] */,
+                                               enum lsa_TrustDomInfoEnum level /* [in]  */,
+                                               union lsa_TrustedDomainInfo *info /* [in] [ref,switch_is(level)] */)
 {
        struct lsa_SetInformationTrustedDomain r;
        NTSTATUS status;
 
        /* In parameters */
+       r.in.trustdom_handle = trustdom_handle;
+       r.in.level = level;
+       r.in.info = info;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_SetInformationTrustedDomain, &r);
@@ -1706,12 +1712,20 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfoBySid(struct rpc_pipe_client *cli,
 }
 
 NTSTATUS rpccli_lsa_SetTrustedDomainInfo(struct rpc_pipe_client *cli,
-                                        TALLOC_CTX *mem_ctx)
+                                        TALLOC_CTX *mem_ctx,
+                                        struct policy_handle *handle /* [in] [ref] */,
+                                        struct dom_sid2 *dom_sid /* [in] [ref] */,
+                                        enum lsa_TrustDomInfoEnum level /* [in]  */,
+                                        union lsa_TrustedDomainInfo *info /* [in] [ref,switch_is(level)] */)
 {
        struct lsa_SetTrustedDomainInfo r;
        NTSTATUS status;
 
        /* In parameters */
+       r.in.handle = handle;
+       r.in.dom_sid = dom_sid;
+       r.in.level = level;
+       r.in.info = info;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_SetTrustedDomainInfo, &r);
@@ -2161,12 +2175,21 @@ NTSTATUS rpccli_lsa_EnumTrustedDomainsEx(struct rpc_pipe_client *cli,
 }
 
 NTSTATUS rpccli_lsa_CreateTrustedDomainEx(struct rpc_pipe_client *cli,
-                                         TALLOC_CTX *mem_ctx)
+                                         TALLOC_CTX *mem_ctx,
+                                         struct policy_handle *policy_handle /* [in] [ref] */,
+                                         struct lsa_TrustDomainInfoInfoEx *info /* [in] [ref] */,
+                                         struct lsa_TrustDomainInfoAuthInfoInternal *auth_info /* [in] [ref] */,
+                                         uint32_t access_mask /* [in]  */,
+                                         struct policy_handle *trustdom_handle /* [out] [ref] */)
 {
        struct lsa_CreateTrustedDomainEx r;
        NTSTATUS status;
 
        /* In parameters */
+       r.in.policy_handle = policy_handle;
+       r.in.info = info;
+       r.in.auth_info = auth_info;
+       r.in.access_mask = access_mask;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx, &r);
@@ -2191,6 +2214,7 @@ NTSTATUS rpccli_lsa_CreateTrustedDomainEx(struct rpc_pipe_client *cli,
        }
 
        /* Return variables */
+       *trustdom_handle = *r.out.trustdom_handle;
 
        /* Return result */
        return r.out.result;
@@ -2462,8 +2486,8 @@ NTSTATUS rpccli_lsa_LookupNames2(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray2 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */)
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */)
 {
        struct lsa_LookupNames2 r;
        NTSTATUS status;
@@ -2475,8 +2499,8 @@ NTSTATUS rpccli_lsa_LookupNames2(struct rpc_pipe_client *cli,
        r.in.sids = sids;
        r.in.level = level;
        r.in.count = count;
-       r.in.unknown1 = unknown1;
-       r.in.unknown2 = unknown2;
+       r.in.lookup_options = lookup_options;
+       r.in.client_revision = client_revision;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_LookupNames2, &r);
@@ -2510,12 +2534,21 @@ NTSTATUS rpccli_lsa_LookupNames2(struct rpc_pipe_client *cli,
 }
 
 NTSTATUS rpccli_lsa_CreateTrustedDomainEx2(struct rpc_pipe_client *cli,
-                                          TALLOC_CTX *mem_ctx)
+                                          TALLOC_CTX *mem_ctx,
+                                          struct policy_handle *policy_handle /* [in] [ref] */,
+                                          struct lsa_TrustDomainInfoInfoEx *info /* [in] [ref] */,
+                                          struct lsa_TrustDomainInfoAuthInfoInternal *auth_info /* [in] [ref] */,
+                                          uint32_t access_mask /* [in]  */,
+                                          struct policy_handle *trustdom_handle /* [out] [ref] */)
 {
        struct lsa_CreateTrustedDomainEx2 r;
        NTSTATUS status;
 
        /* In parameters */
+       r.in.policy_handle = policy_handle;
+       r.in.info = info;
+       r.in.auth_info = auth_info;
+       r.in.access_mask = access_mask;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx2, &r);
@@ -2540,6 +2573,7 @@ NTSTATUS rpccli_lsa_CreateTrustedDomainEx2(struct rpc_pipe_client *cli,
        }
 
        /* Return variables */
+       *trustdom_handle = *r.out.trustdom_handle;
 
        /* Return result */
        return r.out.result;
@@ -2842,8 +2876,8 @@ NTSTATUS rpccli_lsa_LookupNames3(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray3 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */)
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */)
 {
        struct lsa_LookupNames3 r;
        NTSTATUS status;
@@ -2855,8 +2889,8 @@ NTSTATUS rpccli_lsa_LookupNames3(struct rpc_pipe_client *cli,
        r.in.sids = sids;
        r.in.level = level;
        r.in.count = count;
-       r.in.unknown1 = unknown1;
-       r.in.unknown2 = unknown2;
+       r.in.lookup_options = lookup_options;
+       r.in.client_revision = client_revision;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_LookupNames3, &r);
@@ -3209,8 +3243,8 @@ NTSTATUS rpccli_lsa_LookupNames4(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray3 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */)
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */)
 {
        struct lsa_LookupNames4 r;
        NTSTATUS status;
@@ -3221,8 +3255,8 @@ NTSTATUS rpccli_lsa_LookupNames4(struct rpc_pipe_client *cli,
        r.in.sids = sids;
        r.in.level = level;
        r.in.count = count;
-       r.in.unknown1 = unknown1;
-       r.in.unknown2 = unknown2;
+       r.in.lookup_options = lookup_options;
+       r.in.client_revision = client_revision;
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_IN_DEBUG(lsa_LookupNames4, &r);
index f3333a091b246fdf536a34f34ff19aef833ad436..d6cb2fc7a79e357f777c2baef3770f056b8bf247 100644 (file)
@@ -133,7 +133,10 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfo(struct rpc_pipe_client *cli,
                                           enum lsa_TrustDomInfoEnum level /* [in]  */,
                                           union lsa_TrustedDomainInfo **info /* [out] [ref,switch_is(level)] */);
 NTSTATUS rpccli_lsa_SetInformationTrustedDomain(struct rpc_pipe_client *cli,
-                                               TALLOC_CTX *mem_ctx);
+                                               TALLOC_CTX *mem_ctx,
+                                               struct policy_handle *trustdom_handle /* [in] [ref] */,
+                                               enum lsa_TrustDomInfoEnum level /* [in]  */,
+                                               union lsa_TrustedDomainInfo *info /* [in] [ref,switch_is(level)] */);
 NTSTATUS rpccli_lsa_OpenSecret(struct rpc_pipe_client *cli,
                               TALLOC_CTX *mem_ctx,
                               struct policy_handle *handle /* [in] [ref] */,
@@ -201,7 +204,11 @@ NTSTATUS rpccli_lsa_QueryTrustedDomainInfoBySid(struct rpc_pipe_client *cli,
                                                enum lsa_TrustDomInfoEnum level /* [in]  */,
                                                union lsa_TrustedDomainInfo **info /* [out] [ref,switch_is(level)] */);
 NTSTATUS rpccli_lsa_SetTrustedDomainInfo(struct rpc_pipe_client *cli,
-                                        TALLOC_CTX *mem_ctx);
+                                        TALLOC_CTX *mem_ctx,
+                                        struct policy_handle *handle /* [in] [ref] */,
+                                        struct dom_sid2 *dom_sid /* [in] [ref] */,
+                                        enum lsa_TrustDomInfoEnum level /* [in]  */,
+                                        union lsa_TrustedDomainInfo *info /* [in] [ref,switch_is(level)] */);
 NTSTATUS rpccli_lsa_DeleteTrustedDomain(struct rpc_pipe_client *cli,
                                        TALLOC_CTX *mem_ctx,
                                        struct policy_handle *handle /* [in] [ref] */,
@@ -250,7 +257,12 @@ NTSTATUS rpccli_lsa_EnumTrustedDomainsEx(struct rpc_pipe_client *cli,
                                         struct lsa_DomainListEx *domains /* [out] [ref] */,
                                         uint32_t max_size /* [in]  */);
 NTSTATUS rpccli_lsa_CreateTrustedDomainEx(struct rpc_pipe_client *cli,
-                                         TALLOC_CTX *mem_ctx);
+                                         TALLOC_CTX *mem_ctx,
+                                         struct policy_handle *policy_handle /* [in] [ref] */,
+                                         struct lsa_TrustDomainInfoInfoEx *info /* [in] [ref] */,
+                                         struct lsa_TrustDomainInfoAuthInfoInternal *auth_info /* [in] [ref] */,
+                                         uint32_t access_mask /* [in]  */,
+                                         struct policy_handle *trustdom_handle /* [out] [ref] */);
 NTSTATUS rpccli_lsa_CloseTrustedDomainEx(struct rpc_pipe_client *cli,
                                         TALLOC_CTX *mem_ctx,
                                         struct policy_handle *handle /* [in,out] [ref] */);
@@ -291,10 +303,15 @@ NTSTATUS rpccli_lsa_LookupNames2(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray2 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */);
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */);
 NTSTATUS rpccli_lsa_CreateTrustedDomainEx2(struct rpc_pipe_client *cli,
-                                          TALLOC_CTX *mem_ctx);
+                                          TALLOC_CTX *mem_ctx,
+                                          struct policy_handle *policy_handle /* [in] [ref] */,
+                                          struct lsa_TrustDomainInfoInfoEx *info /* [in] [ref] */,
+                                          struct lsa_TrustDomainInfoAuthInfoInternal *auth_info /* [in] [ref] */,
+                                          uint32_t access_mask /* [in]  */,
+                                          struct policy_handle *trustdom_handle /* [out] [ref] */);
 NTSTATUS rpccli_lsa_CREDRWRITE(struct rpc_pipe_client *cli,
                               TALLOC_CTX *mem_ctx);
 NTSTATUS rpccli_lsa_CREDRREAD(struct rpc_pipe_client *cli,
@@ -320,8 +337,8 @@ NTSTATUS rpccli_lsa_LookupNames3(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray3 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */);
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */);
 NTSTATUS rpccli_lsa_CREDRGETSESSIONTYPES(struct rpc_pipe_client *cli,
                                         TALLOC_CTX *mem_ctx);
 NTSTATUS rpccli_lsa_LSARREGISTERAUDITEVENT(struct rpc_pipe_client *cli,
@@ -357,8 +374,8 @@ NTSTATUS rpccli_lsa_LookupNames4(struct rpc_pipe_client *cli,
                                 struct lsa_TransSidArray3 *sids /* [in,out] [ref] */,
                                 enum lsa_LookupNamesLevel level /* [in]  */,
                                 uint32_t *count /* [in,out] [ref] */,
-                                uint32_t unknown1 /* [in]  */,
-                                uint32_t unknown2 /* [in]  */);
+                                uint32_t lookup_options /* [in]  */,
+                                uint32_t client_revision /* [in]  */);
 NTSTATUS rpccli_lsa_LSAROPENPOLICYSCE(struct rpc_pipe_client *cli,
                                      TALLOC_CTX *mem_ctx);
 NTSTATUS rpccli_lsa_LSARADTREGISTERSECURITYEVENTSOURCE(struct rpc_pipe_client *cli,
index ac7c64cda357bbbc2c6a44c8027e234a646d49a2..bcf6dd665ec4eb295a7ed9966324c95e5cefdf96 100644 (file)
@@ -222,7 +222,8 @@ enum lsa_PolicyInfo
        LSA_POLICY_INFO_DB=9,
        LSA_POLICY_INFO_AUDIT_FULL_SET=10,
        LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
-       LSA_POLICY_INFO_DNS=12
+       LSA_POLICY_INFO_DNS=12,
+       LSA_POLICY_INFO_DNS_INT=13
 }
 #else
  { __donnot_use_enum_lsa_PolicyInfo=0x7FFFFFFF}
@@ -238,6 +239,7 @@ enum lsa_PolicyInfo
 #define LSA_POLICY_INFO_AUDIT_FULL_SET ( 10 )
 #define LSA_POLICY_INFO_AUDIT_FULL_QUERY ( 11 )
 #define LSA_POLICY_INFO_DNS ( 12 )
+#define LSA_POLICY_INFO_DNS_INT ( 13 )
 #endif
 ;
 
@@ -324,7 +326,8 @@ enum lsa_LookupNamesLevel
        LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=3,
        LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=4,
        LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=5,
-       LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6
+       LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6,
+       LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=7
 }
 #else
  { __donnot_use_enum_lsa_LookupNamesLevel=0x7FFFFFFF}
@@ -334,6 +337,7 @@ enum lsa_LookupNamesLevel
 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY ( 4 )
 #define LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY ( 5 )
 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 ( 6 )
+#define LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC ( 7 )
 #endif
 ;
 
@@ -374,35 +378,75 @@ enum lsa_TrustDomInfoEnum
 #ifndef USE_UINT_ENUMS
  {
        LSA_TRUSTED_DOMAIN_INFO_NAME=1,
-       LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO=2,
+       LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=2,
        LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=3,
        LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4,
        LSA_TRUSTED_DOMAIN_INFO_BASIC=5,
        LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6,
        LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7,
        LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8,
-       LSA_TRUSTED_DOMAIN_INFO_11=11,
-       LSA_TRUSTED_DOMAIN_INFO_INFO_ALL=12
+       LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=9,
+       LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=10,
+       LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=11,
+       LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=12,
+       LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES=13
 }
 #else
  { __donnot_use_enum_lsa_TrustDomInfoEnum=0x7FFFFFFF}
 #define LSA_TRUSTED_DOMAIN_INFO_NAME ( 1 )
-#define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO ( 2 )
+#define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS ( 2 )
 #define LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET ( 3 )
 #define LSA_TRUSTED_DOMAIN_INFO_PASSWORD ( 4 )
 #define LSA_TRUSTED_DOMAIN_INFO_BASIC ( 5 )
 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX ( 6 )
 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO ( 7 )
 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO ( 8 )
-#define LSA_TRUSTED_DOMAIN_INFO_11 ( 11 )
-#define LSA_TRUSTED_DOMAIN_INFO_INFO_ALL ( 12 )
+#define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL ( 9 )
+#define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL ( 10 )
+#define LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL ( 11 )
+#define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL ( 12 )
+#define LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES ( 13 )
 #endif
 ;
 
+/* bitmap lsa_TrustDirection */
+#define LSA_TRUST_DIRECTION_INBOUND ( 0x00000001 )
+#define LSA_TRUST_DIRECTION_OUTBOUND ( 0x00000002 )
+
+enum lsa_TrustType
+#ifndef USE_UINT_ENUMS
+ {
+       LSA_TRUST_TYPE_DOWNLEVEL=0x00000001,
+       LSA_TRUST_TYPE_UPLEVEL=0x00000002,
+       LSA_TRUST_TYPE_MIT=0x00000003
+}
+#else
+ { __donnot_use_enum_lsa_TrustType=0x7FFFFFFF}
+#define LSA_TRUST_TYPE_DOWNLEVEL ( 0x00000001 )
+#define LSA_TRUST_TYPE_UPLEVEL ( 0x00000002 )
+#define LSA_TRUST_TYPE_MIT ( 0x00000003 )
+#endif
+;
+
+/* bitmap lsa_TrustAttributes */
+#define LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
+#define LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
+#define LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
+#define LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
+#define LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
+#define LSA_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
+#define LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
+#define LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION ( 0x00000080 )
+
 struct lsa_TrustDomainInfoName {
        struct lsa_StringLarge netbios_name;
 };
 
+struct lsa_TrustDomainInfoControllers {
+       uint32_t entries;
+       struct lsa_StringLarge *netbios_names;/* [unique,size_is(entries)] */
+};
+
 struct lsa_TrustDomainInfoPosixOffset {
        uint32_t posix_offset;
 };
@@ -422,13 +466,30 @@ struct lsa_TrustDomainInfoInfoEx {
        struct lsa_StringLarge netbios_name;
        struct dom_sid2 *sid;/* [unique] */
        uint32_t trust_direction;
-       uint32_t trust_type;
+       enum lsa_TrustType trust_type;
        uint32_t trust_attributes;
 };
 
+enum lsa_TrustAuthType
+#ifndef USE_UINT_ENUMS
+ {
+       TRUST_AUTH_TYPE_NONE=0,
+       TRUST_AUTH_TYPE_NT4OWF=1,
+       TRUST_AUTH_TYPE_CLEAR=2,
+       TRUST_AUTH_TYPE_VERSION=3
+}
+#else
+ { __donnot_use_enum_lsa_TrustAuthType=0x7FFFFFFF}
+#define TRUST_AUTH_TYPE_NONE ( 0 )
+#define TRUST_AUTH_TYPE_NT4OWF ( 1 )
+#define TRUST_AUTH_TYPE_CLEAR ( 2 )
+#define TRUST_AUTH_TYPE_VERSION ( 3 )
+#endif
+;
+
 struct lsa_TrustDomainInfoBuffer {
        NTTIME last_update_time;
-       uint32_t secret_type;
+       enum lsa_TrustAuthType AuthType;
        struct lsa_DATA_BUF2 data;
 };
 
@@ -447,28 +508,46 @@ struct lsa_TrustDomainInfoFullInfo {
        struct lsa_TrustDomainInfoAuthInfo auth_info;
 };
 
-struct lsa_TrustDomainInfo11 {
+struct lsa_TrustDomainInfoAuthInfoInternal {
+       struct lsa_DATA_BUF2 auth_blob;
+};
+
+struct lsa_TrustDomainInfoFullInfoInternal {
        struct lsa_TrustDomainInfoInfoEx info_ex;
-       struct lsa_DATA_BUF2 data1;
+       struct lsa_TrustDomainInfoPosixOffset posix_offset;
+       struct lsa_TrustDomainInfoAuthInfoInternal auth_info;
 };
 
-struct lsa_TrustDomainInfoInfoAll {
+struct lsa_TrustDomainInfoInfoEx2Internal {
        struct lsa_TrustDomainInfoInfoEx info_ex;
-       struct lsa_DATA_BUF2 data1;
+       uint32_t forest_trust_length;
+       uint8_t *forest_trust_data;/* [unique,size_is(forest_trust_length)] */
+};
+
+struct lsa_TrustDomainInfoFullInfo2Internal {
+       struct lsa_TrustDomainInfoInfoEx2Internal info;
        struct lsa_TrustDomainInfoPosixOffset posix_offset;
        struct lsa_TrustDomainInfoAuthInfo auth_info;
 };
 
+struct lsa_TrustDomainInfoSupportedEncTypes {
+       uint32_t enc_types;
+};
+
 union lsa_TrustedDomainInfo {
        struct lsa_TrustDomainInfoName name;/* [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] */
+       struct lsa_TrustDomainInfoControllers controllers;/* [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] */
        struct lsa_TrustDomainInfoPosixOffset posix_offset;/* [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] */
        struct lsa_TrustDomainInfoPassword password;/* [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] */
        struct lsa_TrustDomainInfoBasic info_basic;/* [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] */
        struct lsa_TrustDomainInfoInfoEx info_ex;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] */
        struct lsa_TrustDomainInfoAuthInfo auth_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] */
        struct lsa_TrustDomainInfoFullInfo full_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] */
-       struct lsa_TrustDomainInfo11 info11;/* [case(LSA_TRUSTED_DOMAIN_INFO_11)] */
-       struct lsa_TrustDomainInfoInfoAll info_all;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)] */
+       struct lsa_TrustDomainInfoAuthInfoInternal auth_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] */
+       struct lsa_TrustDomainInfoFullInfoInternal full_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] */
+       struct lsa_TrustDomainInfoInfoEx2Internal info_ex2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] */
+       struct lsa_TrustDomainInfoFullInfo2Internal full_info2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] */
+       struct lsa_TrustDomainInfoSupportedEncTypes enc_types;/* [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES)] */
 }/* [switch_type(lsa_TrustDomInfoEnum)] */;
 
 struct lsa_DATA_BUF_PTR {
@@ -549,7 +628,7 @@ struct lsa_TranslatedSid3 {
        enum lsa_SidType sid_type;
        struct dom_sid2 *sid;/* [unique] */
        uint32_t sid_index;
-       uint32_t unknown;
+       uint32_t flags;
 };
 
 struct lsa_TransSidArray3 {
@@ -976,6 +1055,12 @@ struct lsa_QueryTrustedDomainInfo {
 
 
 struct lsa_SetInformationTrustedDomain {
+       struct {
+               struct policy_handle *trustdom_handle;/* [ref] */
+               enum lsa_TrustDomInfoEnum level;
+               union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
+       } in;
+
        struct {
                NTSTATUS result;
        } out;
@@ -1163,6 +1248,13 @@ struct lsa_QueryTrustedDomainInfoBySid {
 
 
 struct lsa_SetTrustedDomainInfo {
+       struct {
+               struct policy_handle *handle;/* [ref] */
+               struct dom_sid2 *dom_sid;/* [ref] */
+               enum lsa_TrustDomInfoEnum level;
+               union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
+       } in;
+
        struct {
                NTSTATUS result;
        } out;
@@ -1306,6 +1398,14 @@ struct lsa_EnumTrustedDomainsEx {
 
 struct lsa_CreateTrustedDomainEx {
        struct {
+               struct policy_handle *policy_handle;/* [ref] */
+               struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
+               struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
+               uint32_t access_mask;
+       } in;
+
+       struct {
+               struct policy_handle *trustdom_handle;/* [ref] */
                NTSTATUS result;
        } out;
 
@@ -1403,8 +1503,8 @@ struct lsa_LookupNames2 {
                uint32_t num_names;/* [range(0,1000)] */
                struct lsa_String *names;/* [size_is(num_names)] */
                enum lsa_LookupNamesLevel level;
-               uint32_t unknown1;
-               uint32_t unknown2;
+               uint32_t lookup_options;
+               uint32_t client_revision;
                struct lsa_TransSidArray2 *sids;/* [ref] */
                uint32_t *count;/* [ref] */
        } in;
@@ -1421,6 +1521,14 @@ struct lsa_LookupNames2 {
 
 struct lsa_CreateTrustedDomainEx2 {
        struct {
+               struct policy_handle *policy_handle;/* [ref] */
+               struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
+               struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
+               uint32_t access_mask;
+       } in;
+
+       struct {
+               struct policy_handle *trustdom_handle;/* [ref] */
                NTSTATUS result;
        } out;
 
@@ -1497,8 +1605,8 @@ struct lsa_LookupNames3 {
                uint32_t num_names;/* [range(0,1000)] */
                struct lsa_String *names;/* [size_is(num_names)] */
                enum lsa_LookupNamesLevel level;
-               uint32_t unknown1;
-               uint32_t unknown2;
+               uint32_t lookup_options;
+               uint32_t client_revision;
                struct lsa_TransSidArray3 *sids;/* [ref] */
                uint32_t *count;/* [ref] */
        } in;
@@ -1601,8 +1709,8 @@ struct lsa_LookupNames4 {
                uint32_t num_names;/* [range(0,1000)] */
                struct lsa_String *names;/* [size_is(num_names)] */
                enum lsa_LookupNamesLevel level;
-               uint32_t unknown1;
-               uint32_t unknown2;
+               uint32_t lookup_options;
+               uint32_t client_revision;
                struct lsa_TransSidArray3 *sids;/* [ref] */
                uint32_t *count;/* [ref] */
        } in;
index b5dd2a0bc1132140834e9cd043771c2d74904170..ffa4d7df773bee5509d75c31a1d8526005c2b836 100644 (file)
@@ -1198,7 +1198,7 @@ static enum ndr_err_code ndr_push_lsa_ModificationInfo(struct ndr_push *ndr, int
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->modified_id));
-               NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
+               NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->db_create_time));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -1210,7 +1210,7 @@ static enum ndr_err_code ndr_pull_lsa_ModificationInfo(struct ndr_pull *ndr, int
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->modified_id));
-               NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
+               NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->db_create_time));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -1222,7 +1222,7 @@ _PUBLIC_ void ndr_print_lsa_ModificationInfo(struct ndr_print *ndr, const char *
        ndr_print_struct(ndr, name, "lsa_ModificationInfo");
        ndr->depth++;
        ndr_print_hyper(ndr, "modified_id", r->modified_id);
-       ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
+       ndr_print_NTTIME_hyper(ndr, "db_create_time", r->db_create_time);
        ndr->depth--;
 }
 
@@ -1392,6 +1392,7 @@ _PUBLIC_ void ndr_print_lsa_PolicyInfo(struct ndr_print *ndr, const char *name,
                case LSA_POLICY_INFO_AUDIT_FULL_SET: val = "LSA_POLICY_INFO_AUDIT_FULL_SET"; break;
                case LSA_POLICY_INFO_AUDIT_FULL_QUERY: val = "LSA_POLICY_INFO_AUDIT_FULL_QUERY"; break;
                case LSA_POLICY_INFO_DNS: val = "LSA_POLICY_INFO_DNS"; break;
+               case LSA_POLICY_INFO_DNS_INT: val = "LSA_POLICY_INFO_DNS_INT"; break;
        }
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
@@ -1450,6 +1451,10 @@ static enum ndr_err_code ndr_push_lsa_PolicyInformation(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->dns));
                        break; }
 
+                       case LSA_POLICY_INFO_DNS_INT: {
+                               NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->dns));
+                       break; }
+
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
                }
@@ -1499,6 +1504,10 @@ static enum ndr_err_code ndr_push_lsa_PolicyInformation(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->dns));
                        break;
 
+                       case LSA_POLICY_INFO_DNS_INT:
+                               NDR_CHECK(ndr_push_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->dns));
+                       break;
+
                        default:
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
                }
@@ -1565,6 +1574,10 @@ static enum ndr_err_code ndr_pull_lsa_PolicyInformation(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->dns));
                        break; }
 
+                       case LSA_POLICY_INFO_DNS_INT: {
+                               NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->dns));
+                       break; }
+
                        default:
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
                }
@@ -1613,6 +1626,10 @@ static enum ndr_err_code ndr_pull_lsa_PolicyInformation(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->dns));
                        break;
 
+                       case LSA_POLICY_INFO_DNS_INT:
+                               NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->dns));
+                       break;
+
                        default:
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
                }
@@ -1674,6 +1691,10 @@ _PUBLIC_ void ndr_print_lsa_PolicyInformation(struct ndr_print *ndr, const char
                        ndr_print_lsa_DnsDomainInfo(ndr, "dns", &r->dns);
                break;
 
+               case LSA_POLICY_INFO_DNS_INT:
+                       ndr_print_lsa_DnsDomainInfo(ndr, "dns", &r->dns);
+               break;
+
                default:
                        ndr_print_bad_level(ndr, name, level);
        }
@@ -2174,6 +2195,7 @@ _PUBLIC_ void ndr_print_lsa_LookupNamesLevel(struct ndr_print *ndr, const char *
                case LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY: val = "LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY"; break;
                case LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY: val = "LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY"; break;
                case LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2: val = "LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2"; break;
+               case LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC: val = "LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC"; break;
        }
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
@@ -2588,19 +2610,100 @@ _PUBLIC_ void ndr_print_lsa_TrustDomInfoEnum(struct ndr_print *ndr, const char *
 
        switch (r) {
                case LSA_TRUSTED_DOMAIN_INFO_NAME: val = "LSA_TRUSTED_DOMAIN_INFO_NAME"; break;
-               case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO: val = "LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO"; break;
+               case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS: val = "LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS"; break;
                case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET: val = "LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET"; break;
                case LSA_TRUSTED_DOMAIN_INFO_PASSWORD: val = "LSA_TRUSTED_DOMAIN_INFO_PASSWORD"; break;
                case LSA_TRUSTED_DOMAIN_INFO_BASIC: val = "LSA_TRUSTED_DOMAIN_INFO_BASIC"; break;
                case LSA_TRUSTED_DOMAIN_INFO_INFO_EX: val = "LSA_TRUSTED_DOMAIN_INFO_INFO_EX"; break;
                case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO: val = "LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO"; break;
                case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO: val = "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO"; break;
-               case LSA_TRUSTED_DOMAIN_INFO_11: val = "LSA_TRUSTED_DOMAIN_INFO_11"; break;
-               case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL: val = "LSA_TRUSTED_DOMAIN_INFO_INFO_ALL"; break;
+               case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL: val = "LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL"; break;
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL: val = "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL"; break;
+               case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL: val = "LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL"; break;
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL: val = "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL"; break;
+               case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES: val = "LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES"; break;
        }
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_TrustDirection(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_TrustDirection(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustDirection(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_DIRECTION_INBOUND", LSA_TRUST_DIRECTION_INBOUND, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_DIRECTION_OUTBOUND", LSA_TRUST_DIRECTION_OUTBOUND, r);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_lsa_TrustType(struct ndr_push *ndr, int ndr_flags, enum lsa_TrustType r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_lsa_TrustType(struct ndr_pull *ndr, int ndr_flags, enum lsa_TrustType *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustType(struct ndr_print *ndr, const char *name, enum lsa_TrustType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case LSA_TRUST_TYPE_DOWNLEVEL: val = "LSA_TRUST_TYPE_DOWNLEVEL"; break;
+               case LSA_TRUST_TYPE_UPLEVEL: val = "LSA_TRUST_TYPE_UPLEVEL"; break;
+               case LSA_TRUST_TYPE_MIT: val = "LSA_TRUST_TYPE_MIT"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE", LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY", LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_WITHIN_FOREST", LSA_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION", LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION, r);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_lsa_TrustDomainInfoName(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoName *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -2633,6 +2736,92 @@ _PUBLIC_ void ndr_print_lsa_TrustDomainInfoName(struct ndr_print *ndr, const cha
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoControllers(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoControllers *r)
+{
+       uint32_t cntr_netbios_names_1;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_names));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->netbios_names) {
+                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries));
+                       for (cntr_netbios_names_1 = 0; cntr_netbios_names_1 < r->entries; cntr_netbios_names_1++) {
+                               NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->netbios_names[cntr_netbios_names_1]));
+                       }
+                       for (cntr_netbios_names_1 = 0; cntr_netbios_names_1 < r->entries; cntr_netbios_names_1++) {
+                               NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->netbios_names[cntr_netbios_names_1]));
+                       }
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoControllers(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoControllers *r)
+{
+       uint32_t _ptr_netbios_names;
+       uint32_t cntr_netbios_names_1;
+       TALLOC_CTX *_mem_save_netbios_names_0;
+       TALLOC_CTX *_mem_save_netbios_names_1;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_names));
+               if (_ptr_netbios_names) {
+                       NDR_PULL_ALLOC(ndr, r->netbios_names);
+               } else {
+                       r->netbios_names = NULL;
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               if (r->netbios_names) {
+                       _mem_save_netbios_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->netbios_names, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_names));
+                       NDR_PULL_ALLOC_N(ndr, r->netbios_names, ndr_get_array_size(ndr, &r->netbios_names));
+                       _mem_save_netbios_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->netbios_names, 0);
+                       for (cntr_netbios_names_1 = 0; cntr_netbios_names_1 < r->entries; cntr_netbios_names_1++) {
+                               NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->netbios_names[cntr_netbios_names_1]));
+                       }
+                       for (cntr_netbios_names_1 = 0; cntr_netbios_names_1 < r->entries; cntr_netbios_names_1++) {
+                               NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->netbios_names[cntr_netbios_names_1]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_names_1, 0);
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_names_0, 0);
+               }
+               if (r->netbios_names) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->netbios_names, r->entries));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoControllers(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoControllers *r)
+{
+       uint32_t cntr_netbios_names_1;
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoControllers");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "entries", r->entries);
+       ndr_print_ptr(ndr, "netbios_names", r->netbios_names);
+       ndr->depth++;
+       if (r->netbios_names) {
+               ndr->print(ndr, "%s: ARRAY(%d)", "netbios_names", (int)r->entries);
+               ndr->depth++;
+               for (cntr_netbios_names_1=0;cntr_netbios_names_1<r->entries;cntr_netbios_names_1++) {
+                       char *idx_1=NULL;
+                       if (asprintf(&idx_1, "[%d]", cntr_netbios_names_1) != -1) {
+                               ndr_print_lsa_StringLarge(ndr, "netbios_names", &r->netbios_names[cntr_netbios_names_1]);
+                               free(idx_1);
+                       }
+               }
+               ndr->depth--;
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_lsa_TrustDomainInfoPosixOffset(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoPosixOffset *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -2801,9 +2990,9 @@ static enum ndr_err_code ndr_push_lsa_TrustDomainInfoInfoEx(struct ndr_push *ndr
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain_name));
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->netbios_name));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_direction));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
+               NDR_CHECK(ndr_push_lsa_TrustDirection(ndr, NDR_SCALARS, r->trust_direction));
+               NDR_CHECK(ndr_push_lsa_TrustType(ndr, NDR_SCALARS, r->trust_type));
+               NDR_CHECK(ndr_push_lsa_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain_name));
@@ -2829,9 +3018,9 @@ static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoInfoEx(struct ndr_pull *ndr
                } else {
                        r->sid = NULL;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_direction));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
+               NDR_CHECK(ndr_pull_lsa_TrustDirection(ndr, NDR_SCALARS, &r->trust_direction));
+               NDR_CHECK(ndr_pull_lsa_TrustType(ndr, NDR_SCALARS, &r->trust_type));
+               NDR_CHECK(ndr_pull_lsa_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain_name));
@@ -2858,18 +3047,45 @@ _PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoEx(struct ndr_print *ndr, const c
                ndr_print_dom_sid2(ndr, "sid", r->sid);
        }
        ndr->depth--;
-       ndr_print_uint32(ndr, "trust_direction", r->trust_direction);
-       ndr_print_uint32(ndr, "trust_type", r->trust_type);
-       ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
+       ndr_print_lsa_TrustDirection(ndr, "trust_direction", r->trust_direction);
+       ndr_print_lsa_TrustType(ndr, "trust_type", r->trust_type);
+       ndr_print_lsa_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
        ndr->depth--;
 }
 
+_PUBLIC_ enum ndr_err_code ndr_push_lsa_TrustAuthType(struct ndr_push *ndr, int ndr_flags, enum lsa_TrustAuthType r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_lsa_TrustAuthType(struct ndr_pull *ndr, int ndr_flags, enum lsa_TrustAuthType *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustAuthType(struct ndr_print *ndr, const char *name, enum lsa_TrustAuthType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case TRUST_AUTH_TYPE_NONE: val = "TRUST_AUTH_TYPE_NONE"; break;
+               case TRUST_AUTH_TYPE_NT4OWF: val = "TRUST_AUTH_TYPE_NT4OWF"; break;
+               case TRUST_AUTH_TYPE_CLEAR: val = "TRUST_AUTH_TYPE_CLEAR"; break;
+               case TRUST_AUTH_TYPE_VERSION: val = "TRUST_AUTH_TYPE_VERSION"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
 static enum ndr_err_code ndr_push_lsa_TrustDomainInfoBuffer(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoBuffer *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 8));
                NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->last_update_time));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secret_type));
+               NDR_CHECK(ndr_push_lsa_TrustAuthType(ndr, NDR_SCALARS, r->AuthType));
                NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -2883,7 +3099,7 @@ static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoBuffer(struct ndr_pull *ndr
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 8));
                NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->last_update_time));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secret_type));
+               NDR_CHECK(ndr_pull_lsa_TrustAuthType(ndr, NDR_SCALARS, &r->AuthType));
                NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data));
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -2897,7 +3113,7 @@ _PUBLIC_ void ndr_print_lsa_TrustDomainInfoBuffer(struct ndr_print *ndr, const c
        ndr_print_struct(ndr, name, "lsa_TrustDomainInfoBuffer");
        ndr->depth++;
        ndr_print_NTTIME_hyper(ndr, "last_update_time", r->last_update_time);
-       ndr_print_uint32(ndr, "secret_type", r->secret_type);
+       ndr_print_lsa_TrustAuthType(ndr, "AuthType", r->AuthType);
        ndr_print_lsa_DATA_BUF2(ndr, "data", &r->data);
        ndr->depth--;
 }
@@ -3071,88 +3287,213 @@ _PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfo(struct ndr_print *ndr, const
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_lsa_TrustDomainInfo11(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfo11 *r)
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoAuthInfoInternal(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoAuthInfoInternal *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->auth_blob));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->auth_blob));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoAuthInfoInternal *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->auth_blob));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->auth_blob));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoAuthInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoAuthInfoInternal *r)
+{
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoAuthInfoInternal");
+       ndr->depth++;
+       ndr_print_lsa_DATA_BUF2(ndr, "auth_blob", &r->auth_blob);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoFullInfoInternal(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoFullInfoInternal *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->info_ex));
-               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data1));
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS, &r->auth_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
-               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->data1));
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_BUFFERS, &r->auth_info));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_lsa_TrustDomainInfo11(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfo11 *r)
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoFullInfoInternal(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoFullInfoInternal *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->info_ex));
-               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data1));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS, &r->auth_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
-               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->data1));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_BUFFERS, &r->auth_info));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_lsa_TrustDomainInfo11(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfo11 *r)
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfoInternal *r)
 {
-       ndr_print_struct(ndr, name, "lsa_TrustDomainInfo11");
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoFullInfoInternal");
        ndr->depth++;
        ndr_print_lsa_TrustDomainInfoInfoEx(ndr, "info_ex", &r->info_ex);
-       ndr_print_lsa_DATA_BUF2(ndr, "data1", &r->data1);
+       ndr_print_lsa_TrustDomainInfoPosixOffset(ndr, "posix_offset", &r->posix_offset);
+       ndr_print_lsa_TrustDomainInfoAuthInfoInternal(ndr, "auth_info", &r->auth_info);
        ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_lsa_TrustDomainInfoInfoAll(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoInfoAll *r)
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoInfoEx2Internal(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoInfoEx2Internal *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->info_ex));
-               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data1));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->forest_trust_length));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_trust_data));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
+               if (r->forest_trust_data) {
+                       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->forest_trust_length));
+                       NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->forest_trust_data, r->forest_trust_length));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoInfoEx2Internal(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoInfoEx2Internal *r)
+{
+       uint32_t _ptr_forest_trust_data;
+       TALLOC_CTX *_mem_save_forest_trust_data_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->info_ex));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->forest_trust_length));
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_data));
+               if (_ptr_forest_trust_data) {
+                       NDR_PULL_ALLOC(ndr, r->forest_trust_data);
+               } else {
+                       r->forest_trust_data = NULL;
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
+               if (r->forest_trust_data) {
+                       _mem_save_forest_trust_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->forest_trust_data, 0);
+                       NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_trust_data));
+                       NDR_PULL_ALLOC_N(ndr, r->forest_trust_data, ndr_get_array_size(ndr, &r->forest_trust_data));
+                       NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->forest_trust_data, ndr_get_array_size(ndr, &r->forest_trust_data)));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_data_0, 0);
+               }
+               if (r->forest_trust_data) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->forest_trust_data, r->forest_trust_length));
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoEx2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoEx2Internal *r)
+{
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoInfoEx2Internal");
+       ndr->depth++;
+       ndr_print_lsa_TrustDomainInfoInfoEx(ndr, "info_ex", &r->info_ex);
+       ndr_print_uint32(ndr, "forest_trust_length", r->forest_trust_length);
+       ndr_print_ptr(ndr, "forest_trust_data", r->forest_trust_data);
+       ndr->depth++;
+       if (r->forest_trust_data) {
+               ndr_print_array_uint8(ndr, "forest_trust_data", r->forest_trust_data, r->forest_trust_length);
+       }
+       ndr->depth--;
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoFullInfo2Internal(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoFullInfo2Internal *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_SCALARS, &r->info));
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfo(ndr, NDR_SCALARS, &r->auth_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
-               NDR_CHECK(ndr_push_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->data1));
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_BUFFERS, &r->info));
                NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfo(ndr, NDR_BUFFERS, &r->auth_info));
        }
        return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoInfoAll(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoInfoAll *r)
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoFullInfo2Internal(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoFullInfo2Internal *r)
 {
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 4));
-               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->info_ex));
-               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_SCALARS, &r->data1));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_SCALARS, &r->info));
                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfo(ndr, NDR_SCALARS, &r->auth_info));
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->info_ex));
-               NDR_CHECK(ndr_pull_lsa_DATA_BUF2(ndr, NDR_BUFFERS, &r->data1));
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_BUFFERS, &r->info));
                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfo(ndr, NDR_BUFFERS, &r->auth_info));
        }
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_lsa_TrustDomainInfoInfoAll(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoAll *r)
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoFullInfo2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfo2Internal *r)
 {
-       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoInfoAll");
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoFullInfo2Internal");
        ndr->depth++;
-       ndr_print_lsa_TrustDomainInfoInfoEx(ndr, "info_ex", &r->info_ex);
-       ndr_print_lsa_DATA_BUF2(ndr, "data1", &r->data1);
+       ndr_print_lsa_TrustDomainInfoInfoEx2Internal(ndr, "info", &r->info);
        ndr_print_lsa_TrustDomainInfoPosixOffset(ndr, "posix_offset", &r->posix_offset);
        ndr_print_lsa_TrustDomainInfoAuthInfo(ndr, "auth_info", &r->auth_info);
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_lsa_TrustDomainInfoSupportedEncTypes(struct ndr_push *ndr, int ndr_flags, const struct lsa_TrustDomainInfoSupportedEncTypes *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_kerb_EncTypes(ndr, NDR_SCALARS, r->enc_types));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_lsa_TrustDomainInfoSupportedEncTypes(struct ndr_pull *ndr, int ndr_flags, struct lsa_TrustDomainInfoSupportedEncTypes *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_kerb_EncTypes(ndr, NDR_SCALARS, &r->enc_types));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_lsa_TrustDomainInfoSupportedEncTypes(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoSupportedEncTypes *r)
+{
+       ndr_print_struct(ndr, name, "lsa_TrustDomainInfoSupportedEncTypes");
+       ndr->depth++;
+       ndr_print_kerb_EncTypes(ndr, "enc_types", r->enc_types);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_lsa_TrustedDomainInfo(struct ndr_push *ndr, int ndr_flags, const union lsa_TrustedDomainInfo *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -3163,6 +3504,10 @@ static enum ndr_err_code ndr_push_lsa_TrustedDomainInfo(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_TrustDomainInfoName(ndr, NDR_SCALARS, &r->name));
                        break; }
 
+                       case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoControllers(ndr, NDR_SCALARS, &r->controllers));
+                       break; }
+
                        case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET: {
                                NDR_CHECK(ndr_push_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
                        break; }
@@ -3187,12 +3532,24 @@ static enum ndr_err_code ndr_push_lsa_TrustedDomainInfo(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfo(ndr, NDR_SCALARS, &r->full_info));
                        break; }
 
-                       case LSA_TRUSTED_DOMAIN_INFO_11: {
-                               NDR_CHECK(ndr_push_lsa_TrustDomainInfo11(ndr, NDR_SCALARS, &r->info11));
+                       case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS, &r->auth_info_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfoInternal(ndr, NDR_SCALARS, &r->full_info_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_SCALARS, &r->info_ex2_internal));
                        break; }
 
-                       case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL: {
-                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoAll(ndr, NDR_SCALARS, &r->info_all));
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfo2Internal(ndr, NDR_SCALARS, &r->full_info2_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES: {
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoSupportedEncTypes(ndr, NDR_SCALARS, &r->enc_types));
                        break; }
 
                        default:
@@ -3206,6 +3563,10 @@ static enum ndr_err_code ndr_push_lsa_TrustedDomainInfo(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_TrustDomainInfoName(ndr, NDR_BUFFERS, &r->name));
                        break;
 
+                       case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS:
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoControllers(ndr, NDR_BUFFERS, &r->controllers));
+                       break;
+
                        case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET:
                        break;
 
@@ -3229,12 +3590,23 @@ static enum ndr_err_code ndr_push_lsa_TrustedDomainInfo(struct ndr_push *ndr, in
                                NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfo(ndr, NDR_BUFFERS, &r->full_info));
                        break;
 
-                       case LSA_TRUSTED_DOMAIN_INFO_11:
-                               NDR_CHECK(ndr_push_lsa_TrustDomainInfo11(ndr, NDR_BUFFERS, &r->info11));
+                       case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL:
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_BUFFERS, &r->auth_info_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL:
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfoInternal(ndr, NDR_BUFFERS, &r->full_info_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL:
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_BUFFERS, &r->info_ex2_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL:
+                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoFullInfo2Internal(ndr, NDR_BUFFERS, &r->full_info2_internal));
                        break;
 
-                       case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL:
-                               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoAll(ndr, NDR_BUFFERS, &r->info_all));
+                       case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES:
                        break;
 
                        default:
@@ -3259,6 +3631,10 @@ static enum ndr_err_code ndr_pull_lsa_TrustedDomainInfo(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoName(ndr, NDR_SCALARS, &r->name));
                        break; }
 
+                       case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoControllers(ndr, NDR_SCALARS, &r->controllers));
+                       break; }
+
                        case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET: {
                                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoPosixOffset(ndr, NDR_SCALARS, &r->posix_offset));
                        break; }
@@ -3283,12 +3659,24 @@ static enum ndr_err_code ndr_pull_lsa_TrustedDomainInfo(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfo(ndr, NDR_SCALARS, &r->full_info));
                        break; }
 
-                       case LSA_TRUSTED_DOMAIN_INFO_11: {
-                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfo11(ndr, NDR_SCALARS, &r->info11));
+                       case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS, &r->auth_info_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfoInternal(ndr, NDR_SCALARS, &r->full_info_internal));
                        break; }
 
-                       case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL: {
-                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoAll(ndr, NDR_SCALARS, &r->info_all));
+                       case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_SCALARS, &r->info_ex2_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfo2Internal(ndr, NDR_SCALARS, &r->full_info2_internal));
+                       break; }
+
+                       case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES: {
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoSupportedEncTypes(ndr, NDR_SCALARS, &r->enc_types));
                        break; }
 
                        default:
@@ -3301,6 +3689,10 @@ static enum ndr_err_code ndr_pull_lsa_TrustedDomainInfo(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoName(ndr, NDR_BUFFERS, &r->name));
                        break;
 
+                       case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS:
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoControllers(ndr, NDR_BUFFERS, &r->controllers));
+                       break;
+
                        case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET:
                        break;
 
@@ -3324,12 +3716,23 @@ static enum ndr_err_code ndr_pull_lsa_TrustedDomainInfo(struct ndr_pull *ndr, in
                                NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfo(ndr, NDR_BUFFERS, &r->full_info));
                        break;
 
-                       case LSA_TRUSTED_DOMAIN_INFO_11:
-                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfo11(ndr, NDR_BUFFERS, &r->info11));
+                       case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL:
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_BUFFERS, &r->auth_info_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL:
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfoInternal(ndr, NDR_BUFFERS, &r->full_info_internal));
                        break;
 
-                       case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL:
-                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoAll(ndr, NDR_BUFFERS, &r->info_all));
+                       case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL:
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx2Internal(ndr, NDR_BUFFERS, &r->info_ex2_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL:
+                               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoFullInfo2Internal(ndr, NDR_BUFFERS, &r->full_info2_internal));
+                       break;
+
+                       case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES:
                        break;
 
                        default:
@@ -3349,6 +3752,10 @@ _PUBLIC_ void ndr_print_lsa_TrustedDomainInfo(struct ndr_print *ndr, const char
                        ndr_print_lsa_TrustDomainInfoName(ndr, "name", &r->name);
                break;
 
+               case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS:
+                       ndr_print_lsa_TrustDomainInfoControllers(ndr, "controllers", &r->controllers);
+               break;
+
                case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET:
                        ndr_print_lsa_TrustDomainInfoPosixOffset(ndr, "posix_offset", &r->posix_offset);
                break;
@@ -3373,12 +3780,24 @@ _PUBLIC_ void ndr_print_lsa_TrustedDomainInfo(struct ndr_print *ndr, const char
                        ndr_print_lsa_TrustDomainInfoFullInfo(ndr, "full_info", &r->full_info);
                break;
 
-               case LSA_TRUSTED_DOMAIN_INFO_11:
-                       ndr_print_lsa_TrustDomainInfo11(ndr, "info11", &r->info11);
+               case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL:
+                       ndr_print_lsa_TrustDomainInfoAuthInfoInternal(ndr, "auth_info_internal", &r->auth_info_internal);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL:
+                       ndr_print_lsa_TrustDomainInfoFullInfoInternal(ndr, "full_info_internal", &r->full_info_internal);
                break;
 
-               case LSA_TRUSTED_DOMAIN_INFO_INFO_ALL:
-                       ndr_print_lsa_TrustDomainInfoInfoAll(ndr, "info_all", &r->info_all);
+               case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL:
+                       ndr_print_lsa_TrustDomainInfoInfoEx2Internal(ndr, "info_ex2_internal", &r->info_ex2_internal);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL:
+                       ndr_print_lsa_TrustDomainInfoFullInfo2Internal(ndr, "full_info2_internal", &r->full_info2_internal);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES:
+                       ndr_print_lsa_TrustDomainInfoSupportedEncTypes(ndr, "enc_types", &r->enc_types);
                break;
 
                default:
@@ -4069,7 +4488,7 @@ static enum ndr_err_code ndr_push_lsa_TranslatedSid3(struct ndr_push *ndr, int n
                NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, r->sid_type));
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sid_index));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->sid) {
@@ -4093,7 +4512,7 @@ static enum ndr_err_code ndr_pull_lsa_TranslatedSid3(struct ndr_pull *ndr, int n
                        r->sid = NULL;
                }
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_index));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
        }
        if (ndr_flags & NDR_BUFFERS) {
                if (r->sid) {
@@ -4118,7 +4537,7 @@ _PUBLIC_ void ndr_print_lsa_TranslatedSid3(struct ndr_print *ndr, const char *na
        }
        ndr->depth--;
        ndr_print_uint32(ndr, "sid_index", r->sid_index);
-       ndr_print_uint32(ndr, "unknown", r->unknown);
+       ndr_print_uint32(ndr, "flags", r->flags);
        ndr->depth--;
 }
 
@@ -7098,6 +7517,16 @@ _PUBLIC_ void ndr_print_lsa_QueryTrustedDomainInfo(struct ndr_print *ndr, const
 static enum ndr_err_code ndr_push_lsa_SetInformationTrustedDomain(struct ndr_push *ndr, int flags, const struct lsa_SetInformationTrustedDomain *r)
 {
        if (flags & NDR_IN) {
+               if (r->in.trustdom_handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.trustdom_handle));
+               NDR_CHECK(ndr_push_lsa_TrustDomInfoEnum(ndr, NDR_SCALARS, r->in.level));
+               if (r->in.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
+               NDR_CHECK(ndr_push_lsa_TrustedDomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
@@ -7107,7 +7536,25 @@ static enum ndr_err_code ndr_push_lsa_SetInformationTrustedDomain(struct ndr_pus
 
 static enum ndr_err_code ndr_pull_lsa_SetInformationTrustedDomain(struct ndr_pull *ndr, int flags, struct lsa_SetInformationTrustedDomain *r)
 {
+       TALLOC_CTX *_mem_save_trustdom_handle_0;
+       TALLOC_CTX *_mem_save_info_0;
        if (flags & NDR_IN) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.trustdom_handle);
+               }
+               _mem_save_trustdom_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.trustdom_handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.trustdom_handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trustdom_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomInfoEnum(ndr, NDR_SCALARS, &r->in.level));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
+               NDR_CHECK(ndr_pull_lsa_TrustedDomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
@@ -7125,6 +7572,16 @@ _PUBLIC_ void ndr_print_lsa_SetInformationTrustedDomain(struct ndr_print *ndr, c
        if (flags & NDR_IN) {
                ndr_print_struct(ndr, "in", "lsa_SetInformationTrustedDomain");
                ndr->depth++;
+               ndr_print_ptr(ndr, "trustdom_handle", r->in.trustdom_handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "trustdom_handle", r->in.trustdom_handle);
+               ndr->depth--;
+               ndr_print_lsa_TrustDomInfoEnum(ndr, "level", r->in.level);
+               ndr_print_ptr(ndr, "info", r->in.info);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
+               ndr_print_lsa_TrustedDomainInfo(ndr, "info", r->in.info);
+               ndr->depth--;
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -8486,6 +8943,20 @@ _PUBLIC_ void ndr_print_lsa_QueryTrustedDomainInfoBySid(struct ndr_print *ndr, c
 static enum ndr_err_code ndr_push_lsa_SetTrustedDomainInfo(struct ndr_push *ndr, int flags, const struct lsa_SetTrustedDomainInfo *r)
 {
        if (flags & NDR_IN) {
+               if (r->in.handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
+               if (r->in.dom_sid == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dom_sid));
+               NDR_CHECK(ndr_push_lsa_TrustDomInfoEnum(ndr, NDR_SCALARS, r->in.level));
+               if (r->in.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
+               NDR_CHECK(ndr_push_lsa_TrustedDomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
@@ -8495,7 +8966,33 @@ static enum ndr_err_code ndr_push_lsa_SetTrustedDomainInfo(struct ndr_push *ndr,
 
 static enum ndr_err_code ndr_pull_lsa_SetTrustedDomainInfo(struct ndr_pull *ndr, int flags, struct lsa_SetTrustedDomainInfo *r)
 {
+       TALLOC_CTX *_mem_save_handle_0;
+       TALLOC_CTX *_mem_save_dom_sid_0;
+       TALLOC_CTX *_mem_save_info_0;
        if (flags & NDR_IN) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.dom_sid);
+               }
+               _mem_save_dom_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_sid, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dom_sid));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_sid_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomInfoEnum(ndr, NDR_SCALARS, &r->in.level));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
+               NDR_CHECK(ndr_pull_lsa_TrustedDomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
        }
        if (flags & NDR_OUT) {
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
@@ -8513,6 +9010,20 @@ _PUBLIC_ void ndr_print_lsa_SetTrustedDomainInfo(struct ndr_print *ndr, const ch
        if (flags & NDR_IN) {
                ndr_print_struct(ndr, "in", "lsa_SetTrustedDomainInfo");
                ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "dom_sid", r->in.dom_sid);
+               ndr->depth++;
+               ndr_print_dom_sid2(ndr, "dom_sid", r->in.dom_sid);
+               ndr->depth--;
+               ndr_print_lsa_TrustDomInfoEnum(ndr, "level", r->in.level);
+               ndr_print_ptr(ndr, "info", r->in.info);
+               ndr->depth++;
+               ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
+               ndr_print_lsa_TrustedDomainInfo(ndr, "info", r->in.info);
+               ndr->depth--;
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -9535,8 +10046,25 @@ _PUBLIC_ void ndr_print_lsa_EnumTrustedDomainsEx(struct ndr_print *ndr, const ch
 static enum ndr_err_code ndr_push_lsa_CreateTrustedDomainEx(struct ndr_push *ndr, int flags, const struct lsa_CreateTrustedDomainEx *r)
 {
        if (flags & NDR_IN) {
+               if (r->in.policy_handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.policy_handle));
+               if (r->in.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               if (r->in.auth_info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.auth_info));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
        }
        if (flags & NDR_OUT) {
+               if (r->out.trustdom_handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.trustdom_handle));
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -9544,9 +10072,46 @@ static enum ndr_err_code ndr_push_lsa_CreateTrustedDomainEx(struct ndr_push *ndr
 
 static enum ndr_err_code ndr_pull_lsa_CreateTrustedDomainEx(struct ndr_pull *ndr, int flags, struct lsa_CreateTrustedDomainEx *r)
 {
+       TALLOC_CTX *_mem_save_policy_handle_0;
+       TALLOC_CTX *_mem_save_info_0;
+       TALLOC_CTX *_mem_save_auth_info_0;
+       TALLOC_CTX *_mem_save_trustdom_handle_0;
        if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.policy_handle);
+               }
+               _mem_save_policy_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.policy_handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.policy_handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.auth_info);
+               }
+               _mem_save_auth_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.auth_info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.auth_info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_info_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
+               NDR_PULL_ALLOC(ndr, r->out.trustdom_handle);
+               ZERO_STRUCTP(r->out.trustdom_handle);
        }
        if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.trustdom_handle);
+               }
+               _mem_save_trustdom_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.trustdom_handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.trustdom_handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trustdom_handle_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -9562,11 +10127,28 @@ _PUBLIC_ void ndr_print_lsa_CreateTrustedDomainEx(struct ndr_print *ndr, const c
        if (flags & NDR_IN) {
                ndr_print_struct(ndr, "in", "lsa_CreateTrustedDomainEx");
                ndr->depth++;
+               ndr_print_ptr(ndr, "policy_handle", r->in.policy_handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "policy_handle", r->in.policy_handle);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "info", r->in.info);
+               ndr->depth++;
+               ndr_print_lsa_TrustDomainInfoInfoEx(ndr, "info", r->in.info);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "auth_info", r->in.auth_info);
+               ndr->depth++;
+               ndr_print_lsa_TrustDomainInfoAuthInfoInternal(ndr, "auth_info", r->in.auth_info);
+               ndr->depth--;
+               ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "lsa_CreateTrustedDomainEx");
                ndr->depth++;
+               ndr_print_ptr(ndr, "trustdom_handle", r->out.trustdom_handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "trustdom_handle", r->out.trustdom_handle);
+               ndr->depth--;
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
                ndr->depth--;
        }
@@ -10178,8 +10760,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_LookupNames2(struct ndr_push *ndr, int f
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.count));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.lookup_options));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_revision));
        }
        if (flags & NDR_OUT) {
                if (r->out.domains == NULL) {
@@ -10252,8 +10834,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames2(struct ndr_pull *ndr, int f
                NDR_PULL_SET_MEM_CTX(ndr, r->in.count, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.count));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.lookup_options));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_revision));
                NDR_PULL_ALLOC(ndr, r->out.domains);
                ZERO_STRUCTP(r->out.domains);
                NDR_PULL_ALLOC(ndr, r->out.sids);
@@ -10337,8 +10919,8 @@ _PUBLIC_ void ndr_print_lsa_LookupNames2(struct ndr_print *ndr, const char *name
                ndr->depth++;
                ndr_print_uint32(ndr, "count", *r->in.count);
                ndr->depth--;
-               ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
-               ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
+               ndr_print_uint32(ndr, "lookup_options", r->in.lookup_options);
+               ndr_print_uint32(ndr, "client_revision", r->in.client_revision);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -10370,8 +10952,25 @@ _PUBLIC_ void ndr_print_lsa_LookupNames2(struct ndr_print *ndr, const char *name
 static enum ndr_err_code ndr_push_lsa_CreateTrustedDomainEx2(struct ndr_push *ndr, int flags, const struct lsa_CreateTrustedDomainEx2 *r)
 {
        if (flags & NDR_IN) {
+               if (r->in.policy_handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.policy_handle));
+               if (r->in.info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               if (r->in.auth_info == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.auth_info));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
        }
        if (flags & NDR_OUT) {
+               if (r->out.trustdom_handle == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.trustdom_handle));
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -10379,9 +10978,46 @@ static enum ndr_err_code ndr_push_lsa_CreateTrustedDomainEx2(struct ndr_push *nd
 
 static enum ndr_err_code ndr_pull_lsa_CreateTrustedDomainEx2(struct ndr_pull *ndr, int flags, struct lsa_CreateTrustedDomainEx2 *r)
 {
+       TALLOC_CTX *_mem_save_policy_handle_0;
+       TALLOC_CTX *_mem_save_info_0;
+       TALLOC_CTX *_mem_save_auth_info_0;
+       TALLOC_CTX *_mem_save_trustdom_handle_0;
        if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.policy_handle);
+               }
+               _mem_save_policy_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.policy_handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.policy_handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.info);
+               }
+               _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.auth_info);
+               }
+               _mem_save_auth_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.auth_info, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_lsa_TrustDomainInfoAuthInfoInternal(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.auth_info));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_info_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
+               NDR_PULL_ALLOC(ndr, r->out.trustdom_handle);
+               ZERO_STRUCTP(r->out.trustdom_handle);
        }
        if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.trustdom_handle);
+               }
+               _mem_save_trustdom_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.trustdom_handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.trustdom_handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trustdom_handle_0, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
        }
        return NDR_ERR_SUCCESS;
@@ -10397,11 +11033,28 @@ _PUBLIC_ void ndr_print_lsa_CreateTrustedDomainEx2(struct ndr_print *ndr, const
        if (flags & NDR_IN) {
                ndr_print_struct(ndr, "in", "lsa_CreateTrustedDomainEx2");
                ndr->depth++;
+               ndr_print_ptr(ndr, "policy_handle", r->in.policy_handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "policy_handle", r->in.policy_handle);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "info", r->in.info);
+               ndr->depth++;
+               ndr_print_lsa_TrustDomainInfoInfoEx(ndr, "info", r->in.info);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "auth_info", r->in.auth_info);
+               ndr->depth++;
+               ndr_print_lsa_TrustDomainInfoAuthInfoInternal(ndr, "auth_info", r->in.auth_info);
+               ndr->depth--;
+               ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
                ndr_print_struct(ndr, "out", "lsa_CreateTrustedDomainEx2");
                ndr->depth++;
+               ndr_print_ptr(ndr, "trustdom_handle", r->out.trustdom_handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "trustdom_handle", r->out.trustdom_handle);
+               ndr->depth--;
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
                ndr->depth--;
        }
@@ -10761,8 +11414,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_LookupNames3(struct ndr_push *ndr, int f
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.count));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.lookup_options));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_revision));
        }
        if (flags & NDR_OUT) {
                if (r->out.domains == NULL) {
@@ -10835,8 +11488,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames3(struct ndr_pull *ndr, int f
                NDR_PULL_SET_MEM_CTX(ndr, r->in.count, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.count));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.lookup_options));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_revision));
                NDR_PULL_ALLOC(ndr, r->out.domains);
                ZERO_STRUCTP(r->out.domains);
                NDR_PULL_ALLOC(ndr, r->out.sids);
@@ -10920,8 +11573,8 @@ _PUBLIC_ void ndr_print_lsa_LookupNames3(struct ndr_print *ndr, const char *name
                ndr->depth++;
                ndr_print_uint32(ndr, "count", *r->in.count);
                ndr->depth--;
-               ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
-               ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
+               ndr_print_uint32(ndr, "lookup_options", r->in.lookup_options);
+               ndr_print_uint32(ndr, "client_revision", r->in.client_revision);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
@@ -11507,8 +12160,8 @@ static enum ndr_err_code ndr_push_lsa_LookupNames4(struct ndr_push *ndr, int fla
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
                }
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.count));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.lookup_options));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_revision));
        }
        if (flags & NDR_OUT) {
                if (r->out.domains == NULL) {
@@ -11573,8 +12226,8 @@ static enum ndr_err_code ndr_pull_lsa_LookupNames4(struct ndr_pull *ndr, int fla
                NDR_PULL_SET_MEM_CTX(ndr, r->in.count, LIBNDR_FLAG_REF_ALLOC);
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.count));
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.lookup_options));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_revision));
                NDR_PULL_ALLOC(ndr, r->out.domains);
                ZERO_STRUCTP(r->out.domains);
                NDR_PULL_ALLOC(ndr, r->out.sids);
@@ -11654,8 +12307,8 @@ _PUBLIC_ void ndr_print_lsa_LookupNames4(struct ndr_print *ndr, const char *name
                ndr->depth++;
                ndr_print_uint32(ndr, "count", *r->in.count);
                ndr->depth--;
-               ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
-               ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
+               ndr_print_uint32(ndr, "lookup_options", r->in.lookup_options);
+               ndr_print_uint32(ndr, "client_revision", r->in.client_revision);
                ndr->depth--;
        }
        if (flags & NDR_OUT) {
index a489b5423ebecb69923c938e025fe8b97a0eead7..61684d1789456ad7dfac69ea023ccc17368a0e96 100644 (file)
@@ -233,16 +233,30 @@ void ndr_print_lsa_PrivilegeSet(struct ndr_print *ndr, const char *name, const s
 void ndr_print_lsa_DATA_BUF(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF *r);
 void ndr_print_lsa_DATA_BUF2(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF2 *r);
 void ndr_print_lsa_TrustDomInfoEnum(struct ndr_print *ndr, const char *name, enum lsa_TrustDomInfoEnum r);
+enum ndr_err_code ndr_push_lsa_TrustDirection(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+enum ndr_err_code ndr_pull_lsa_TrustDirection(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+void ndr_print_lsa_TrustDirection(struct ndr_print *ndr, const char *name, uint32_t r);
+void ndr_print_lsa_TrustType(struct ndr_print *ndr, const char *name, enum lsa_TrustType r);
+enum ndr_err_code ndr_push_lsa_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r);
+enum ndr_err_code ndr_pull_lsa_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
+void ndr_print_lsa_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r);
 void ndr_print_lsa_TrustDomainInfoName(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoName *r);
+void ndr_print_lsa_TrustDomainInfoControllers(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoControllers *r);
 void ndr_print_lsa_TrustDomainInfoPosixOffset(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoPosixOffset *r);
 void ndr_print_lsa_TrustDomainInfoPassword(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoPassword *r);
 void ndr_print_lsa_TrustDomainInfoBasic(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoBasic *r);
 void ndr_print_lsa_TrustDomainInfoInfoEx(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoEx *r);
+enum ndr_err_code ndr_push_lsa_TrustAuthType(struct ndr_push *ndr, int ndr_flags, enum lsa_TrustAuthType r);
+enum ndr_err_code ndr_pull_lsa_TrustAuthType(struct ndr_pull *ndr, int ndr_flags, enum lsa_TrustAuthType *r);
+void ndr_print_lsa_TrustAuthType(struct ndr_print *ndr, const char *name, enum lsa_TrustAuthType r);
 void ndr_print_lsa_TrustDomainInfoBuffer(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoBuffer *r);
 void ndr_print_lsa_TrustDomainInfoAuthInfo(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoAuthInfo *r);
 void ndr_print_lsa_TrustDomainInfoFullInfo(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfo *r);
-void ndr_print_lsa_TrustDomainInfo11(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfo11 *r);
-void ndr_print_lsa_TrustDomainInfoInfoAll(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoAll *r);
+void ndr_print_lsa_TrustDomainInfoAuthInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoAuthInfoInternal *r);
+void ndr_print_lsa_TrustDomainInfoFullInfoInternal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfoInternal *r);
+void ndr_print_lsa_TrustDomainInfoInfoEx2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoInfoEx2Internal *r);
+void ndr_print_lsa_TrustDomainInfoFullInfo2Internal(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoFullInfo2Internal *r);
+void ndr_print_lsa_TrustDomainInfoSupportedEncTypes(struct ndr_print *ndr, const char *name, const struct lsa_TrustDomainInfoSupportedEncTypes *r);
 void ndr_print_lsa_TrustedDomainInfo(struct ndr_print *ndr, const char *name, const union lsa_TrustedDomainInfo *r);
 void ndr_print_lsa_DATA_BUF_PTR(struct ndr_print *ndr, const char *name, const struct lsa_DATA_BUF_PTR *r);
 void ndr_print_lsa_RightSet(struct ndr_print *ndr, const char *name, const struct lsa_RightSet *r);
index 0ad44512a46aa3dd9341e5820a54f4111b09f5c8..b0893623a8b7c51d39e7d46bf3c65be445695769 100644 (file)
@@ -3982,6 +3982,13 @@ static bool api_lsa_CreateTrustedDomainEx(pipes_struct *p)
                NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx, r);
        }
 
+       ZERO_STRUCT(r->out);
+       r->out.trustdom_handle = talloc_zero(r, struct policy_handle);
+       if (r->out.trustdom_handle == NULL) {
+               talloc_free(r);
+               return false;
+       }
+
        r->out.result = _lsa_CreateTrustedDomainEx(p, r);
 
        if (p->rng_fault_state) {
@@ -4600,6 +4607,13 @@ static bool api_lsa_CreateTrustedDomainEx2(pipes_struct *p)
                NDR_PRINT_IN_DEBUG(lsa_CreateTrustedDomainEx2, r);
        }
 
+       ZERO_STRUCT(r->out);
+       r->out.trustdom_handle = talloc_zero(r, struct policy_handle);
+       if (r->out.trustdom_handle == NULL) {
+               talloc_free(r);
+               return false;
+       }
+
        r->out.result = _lsa_CreateTrustedDomainEx2(p, r);
 
        if (p->rng_fault_state) {