root/librpc/gen_ndr/ndr_netlogon.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. ndr_push_netr_UasInfo
  2. ndr_pull_netr_UasInfo
  3. ndr_print_netr_UasInfo
  4. ndr_push_netr_UasLogoffInfo
  5. ndr_pull_netr_UasLogoffInfo
  6. ndr_print_netr_UasLogoffInfo
  7. ndr_push_netr_AcctLockStr
  8. ndr_pull_netr_AcctLockStr
  9. ndr_print_netr_AcctLockStr
  10. ndr_push_netr_LogonParameterControl
  11. ndr_pull_netr_LogonParameterControl
  12. ndr_print_netr_LogonParameterControl
  13. ndr_push_netr_IdentityInfo
  14. ndr_pull_netr_IdentityInfo
  15. ndr_print_netr_IdentityInfo
  16. ndr_push_netr_PasswordInfo
  17. ndr_pull_netr_PasswordInfo
  18. ndr_print_netr_PasswordInfo
  19. ndr_push_netr_ChallengeResponse
  20. ndr_pull_netr_ChallengeResponse
  21. ndr_print_netr_ChallengeResponse
  22. ndr_push_netr_NetworkInfo
  23. ndr_pull_netr_NetworkInfo
  24. ndr_print_netr_NetworkInfo
  25. ndr_push_netr_GenericInfo
  26. ndr_pull_netr_GenericInfo
  27. ndr_print_netr_GenericInfo
  28. ndr_push_netr_LogonInfoClass
  29. ndr_pull_netr_LogonInfoClass
  30. ndr_print_netr_LogonInfoClass
  31. ndr_push_netr_LogonLevel
  32. ndr_pull_netr_LogonLevel
  33. ndr_print_netr_LogonLevel
  34. ndr_push_netr_UserSessionKey
  35. ndr_pull_netr_UserSessionKey
  36. ndr_print_netr_UserSessionKey
  37. ndr_push_netr_LMSessionKey
  38. ndr_pull_netr_LMSessionKey
  39. ndr_print_netr_LMSessionKey
  40. ndr_push_netr_UserFlags
  41. ndr_pull_netr_UserFlags
  42. ndr_print_netr_UserFlags
  43. ndr_push_netr_SamBaseInfo
  44. ndr_pull_netr_SamBaseInfo
  45. ndr_print_netr_SamBaseInfo
  46. ndr_push_netr_SamInfo2
  47. ndr_pull_netr_SamInfo2
  48. ndr_print_netr_SamInfo2
  49. ndr_push_netr_SidAttr
  50. ndr_pull_netr_SidAttr
  51. ndr_print_netr_SidAttr
  52. ndr_push_netr_SamInfo3
  53. ndr_pull_netr_SamInfo3
  54. ndr_print_netr_SamInfo3
  55. ndr_push_netr_SamInfo6
  56. ndr_pull_netr_SamInfo6
  57. ndr_print_netr_SamInfo6
  58. ndr_push_netr_PacInfo
  59. ndr_pull_netr_PacInfo
  60. ndr_print_netr_PacInfo
  61. ndr_push_netr_GenericInfo2
  62. ndr_pull_netr_GenericInfo2
  63. ndr_print_netr_GenericInfo2
  64. ndr_push_netr_Validation
  65. ndr_pull_netr_Validation
  66. ndr_print_netr_Validation
  67. ndr_push_netr_Credential
  68. ndr_pull_netr_Credential
  69. ndr_print_netr_Credential
  70. ndr_push_netr_Authenticator
  71. ndr_pull_netr_Authenticator
  72. ndr_print_netr_Authenticator
  73. ndr_push_netr_DELTA_DELETE_USER
  74. ndr_pull_netr_DELTA_DELETE_USER
  75. ndr_print_netr_DELTA_DELETE_USER
  76. ndr_push_netr_USER_KEY16
  77. ndr_pull_netr_USER_KEY16
  78. ndr_print_netr_USER_KEY16
  79. ndr_push_netr_PasswordHistory
  80. ndr_pull_netr_PasswordHistory
  81. ndr_print_netr_PasswordHistory
  82. ndr_push_netr_USER_KEYS2
  83. ndr_pull_netr_USER_KEYS2
  84. ndr_print_netr_USER_KEYS2
  85. ndr_push_netr_USER_KEY_UNION
  86. ndr_pull_netr_USER_KEY_UNION
  87. ndr_print_netr_USER_KEY_UNION
  88. ndr_push_netr_USER_KEYS
  89. ndr_pull_netr_USER_KEYS
  90. ndr_print_netr_USER_KEYS
  91. ndr_push_netr_USER_PRIVATE_INFO
  92. ndr_pull_netr_USER_PRIVATE_INFO
  93. ndr_print_netr_USER_PRIVATE_INFO
  94. ndr_push_netr_DELTA_USER
  95. ndr_pull_netr_DELTA_USER
  96. ndr_print_netr_DELTA_USER
  97. ndr_push_netr_DELTA_DOMAIN
  98. ndr_pull_netr_DELTA_DOMAIN
  99. ndr_print_netr_DELTA_DOMAIN
  100. ndr_push_netr_DELTA_GROUP
  101. ndr_pull_netr_DELTA_GROUP
  102. ndr_print_netr_DELTA_GROUP
  103. ndr_push_netr_DELTA_RENAME
  104. ndr_pull_netr_DELTA_RENAME
  105. ndr_print_netr_DELTA_RENAME
  106. ndr_push_netr_DELTA_GROUP_MEMBER
  107. ndr_pull_netr_DELTA_GROUP_MEMBER
  108. ndr_print_netr_DELTA_GROUP_MEMBER
  109. ndr_push_netr_DELTA_ALIAS
  110. ndr_pull_netr_DELTA_ALIAS
  111. ndr_print_netr_DELTA_ALIAS
  112. ndr_push_netr_DELTA_ALIAS_MEMBER
  113. ndr_pull_netr_DELTA_ALIAS_MEMBER
  114. ndr_print_netr_DELTA_ALIAS_MEMBER
  115. ndr_push_netr_QUOTA_LIMITS
  116. ndr_pull_netr_QUOTA_LIMITS
  117. ndr_print_netr_QUOTA_LIMITS
  118. ndr_push_netr_DELTA_POLICY
  119. ndr_pull_netr_DELTA_POLICY
  120. ndr_print_netr_DELTA_POLICY
  121. ndr_push_netr_DELTA_TRUSTED_DOMAIN
  122. ndr_pull_netr_DELTA_TRUSTED_DOMAIN
  123. ndr_print_netr_DELTA_TRUSTED_DOMAIN
  124. ndr_push_netr_DELTA_DELETE_TRUST
  125. ndr_pull_netr_DELTA_DELETE_TRUST
  126. ndr_print_netr_DELTA_DELETE_TRUST
  127. ndr_push_netr_DELTA_ACCOUNT
  128. ndr_pull_netr_DELTA_ACCOUNT
  129. ndr_print_netr_DELTA_ACCOUNT
  130. ndr_push_netr_DELTA_DELETE_ACCOUNT
  131. ndr_pull_netr_DELTA_DELETE_ACCOUNT
  132. ndr_print_netr_DELTA_DELETE_ACCOUNT
  133. ndr_push_netr_DELTA_DELETE_SECRET
  134. ndr_pull_netr_DELTA_DELETE_SECRET
  135. ndr_print_netr_DELTA_DELETE_SECRET
  136. ndr_push_netr_CIPHER_VALUE
  137. ndr_pull_netr_CIPHER_VALUE
  138. ndr_print_netr_CIPHER_VALUE
  139. ndr_push_netr_DELTA_SECRET
  140. ndr_pull_netr_DELTA_SECRET
  141. ndr_print_netr_DELTA_SECRET
  142. ndr_push_netr_DeltaEnum
  143. ndr_pull_netr_DeltaEnum
  144. ndr_print_netr_DeltaEnum
  145. ndr_push_netr_DELTA_UNION
  146. ndr_pull_netr_DELTA_UNION
  147. ndr_print_netr_DELTA_UNION
  148. ndr_push_netr_DELTA_ID_UNION
  149. ndr_pull_netr_DELTA_ID_UNION
  150. ndr_print_netr_DELTA_ID_UNION
  151. ndr_push_netr_DELTA_ENUM
  152. ndr_pull_netr_DELTA_ENUM
  153. ndr_print_netr_DELTA_ENUM
  154. ndr_push_netr_DELTA_ENUM_ARRAY
  155. ndr_pull_netr_DELTA_ENUM_ARRAY
  156. ndr_print_netr_DELTA_ENUM_ARRAY
  157. ndr_push_netr_UAS_INFO_0
  158. ndr_pull_netr_UAS_INFO_0
  159. ndr_print_netr_UAS_INFO_0
  160. ndr_push_netr_AccountBuffer
  161. ndr_pull_netr_AccountBuffer
  162. ndr_print_netr_AccountBuffer
  163. ndr_push_netr_InfoFlags
  164. ndr_pull_netr_InfoFlags
  165. ndr_print_netr_InfoFlags
  166. ndr_push_netr_NETLOGON_INFO_1
  167. ndr_pull_netr_NETLOGON_INFO_1
  168. ndr_print_netr_NETLOGON_INFO_1
  169. ndr_push_netr_NETLOGON_INFO_2
  170. ndr_pull_netr_NETLOGON_INFO_2
  171. ndr_print_netr_NETLOGON_INFO_2
  172. ndr_push_netr_NETLOGON_INFO_3
  173. ndr_pull_netr_NETLOGON_INFO_3
  174. ndr_print_netr_NETLOGON_INFO_3
  175. ndr_push_netr_NETLOGON_INFO_4
  176. ndr_pull_netr_NETLOGON_INFO_4
  177. ndr_print_netr_NETLOGON_INFO_4
  178. ndr_push_netr_CONTROL_QUERY_INFORMATION
  179. ndr_pull_netr_CONTROL_QUERY_INFORMATION
  180. ndr_print_netr_CONTROL_QUERY_INFORMATION
  181. ndr_push_netr_LogonControlCode
  182. ndr_pull_netr_LogonControlCode
  183. ndr_print_netr_LogonControlCode
  184. ndr_push_netr_CONTROL_DATA_INFORMATION
  185. ndr_pull_netr_CONTROL_DATA_INFORMATION
  186. ndr_print_netr_CONTROL_DATA_INFORMATION
  187. ndr_push_netr_NegotiateFlags
  188. ndr_pull_netr_NegotiateFlags
  189. ndr_print_netr_NegotiateFlags
  190. ndr_push_netr_ChangeLogFlags
  191. ndr_pull_netr_ChangeLogFlags
  192. ndr_print_netr_ChangeLogFlags
  193. ndr_push_netr_ChangeLogObject
  194. ndr_pull_netr_ChangeLogObject
  195. ndr_print_netr_ChangeLogObject
  196. ndr_push_netr_ChangeLogEntry
  197. ndr_pull_netr_ChangeLogEntry
  198. ndr_print_netr_ChangeLogEntry
  199. ndr_size_netr_ChangeLogEntry
  200. ndr_push_netr_Blob
  201. ndr_pull_netr_Blob
  202. ndr_print_netr_Blob
  203. ndr_push_netr_DsRGetDCName_flags
  204. ndr_pull_netr_DsRGetDCName_flags
  205. ndr_print_netr_DsRGetDCName_flags
  206. ndr_push_netr_DsRGetDCNameInfo_AddressType
  207. ndr_pull_netr_DsRGetDCNameInfo_AddressType
  208. ndr_print_netr_DsRGetDCNameInfo_AddressType
  209. ndr_push_netr_DsR_DcFlags
  210. ndr_pull_netr_DsR_DcFlags
  211. ndr_print_netr_DsR_DcFlags
  212. ndr_push_netr_DsRGetDCNameInfo
  213. ndr_pull_netr_DsRGetDCNameInfo
  214. ndr_print_netr_DsRGetDCNameInfo
  215. ndr_push_netr_Capabilities
  216. ndr_pull_netr_Capabilities
  217. ndr_print_netr_Capabilities
  218. ndr_push_netr_TrustFlags
  219. ndr_pull_netr_TrustFlags
  220. ndr_print_netr_TrustFlags
  221. ndr_push_netr_DomainQuery1
  222. ndr_pull_netr_DomainQuery1
  223. ndr_print_netr_DomainQuery1
  224. ndr_push_netr_DomainQuery
  225. ndr_pull_netr_DomainQuery
  226. ndr_print_netr_DomainQuery
  227. ndr_push_netr_trust_extension
  228. ndr_pull_netr_trust_extension
  229. ndr_print_netr_trust_extension
  230. ndr_push_netr_trust_extension_container
  231. ndr_pull_netr_trust_extension_container
  232. ndr_print_netr_trust_extension_container
  233. ndr_push_netr_DomainTrustInfo
  234. ndr_pull_netr_DomainTrustInfo
  235. ndr_print_netr_DomainTrustInfo
  236. ndr_push_netr_LsaPolicyInfo
  237. ndr_pull_netr_LsaPolicyInfo
  238. ndr_print_netr_LsaPolicyInfo
  239. ndr_push_netr_WorkstationFlags
  240. ndr_pull_netr_WorkstationFlags
  241. ndr_print_netr_WorkstationFlags
  242. ndr_push_netr_DomainInfo1
  243. ndr_pull_netr_DomainInfo1
  244. ndr_print_netr_DomainInfo1
  245. ndr_push_netr_DomainInfo
  246. ndr_pull_netr_DomainInfo
  247. ndr_print_netr_DomainInfo
  248. ndr_push_netr_CryptPassword
  249. ndr_pull_netr_CryptPassword
  250. ndr_print_netr_CryptPassword
  251. ndr_push_netr_DsRAddressToSitenamesWCtr
  252. ndr_pull_netr_DsRAddressToSitenamesWCtr
  253. ndr_print_netr_DsRAddressToSitenamesWCtr
  254. ndr_push_netr_DsRAddress
  255. ndr_pull_netr_DsRAddress
  256. ndr_print_netr_DsRAddress
  257. ndr_push_netr_TrustType
  258. ndr_pull_netr_TrustType
  259. ndr_print_netr_TrustType
  260. ndr_push_netr_TrustAttributes
  261. ndr_pull_netr_TrustAttributes
  262. ndr_print_netr_TrustAttributes
  263. ndr_push_netr_DomainTrust
  264. ndr_pull_netr_DomainTrust
  265. ndr_print_netr_DomainTrust
  266. ndr_push_netr_DomainTrustList
  267. ndr_pull_netr_DomainTrustList
  268. ndr_print_netr_DomainTrustList
  269. ndr_push_netr_DsRAddressToSitenamesExWCtr
  270. ndr_pull_netr_DsRAddressToSitenamesExWCtr
  271. ndr_print_netr_DsRAddressToSitenamesExWCtr
  272. ndr_push_DcSitesCtr
  273. ndr_pull_DcSitesCtr
  274. ndr_print_DcSitesCtr
  275. ndr_push_netr_TrustInfo
  276. ndr_pull_netr_TrustInfo
  277. ndr_print_netr_TrustInfo
  278. ndr_push_netr_LogonUasLogon
  279. ndr_pull_netr_LogonUasLogon
  280. ndr_print_netr_LogonUasLogon
  281. ndr_push_netr_LogonUasLogoff
  282. ndr_pull_netr_LogonUasLogoff
  283. ndr_print_netr_LogonUasLogoff
  284. ndr_push_netr_LogonSamLogon
  285. ndr_pull_netr_LogonSamLogon
  286. ndr_print_netr_LogonSamLogon
  287. ndr_push_netr_LogonSamLogoff
  288. ndr_pull_netr_LogonSamLogoff
  289. ndr_print_netr_LogonSamLogoff
  290. ndr_push_netr_ServerReqChallenge
  291. ndr_pull_netr_ServerReqChallenge
  292. ndr_print_netr_ServerReqChallenge
  293. ndr_push_netr_ServerAuthenticate
  294. ndr_pull_netr_ServerAuthenticate
  295. ndr_print_netr_ServerAuthenticate
  296. ndr_push_netr_ServerPasswordSet
  297. ndr_pull_netr_ServerPasswordSet
  298. ndr_print_netr_ServerPasswordSet
  299. ndr_push_netr_DatabaseDeltas
  300. ndr_pull_netr_DatabaseDeltas
  301. ndr_print_netr_DatabaseDeltas
  302. ndr_push_netr_DatabaseSync
  303. ndr_pull_netr_DatabaseSync
  304. ndr_print_netr_DatabaseSync
  305. ndr_push_netr_AccountDeltas
  306. ndr_pull_netr_AccountDeltas
  307. ndr_print_netr_AccountDeltas
  308. ndr_push_netr_AccountSync
  309. ndr_pull_netr_AccountSync
  310. ndr_print_netr_AccountSync
  311. ndr_push_netr_GetDcName
  312. ndr_pull_netr_GetDcName
  313. ndr_print_netr_GetDcName
  314. ndr_push_netr_LogonControl
  315. ndr_pull_netr_LogonControl
  316. ndr_print_netr_LogonControl
  317. ndr_push_netr_GetAnyDCName
  318. ndr_pull_netr_GetAnyDCName
  319. ndr_print_netr_GetAnyDCName
  320. ndr_push_netr_LogonControl2
  321. ndr_pull_netr_LogonControl2
  322. ndr_print_netr_LogonControl2
  323. ndr_push_netr_ServerAuthenticate2
  324. ndr_pull_netr_ServerAuthenticate2
  325. ndr_print_netr_ServerAuthenticate2
  326. ndr_push_netr_DatabaseSync2
  327. ndr_pull_netr_DatabaseSync2
  328. ndr_print_netr_DatabaseSync2
  329. ndr_push_netr_DatabaseRedo
  330. ndr_pull_netr_DatabaseRedo
  331. ndr_print_netr_DatabaseRedo
  332. ndr_push_netr_LogonControl2Ex
  333. ndr_pull_netr_LogonControl2Ex
  334. ndr_print_netr_LogonControl2Ex
  335. ndr_push_netr_NetrEnumerateTrustedDomains
  336. ndr_pull_netr_NetrEnumerateTrustedDomains
  337. ndr_print_netr_NetrEnumerateTrustedDomains
  338. ndr_push_netr_DsRGetDCName
  339. ndr_pull_netr_DsRGetDCName
  340. ndr_print_netr_DsRGetDCName
  341. ndr_push_netr_LogonGetCapabilities
  342. ndr_pull_netr_LogonGetCapabilities
  343. ndr_print_netr_LogonGetCapabilities
  344. ndr_push_netr_NETRLOGONSETSERVICEBITS
  345. ndr_pull_netr_NETRLOGONSETSERVICEBITS
  346. ndr_print_netr_NETRLOGONSETSERVICEBITS
  347. ndr_push_netr_LogonGetTrustRid
  348. ndr_pull_netr_LogonGetTrustRid
  349. ndr_print_netr_LogonGetTrustRid
  350. ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
  351. ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
  352. ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
  353. ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
  354. ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
  355. ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
  356. ndr_push_netr_ServerAuthenticate3
  357. ndr_pull_netr_ServerAuthenticate3
  358. ndr_print_netr_ServerAuthenticate3
  359. ndr_push_netr_DsRGetDCNameEx
  360. ndr_pull_netr_DsRGetDCNameEx
  361. ndr_print_netr_DsRGetDCNameEx
  362. ndr_push_netr_DsRGetSiteName
  363. ndr_pull_netr_DsRGetSiteName
  364. ndr_print_netr_DsRGetSiteName
  365. ndr_push_netr_LogonGetDomainInfo
  366. ndr_pull_netr_LogonGetDomainInfo
  367. ndr_print_netr_LogonGetDomainInfo
  368. ndr_push_netr_ServerPasswordSet2
  369. ndr_pull_netr_ServerPasswordSet2
  370. ndr_print_netr_ServerPasswordSet2
  371. ndr_push_netr_ServerPasswordGet
  372. ndr_pull_netr_ServerPasswordGet
  373. ndr_print_netr_ServerPasswordGet
  374. ndr_push_netr_NETRLOGONSENDTOSAM
  375. ndr_pull_netr_NETRLOGONSENDTOSAM
  376. ndr_print_netr_NETRLOGONSENDTOSAM
  377. ndr_push_netr_DsRAddressToSitenamesW
  378. ndr_pull_netr_DsRAddressToSitenamesW
  379. ndr_print_netr_DsRAddressToSitenamesW
  380. ndr_push_netr_DsRGetDCNameEx2
  381. ndr_pull_netr_DsRGetDCNameEx2
  382. ndr_print_netr_DsRGetDCNameEx2
  383. ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
  384. ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
  385. ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
  386. ndr_push_netr_NetrEnumerateTrustedDomainsEx
  387. ndr_pull_netr_NetrEnumerateTrustedDomainsEx
  388. ndr_print_netr_NetrEnumerateTrustedDomainsEx
  389. ndr_push_netr_DsRAddressToSitenamesExW
  390. ndr_pull_netr_DsRAddressToSitenamesExW
  391. ndr_print_netr_DsRAddressToSitenamesExW
  392. ndr_push_netr_DsrGetDcSiteCoverageW
  393. ndr_pull_netr_DsrGetDcSiteCoverageW
  394. ndr_print_netr_DsrGetDcSiteCoverageW
  395. ndr_push_netr_LogonSamLogonEx
  396. ndr_pull_netr_LogonSamLogonEx
  397. ndr_print_netr_LogonSamLogonEx
  398. ndr_push_netr_DsrEnumerateDomainTrusts
  399. ndr_pull_netr_DsrEnumerateDomainTrusts
  400. ndr_print_netr_DsrEnumerateDomainTrusts
  401. ndr_push_netr_DsrDeregisterDNSHostRecords
  402. ndr_pull_netr_DsrDeregisterDNSHostRecords
  403. ndr_print_netr_DsrDeregisterDNSHostRecords
  404. ndr_push_netr_ServerTrustPasswordsGet
  405. ndr_pull_netr_ServerTrustPasswordsGet
  406. ndr_print_netr_ServerTrustPasswordsGet
  407. ndr_push_netr_DsRGetForestTrustInformation
  408. ndr_pull_netr_DsRGetForestTrustInformation
  409. ndr_print_netr_DsRGetForestTrustInformation
  410. ndr_push_netr_GetForestTrustInformation
  411. ndr_pull_netr_GetForestTrustInformation
  412. ndr_print_netr_GetForestTrustInformation
  413. ndr_push_netr_LogonSamLogonWithFlags
  414. ndr_pull_netr_LogonSamLogonWithFlags
  415. ndr_print_netr_LogonSamLogonWithFlags
  416. ndr_push_netr_ServerGetTrustInfo
  417. ndr_pull_netr_ServerGetTrustInfo
  418. ndr_print_netr_ServerGetTrustInfo

   1 /* parser auto-generated by pidl */
   2 
   3 #include "includes.h"
   4 #include "../librpc/gen_ndr/ndr_netlogon.h"
   5 
   6 #include "librpc/gen_ndr/ndr_misc.h"
   7 #include "librpc/gen_ndr/ndr_lsa.h"
   8 #include "librpc/gen_ndr/ndr_samr.h"
   9 #include "librpc/gen_ndr/ndr_security.h"
  10 #include "librpc/gen_ndr/ndr_nbt.h"
  11 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
  12 {
  13         if (ndr_flags & NDR_SCALARS) {
  14                 NDR_CHECK(ndr_push_align(ndr, 4));
  15                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
  16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
  17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
  18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
  19                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
  20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
  21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
  22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
  23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
  24                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
  25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
  26                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
  27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
  28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
  29                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
  30                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
  31         }
  32         if (ndr_flags & NDR_BUFFERS) {
  33                 if (r->account_name) {
  34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
  35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
  36                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
  37                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
  38                 }
  39                 if (r->computer) {
  40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
  41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
  42                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
  43                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
  44                 }
  45                 if (r->domain) {
  46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
  47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
  48                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
  49                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
  50                 }
  51                 if (r->script_path) {
  52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
  53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
  54                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
  55                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
  56                 }
  57         }
  58         return NDR_ERR_SUCCESS;
  59 }
  60 
  61 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
  62 {
  63         uint32_t _ptr_account_name;
  64         TALLOC_CTX *_mem_save_account_name_0;
  65         uint32_t _ptr_computer;
  66         TALLOC_CTX *_mem_save_computer_0;
  67         uint32_t _ptr_domain;
  68         TALLOC_CTX *_mem_save_domain_0;
  69         uint32_t _ptr_script_path;
  70         TALLOC_CTX *_mem_save_script_path_0;
  71         if (ndr_flags & NDR_SCALARS) {
  72                 NDR_CHECK(ndr_pull_align(ndr, 4));
  73                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
  74                 if (_ptr_account_name) {
  75                         NDR_PULL_ALLOC(ndr, r->account_name);
  76                 } else {
  77                         r->account_name = NULL;
  78                 }
  79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
  80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
  81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
  82                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
  83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
  84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
  85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
  86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
  87                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
  88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
  89                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
  90                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
  91                 if (_ptr_computer) {
  92                         NDR_PULL_ALLOC(ndr, r->computer);
  93                 } else {
  94                         r->computer = NULL;
  95                 }
  96                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
  97                 if (_ptr_domain) {
  98                         NDR_PULL_ALLOC(ndr, r->domain);
  99                 } else {
 100                         r->domain = NULL;
 101                 }
 102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
 103                 if (_ptr_script_path) {
 104                         NDR_PULL_ALLOC(ndr, r->script_path);
 105                 } else {
 106                         r->script_path = NULL;
 107                 }
 108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
 109         }
 110         if (ndr_flags & NDR_BUFFERS) {
 111                 if (r->account_name) {
 112                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 113                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
 114                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
 115                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
 116                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
 117                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
 118                         }
 119                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
 120                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
 121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
 122                 }
 123                 if (r->computer) {
 124                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
 125                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
 126                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
 127                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
 128                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
 129                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
 130                         }
 131                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
 132                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
 133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
 134                 }
 135                 if (r->domain) {
 136                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 137                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 138                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 139                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 140                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 141                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
 142                         }
 143                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 144                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 145                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 146                 }
 147                 if (r->script_path) {
 148                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
 149                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
 150                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
 151                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
 152                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
 153                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
 154                         }
 155                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
 156                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
 157                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
 158                 }
 159         }
 160         return NDR_ERR_SUCCESS;
 161 }
 162 
 163 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 164 {
 165         ndr_print_struct(ndr, name, "netr_UasInfo");
 166         ndr->depth++;
 167         ndr_print_ptr(ndr, "account_name", r->account_name);
 168         ndr->depth++;
 169         if (r->account_name) {
 170                 ndr_print_string(ndr, "account_name", r->account_name);
 171         }
 172         ndr->depth--;
 173         ndr_print_uint32(ndr, "priv", r->priv);
 174         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
 175         ndr_print_uint32(ndr, "logon_count", r->logon_count);
 176         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
 177         ndr_print_time_t(ndr, "last_logon", r->last_logon);
 178         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
 179         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
 180         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
 181         ndr_print_uint32(ndr, "password_age", r->password_age);
 182         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
 183         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
 184         ndr_print_ptr(ndr, "computer", r->computer);
 185         ndr->depth++;
 186         if (r->computer) {
 187                 ndr_print_string(ndr, "computer", r->computer);
 188         }
 189         ndr->depth--;
 190         ndr_print_ptr(ndr, "domain", r->domain);
 191         ndr->depth++;
 192         if (r->domain) {
 193                 ndr_print_string(ndr, "domain", r->domain);
 194         }
 195         ndr->depth--;
 196         ndr_print_ptr(ndr, "script_path", r->script_path);
 197         ndr->depth++;
 198         if (r->script_path) {
 199                 ndr_print_string(ndr, "script_path", r->script_path);
 200         }
 201         ndr->depth--;
 202         ndr_print_uint32(ndr, "unknown", r->unknown);
 203         ndr->depth--;
 204 }
 205 
 206 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 207 {
 208         if (ndr_flags & NDR_SCALARS) {
 209                 NDR_CHECK(ndr_push_align(ndr, 4));
 210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
 211                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
 212         }
 213         if (ndr_flags & NDR_BUFFERS) {
 214         }
 215         return NDR_ERR_SUCCESS;
 216 }
 217 
 218 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 219 {
 220         if (ndr_flags & NDR_SCALARS) {
 221                 NDR_CHECK(ndr_pull_align(ndr, 4));
 222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
 223                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
 224         }
 225         if (ndr_flags & NDR_BUFFERS) {
 226         }
 227         return NDR_ERR_SUCCESS;
 228 }
 229 
 230 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 231 {
 232         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
 233         ndr->depth++;
 234         ndr_print_uint32(ndr, "duration", r->duration);
 235         ndr_print_uint16(ndr, "logon_count", r->logon_count);
 236         ndr->depth--;
 237 }
 238 
 239 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
     /* [<][>][^][v][top][bottom][index][help] */
 240 {
 241         if (ndr_flags & NDR_SCALARS) {
 242                 NDR_CHECK(ndr_push_align(ndr, 4));
 243                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
 244                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
 245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
 246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
 247         }
 248         if (ndr_flags & NDR_BUFFERS) {
 249         }
 250         return NDR_ERR_SUCCESS;
 251 }
 252 
 253 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
     /* [<][>][^][v][top][bottom][index][help] */
 254 {
 255         if (ndr_flags & NDR_SCALARS) {
 256                 NDR_CHECK(ndr_pull_align(ndr, 4));
 257                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
 258                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
 259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
 260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
 261         }
 262         if (ndr_flags & NDR_BUFFERS) {
 263         }
 264         return NDR_ERR_SUCCESS;
 265 }
 266 
 267 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
     /* [<][>][^][v][top][bottom][index][help] */
 268 {
 269         ndr_print_struct(ndr, name, "netr_AcctLockStr");
 270         ndr->depth++;
 271         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
 272         ndr_print_udlong(ndr, "reset_count", r->reset_count);
 273         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
 274         ndr_print_uint32(ndr, "dummy", r->dummy);
 275         ndr->depth--;
 276 }
 277 
 278 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
 279 {
 280         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 281         return NDR_ERR_SUCCESS;
 282 }
 283 
 284 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
 285 {
 286         uint32_t v;
 287         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 288         *r = v;
 289         return NDR_ERR_SUCCESS;
 290 }
 291 
 292 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
 293 {
 294         ndr_print_uint32(ndr, name, r);
 295         ndr->depth++;
 296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
 297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
 298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
 299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
 300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
 301         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
 302         ndr->depth--;
 303 }
 304 
 305 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 306 {
 307         if (ndr_flags & NDR_SCALARS) {
 308                 NDR_CHECK(ndr_push_align(ndr, 4));
 309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 310                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
 311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
 312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
 313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
 315         }
 316         if (ndr_flags & NDR_BUFFERS) {
 317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
 320         }
 321         return NDR_ERR_SUCCESS;
 322 }
 323 
 324 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 325 {
 326         if (ndr_flags & NDR_SCALARS) {
 327                 NDR_CHECK(ndr_pull_align(ndr, 4));
 328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 329                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
 330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
 331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
 332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 333                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
 334         }
 335         if (ndr_flags & NDR_BUFFERS) {
 336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
 339         }
 340         return NDR_ERR_SUCCESS;
 341 }
 342 
 343 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 344 {
 345         ndr_print_struct(ndr, name, "netr_IdentityInfo");
 346         ndr->depth++;
 347         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
 348         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
 349         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
 350         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
 351         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
 352         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
 353         ndr->depth--;
 354 }
 355 
 356 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 357 {
 358         if (ndr_flags & NDR_SCALARS) {
 359                 NDR_CHECK(ndr_push_align(ndr, 4));
 360                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 362                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 363         }
 364         if (ndr_flags & NDR_BUFFERS) {
 365                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 366         }
 367         return NDR_ERR_SUCCESS;
 368 }
 369 
 370 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 371 {
 372         if (ndr_flags & NDR_SCALARS) {
 373                 NDR_CHECK(ndr_pull_align(ndr, 4));
 374                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 375                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 376                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 377         }
 378         if (ndr_flags & NDR_BUFFERS) {
 379                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 380         }
 381         return NDR_ERR_SUCCESS;
 382 }
 383 
 384 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 385 {
 386         ndr_print_struct(ndr, name, "netr_PasswordInfo");
 387         ndr->depth++;
 388         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 389         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
 390         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
 391         ndr->depth--;
 392 }
 393 
 394 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
     /* [<][>][^][v][top][bottom][index][help] */
 395 {
 396         {
 397                 uint32_t _flags_save_STRUCT = ndr->flags;
 398                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 399                 if (ndr_flags & NDR_SCALARS) {
 400                         NDR_CHECK(ndr_push_align(ndr, 4));
 401                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 402                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 403                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 404                 }
 405                 if (ndr_flags & NDR_BUFFERS) {
 406                         if (r->data) {
 407                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 408                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 409                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 410                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 411                         }
 412                 }
 413                 ndr->flags = _flags_save_STRUCT;
 414         }
 415         return NDR_ERR_SUCCESS;
 416 }
 417 
 418 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
     /* [<][>][^][v][top][bottom][index][help] */
 419 {
 420         uint32_t _ptr_data;
 421         TALLOC_CTX *_mem_save_data_0;
 422         {
 423                 uint32_t _flags_save_STRUCT = ndr->flags;
 424                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 425                 if (ndr_flags & NDR_SCALARS) {
 426                         NDR_CHECK(ndr_pull_align(ndr, 4));
 427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
 428                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 429                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 430                         if (_ptr_data) {
 431                                 NDR_PULL_ALLOC(ndr, r->data);
 432                         } else {
 433                                 r->data = NULL;
 434                         }
 435                 }
 436                 if (ndr_flags & NDR_BUFFERS) {
 437                         if (r->data) {
 438                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 439                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 440                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 441                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
 442                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
 443                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
 444                                 }
 445                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 446                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
 447                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 448                         }
 449                         if (r->data) {
 450                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 451                         }
 452                         if (r->data) {
 453                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
 454                         }
 455                 }
 456                 ndr->flags = _flags_save_STRUCT;
 457         }
 458         return NDR_ERR_SUCCESS;
 459 }
 460 
 461 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
     /* [<][>][^][v][top][bottom][index][help] */
 462 {
 463         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
 464         {
 465                 uint32_t _flags_save_STRUCT = ndr->flags;
 466                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 467                 ndr->depth++;
 468                 ndr_print_uint16(ndr, "length", r->length);
 469                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
 470                 ndr_print_ptr(ndr, "data", r->data);
 471                 ndr->depth++;
 472                 if (r->data) {
 473                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
 474                 }
 475                 ndr->depth--;
 476                 ndr->depth--;
 477                 ndr->flags = _flags_save_STRUCT;
 478         }
 479 }
 480 
 481 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 482 {
 483         {
 484                 uint32_t _flags_save_STRUCT = ndr->flags;
 485                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 486                 if (ndr_flags & NDR_SCALARS) {
 487                         NDR_CHECK(ndr_push_align(ndr, 4));
 488                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 489                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
 490                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
 491                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
 492                 }
 493                 if (ndr_flags & NDR_BUFFERS) {
 494                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 495                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
 496                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
 497                 }
 498                 ndr->flags = _flags_save_STRUCT;
 499         }
 500         return NDR_ERR_SUCCESS;
 501 }
 502 
 503 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 504 {
 505         {
 506                 uint32_t _flags_save_STRUCT = ndr->flags;
 507                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 508                 if (ndr_flags & NDR_SCALARS) {
 509                         NDR_CHECK(ndr_pull_align(ndr, 4));
 510                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 511                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
 512                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
 513                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
 514                 }
 515                 if (ndr_flags & NDR_BUFFERS) {
 516                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 517                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
 518                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
 519                 }
 520                 ndr->flags = _flags_save_STRUCT;
 521         }
 522         return NDR_ERR_SUCCESS;
 523 }
 524 
 525 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 526 {
 527         ndr_print_struct(ndr, name, "netr_NetworkInfo");
 528         {
 529                 uint32_t _flags_save_STRUCT = ndr->flags;
 530                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 531                 ndr->depth++;
 532                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 533                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
 534                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
 535                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
 536                 ndr->depth--;
 537                 ndr->flags = _flags_save_STRUCT;
 538         }
 539 }
 540 
 541 static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 542 {
 543         {
 544                 uint32_t _flags_save_STRUCT = ndr->flags;
 545                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 546                 if (ndr_flags & NDR_SCALARS) {
 547                         NDR_CHECK(ndr_push_align(ndr, 4));
 548                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 549                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
 550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 551                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 552                 }
 553                 if (ndr_flags & NDR_BUFFERS) {
 554                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 555                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
 556                         if (r->data) {
 557                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 558                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 559                         }
 560                 }
 561                 ndr->flags = _flags_save_STRUCT;
 562         }
 563         return NDR_ERR_SUCCESS;
 564 }
 565 
 566 static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 567 {
 568         uint32_t _ptr_data;
 569         TALLOC_CTX *_mem_save_data_0;
 570         {
 571                 uint32_t _flags_save_STRUCT = ndr->flags;
 572                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 573                 if (ndr_flags & NDR_SCALARS) {
 574                         NDR_CHECK(ndr_pull_align(ndr, 4));
 575                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 576                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
 577                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 578                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 579                         if (_ptr_data) {
 580                                 NDR_PULL_ALLOC(ndr, r->data);
 581                         } else {
 582                                 r->data = NULL;
 583                         }
 584                 }
 585                 if (ndr_flags & NDR_BUFFERS) {
 586                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 587                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
 588                         if (r->data) {
 589                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 590                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 591                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 592                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 593                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
 594                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 595                         }
 596                         if (r->data) {
 597                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 598                         }
 599                 }
 600                 ndr->flags = _flags_save_STRUCT;
 601         }
 602         return NDR_ERR_SUCCESS;
 603 }
 604 
 605 _PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
 606 {
 607         ndr_print_struct(ndr, name, "netr_GenericInfo");
 608         {
 609                 uint32_t _flags_save_STRUCT = ndr->flags;
 610                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 611                 ndr->depth++;
 612                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 613                 ndr_print_lsa_String(ndr, "package_name", &r->package_name);
 614                 ndr_print_uint32(ndr, "length", r->length);
 615                 ndr_print_ptr(ndr, "data", r->data);
 616                 ndr->depth++;
 617                 if (r->data) {
 618                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
 619                 }
 620                 ndr->depth--;
 621                 ndr->depth--;
 622                 ndr->flags = _flags_save_STRUCT;
 623         }
 624 }
 625 
 626 static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
     /* [<][>][^][v][top][bottom][index][help] */
 627 {
 628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
 629         return NDR_ERR_SUCCESS;
 630 }
 631 
 632 static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
     /* [<][>][^][v][top][bottom][index][help] */
 633 {
 634         uint16_t v;
 635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
 636         *r = v;
 637         return NDR_ERR_SUCCESS;
 638 }
 639 
 640 _PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
     /* [<][>][^][v][top][bottom][index][help] */
 641 {
 642         const char *val = NULL;
 643 
 644         switch (r) {
 645                 case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
 646                 case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
 647                 case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
 648                 case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
 649                 case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
 650                 case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
 651                 case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
 652         }
 653         ndr_print_enum(ndr, name, "ENUM", val, r);
 654 }
 655 
 656 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
     /* [<][>][^][v][top][bottom][index][help] */
 657 {
 658         if (ndr_flags & NDR_SCALARS) {
 659                 int level = ndr_push_get_switch_value(ndr, r);
 660                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
 661                 switch (level) {
 662                         case NetlogonInteractiveInformation: {
 663                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 664                         break; }
 665 
 666                         case NetlogonNetworkInformation: {
 667                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
 668                         break; }
 669 
 670                         case NetlogonServiceInformation: {
 671                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 672                         break; }
 673 
 674                         case NetlogonGenericInformation: {
 675                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
 676                         break; }
 677 
 678                         case NetlogonInteractiveTransitiveInformation: {
 679                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 680                         break; }
 681 
 682                         case NetlogonNetworkTransitiveInformation: {
 683                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
 684                         break; }
 685 
 686                         case NetlogonServiceTransitiveInformation: {
 687                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 688                         break; }
 689 
 690                         default:
 691                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
 692                 }
 693         }
 694         if (ndr_flags & NDR_BUFFERS) {
 695                 int level = ndr_push_get_switch_value(ndr, r);
 696                 switch (level) {
 697                         case NetlogonInteractiveInformation:
 698                                 if (r->password) {
 699                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 700                                 }
 701                         break;
 702 
 703                         case NetlogonNetworkInformation:
 704                                 if (r->network) {
 705                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 706                                 }
 707                         break;
 708 
 709                         case NetlogonServiceInformation:
 710                                 if (r->password) {
 711                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 712                                 }
 713                         break;
 714 
 715                         case NetlogonGenericInformation:
 716                                 if (r->generic) {
 717                                         NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 718                                 }
 719                         break;
 720 
 721                         case NetlogonInteractiveTransitiveInformation:
 722                                 if (r->password) {
 723                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 724                                 }
 725                         break;
 726 
 727                         case NetlogonNetworkTransitiveInformation:
 728                                 if (r->network) {
 729                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 730                                 }
 731                         break;
 732 
 733                         case NetlogonServiceTransitiveInformation:
 734                                 if (r->password) {
 735                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 736                                 }
 737                         break;
 738 
 739                         default:
 740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
 741                 }
 742         }
 743         return NDR_ERR_SUCCESS;
 744 }
 745 
 746 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
     /* [<][>][^][v][top][bottom][index][help] */
 747 {
 748         int level;
 749         uint16_t _level;
 750         TALLOC_CTX *_mem_save_password_0;
 751         TALLOC_CTX *_mem_save_network_0;
 752         TALLOC_CTX *_mem_save_generic_0;
 753         level = ndr_pull_get_switch_value(ndr, r);
 754         if (ndr_flags & NDR_SCALARS) {
 755                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
 756                 if (_level != level) {
 757                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
 758                 }
 759                 switch (level) {
 760                         case NetlogonInteractiveInformation: {
 761                                 uint32_t _ptr_password;
 762                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 763                                 if (_ptr_password) {
 764                                         NDR_PULL_ALLOC(ndr, r->password);
 765                                 } else {
 766                                         r->password = NULL;
 767                                 }
 768                         break; }
 769 
 770                         case NetlogonNetworkInformation: {
 771                                 uint32_t _ptr_network;
 772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
 773                                 if (_ptr_network) {
 774                                         NDR_PULL_ALLOC(ndr, r->network);
 775                                 } else {
 776                                         r->network = NULL;
 777                                 }
 778                         break; }
 779 
 780                         case NetlogonServiceInformation: {
 781                                 uint32_t _ptr_password;
 782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 783                                 if (_ptr_password) {
 784                                         NDR_PULL_ALLOC(ndr, r->password);
 785                                 } else {
 786                                         r->password = NULL;
 787                                 }
 788                         break; }
 789 
 790                         case NetlogonGenericInformation: {
 791                                 uint32_t _ptr_generic;
 792                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
 793                                 if (_ptr_generic) {
 794                                         NDR_PULL_ALLOC(ndr, r->generic);
 795                                 } else {
 796                                         r->generic = NULL;
 797                                 }
 798                         break; }
 799 
 800                         case NetlogonInteractiveTransitiveInformation: {
 801                                 uint32_t _ptr_password;
 802                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 803                                 if (_ptr_password) {
 804                                         NDR_PULL_ALLOC(ndr, r->password);
 805                                 } else {
 806                                         r->password = NULL;
 807                                 }
 808                         break; }
 809 
 810                         case NetlogonNetworkTransitiveInformation: {
 811                                 uint32_t _ptr_network;
 812                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
 813                                 if (_ptr_network) {
 814                                         NDR_PULL_ALLOC(ndr, r->network);
 815                                 } else {
 816                                         r->network = NULL;
 817                                 }
 818                         break; }
 819 
 820                         case NetlogonServiceTransitiveInformation: {
 821                                 uint32_t _ptr_password;
 822                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 823                                 if (_ptr_password) {
 824                                         NDR_PULL_ALLOC(ndr, r->password);
 825                                 } else {
 826                                         r->password = NULL;
 827                                 }
 828                         break; }
 829 
 830                         default:
 831                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
 832                 }
 833         }
 834         if (ndr_flags & NDR_BUFFERS) {
 835                 switch (level) {
 836                         case NetlogonInteractiveInformation:
 837                                 if (r->password) {
 838                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 839                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 840                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 841                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 842                                 }
 843                         break;
 844 
 845                         case NetlogonNetworkInformation:
 846                                 if (r->network) {
 847                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
 848                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
 849                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 850                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
 851                                 }
 852                         break;
 853 
 854                         case NetlogonServiceInformation:
 855                                 if (r->password) {
 856                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 857                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 858                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 860                                 }
 861                         break;
 862 
 863                         case NetlogonGenericInformation:
 864                                 if (r->generic) {
 865                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
 866                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
 867                                         NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 868                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
 869                                 }
 870                         break;
 871 
 872                         case NetlogonInteractiveTransitiveInformation:
 873                                 if (r->password) {
 874                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 875                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 876                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 877                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 878                                 }
 879                         break;
 880 
 881                         case NetlogonNetworkTransitiveInformation:
 882                                 if (r->network) {
 883                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
 884                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
 885                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 886                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
 887                                 }
 888                         break;
 889 
 890                         case NetlogonServiceTransitiveInformation:
 891                                 if (r->password) {
 892                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 893                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 894                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 895                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 896                                 }
 897                         break;
 898 
 899                         default:
 900                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
 901                 }
 902         }
 903         return NDR_ERR_SUCCESS;
 904 }
 905 
 906 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
     /* [<][>][^][v][top][bottom][index][help] */
 907 {
 908         int level;
 909         level = ndr_print_get_switch_value(ndr, r);
 910         ndr_print_union(ndr, name, level, "netr_LogonLevel");
 911         switch (level) {
 912                 case NetlogonInteractiveInformation:
 913                         ndr_print_ptr(ndr, "password", r->password);
 914                         ndr->depth++;
 915                         if (r->password) {
 916                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 917                         }
 918                         ndr->depth--;
 919                 break;
 920 
 921                 case NetlogonNetworkInformation:
 922                         ndr_print_ptr(ndr, "network", r->network);
 923                         ndr->depth++;
 924                         if (r->network) {
 925                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
 926                         }
 927                         ndr->depth--;
 928                 break;
 929 
 930                 case NetlogonServiceInformation:
 931                         ndr_print_ptr(ndr, "password", r->password);
 932                         ndr->depth++;
 933                         if (r->password) {
 934                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 935                         }
 936                         ndr->depth--;
 937                 break;
 938 
 939                 case NetlogonGenericInformation:
 940                         ndr_print_ptr(ndr, "generic", r->generic);
 941                         ndr->depth++;
 942                         if (r->generic) {
 943                                 ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
 944                         }
 945                         ndr->depth--;
 946                 break;
 947 
 948                 case NetlogonInteractiveTransitiveInformation:
 949                         ndr_print_ptr(ndr, "password", r->password);
 950                         ndr->depth++;
 951                         if (r->password) {
 952                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 953                         }
 954                         ndr->depth--;
 955                 break;
 956 
 957                 case NetlogonNetworkTransitiveInformation:
 958                         ndr_print_ptr(ndr, "network", r->network);
 959                         ndr->depth++;
 960                         if (r->network) {
 961                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
 962                         }
 963                         ndr->depth--;
 964                 break;
 965 
 966                 case NetlogonServiceTransitiveInformation:
 967                         ndr_print_ptr(ndr, "password", r->password);
 968                         ndr->depth++;
 969                         if (r->password) {
 970                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 971                         }
 972                         ndr->depth--;
 973                 break;
 974 
 975                 default:
 976                         ndr_print_bad_level(ndr, name, level);
 977         }
 978 }
 979 
 980 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
 981 {
 982         {
 983                 uint32_t _flags_save_STRUCT = ndr->flags;
 984                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 985                 if (ndr_flags & NDR_SCALARS) {
 986                         NDR_CHECK(ndr_push_align(ndr, 1));
 987                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
 988                 }
 989                 if (ndr_flags & NDR_BUFFERS) {
 990                 }
 991                 ndr->flags = _flags_save_STRUCT;
 992         }
 993         return NDR_ERR_SUCCESS;
 994 }
 995 
 996 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
 997 {
 998         {
 999                 uint32_t _flags_save_STRUCT = ndr->flags;
1000                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1001                 if (ndr_flags & NDR_SCALARS) {
1002                         NDR_CHECK(ndr_pull_align(ndr, 1));
1003                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1004                 }
1005                 if (ndr_flags & NDR_BUFFERS) {
1006                 }
1007                 ndr->flags = _flags_save_STRUCT;
1008         }
1009         return NDR_ERR_SUCCESS;
1010 }
1011 
1012 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
1013 {
1014         ndr_print_struct(ndr, name, "netr_UserSessionKey");
1015         {
1016                 uint32_t _flags_save_STRUCT = ndr->flags;
1017                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1018                 ndr->depth++;
1019                 ndr_print_array_uint8(ndr, "key", r->key, 16);
1020                 ndr->depth--;
1021                 ndr->flags = _flags_save_STRUCT;
1022         }
1023 }
1024 
1025 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
1026 {
1027         {
1028                 uint32_t _flags_save_STRUCT = ndr->flags;
1029                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1030                 if (ndr_flags & NDR_SCALARS) {
1031                         NDR_CHECK(ndr_push_align(ndr, 1));
1032                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1033                 }
1034                 if (ndr_flags & NDR_BUFFERS) {
1035                 }
1036                 ndr->flags = _flags_save_STRUCT;
1037         }
1038         return NDR_ERR_SUCCESS;
1039 }
1040 
1041 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
1042 {
1043         {
1044                 uint32_t _flags_save_STRUCT = ndr->flags;
1045                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1046                 if (ndr_flags & NDR_SCALARS) {
1047                         NDR_CHECK(ndr_pull_align(ndr, 1));
1048                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1049                 }
1050                 if (ndr_flags & NDR_BUFFERS) {
1051                 }
1052                 ndr->flags = _flags_save_STRUCT;
1053         }
1054         return NDR_ERR_SUCCESS;
1055 }
1056 
1057 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
     /* [<][>][^][v][top][bottom][index][help] */
1058 {
1059         ndr_print_struct(ndr, name, "netr_LMSessionKey");
1060         {
1061                 uint32_t _flags_save_STRUCT = ndr->flags;
1062                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1063                 ndr->depth++;
1064                 ndr_print_array_uint8(ndr, "key", r->key, 8);
1065                 ndr->depth--;
1066                 ndr->flags = _flags_save_STRUCT;
1067         }
1068 }
1069 
1070 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
1071 {
1072         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1073         return NDR_ERR_SUCCESS;
1074 }
1075 
1076 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
1077 {
1078         uint32_t v;
1079         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1080         *r = v;
1081         return NDR_ERR_SUCCESS;
1082 }
1083 
1084 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
1085 {
1086         ndr_print_uint32(ndr, name, r);
1087         ndr->depth++;
1088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
1089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
1090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
1091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
1092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
1093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
1094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
1095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
1096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
1097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
1098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
1099         ndr->depth--;
1100 }
1101 
1102 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1103 {
1104         uint32_t cntr_unknown_0;
1105         if (ndr_flags & NDR_SCALARS) {
1106                 NDR_CHECK(ndr_push_align(ndr, 4));
1107                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1108                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1109                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
1110                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1111                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1112                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1113                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1118                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1120                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1122                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1123                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1124                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
1125                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1126                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1127                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1128                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1129                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1130                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1131                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1133                 }
1134         }
1135         if (ndr_flags & NDR_BUFFERS) {
1136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1138                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1139                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1140                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1141                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1142                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1143                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1144                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1145                 if (r->domain_sid) {
1146                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1147                 }
1148         }
1149         return NDR_ERR_SUCCESS;
1150 }
1151 
1152 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1153 {
1154         uint32_t _ptr_domain_sid;
1155         TALLOC_CTX *_mem_save_domain_sid_0;
1156         uint32_t cntr_unknown_0;
1157         if (ndr_flags & NDR_SCALARS) {
1158                 NDR_CHECK(ndr_pull_align(ndr, 4));
1159                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1160                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1161                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1162                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1163                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1164                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1165                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1166                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1167                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1168                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1169                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1170                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1171                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1172                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1174                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1175                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1176                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1177                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1178                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1179                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1181                 if (_ptr_domain_sid) {
1182                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1183                 } else {
1184                         r->domain_sid = NULL;
1185                 }
1186                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1187                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1188                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1189                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1190                 }
1191         }
1192         if (ndr_flags & NDR_BUFFERS) {
1193                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1194                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1195                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1196                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1197                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1199                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1200                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1201                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1202                 if (r->domain_sid) {
1203                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1204                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1205                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1207                 }
1208         }
1209         return NDR_ERR_SUCCESS;
1210 }
1211 
1212 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1213 {
1214         uint32_t cntr_unknown_0;
1215         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1216         ndr->depth++;
1217         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1218         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1219         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1220         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1221         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1222         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1223         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1224         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1225         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1226         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1227         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1228         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1229         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1230         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1231         ndr_print_uint32(ndr, "rid", r->rid);
1232         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1233         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1234         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1235         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1236         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1237         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1238         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1239         ndr->depth++;
1240         if (r->domain_sid) {
1241                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1242         }
1243         ndr->depth--;
1244         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1245         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1246         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1247         ndr->depth++;
1248         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1249                 char *idx_0=NULL;
1250                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1251                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1252                         free(idx_0);
1253                 }
1254         }
1255         ndr->depth--;
1256         ndr->depth--;
1257 }
1258 
1259 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1260 {
1261         if (ndr_flags & NDR_SCALARS) {
1262                 NDR_CHECK(ndr_push_align(ndr, 4));
1263                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1264         }
1265         if (ndr_flags & NDR_BUFFERS) {
1266                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1267         }
1268         return NDR_ERR_SUCCESS;
1269 }
1270 
1271 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1272 {
1273         if (ndr_flags & NDR_SCALARS) {
1274                 NDR_CHECK(ndr_pull_align(ndr, 4));
1275                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1276         }
1277         if (ndr_flags & NDR_BUFFERS) {
1278                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1279         }
1280         return NDR_ERR_SUCCESS;
1281 }
1282 
1283 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1284 {
1285         ndr_print_struct(ndr, name, "netr_SamInfo2");
1286         ndr->depth++;
1287         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1288         ndr->depth--;
1289 }
1290 
1291 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
     /* [<][>][^][v][top][bottom][index][help] */
1292 {
1293         if (ndr_flags & NDR_SCALARS) {
1294                 NDR_CHECK(ndr_push_align(ndr, 4));
1295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1296                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1297         }
1298         if (ndr_flags & NDR_BUFFERS) {
1299                 if (r->sid) {
1300                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1301                 }
1302         }
1303         return NDR_ERR_SUCCESS;
1304 }
1305 
1306 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
     /* [<][>][^][v][top][bottom][index][help] */
1307 {
1308         uint32_t _ptr_sid;
1309         TALLOC_CTX *_mem_save_sid_0;
1310         if (ndr_flags & NDR_SCALARS) {
1311                 NDR_CHECK(ndr_pull_align(ndr, 4));
1312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1313                 if (_ptr_sid) {
1314                         NDR_PULL_ALLOC(ndr, r->sid);
1315                 } else {
1316                         r->sid = NULL;
1317                 }
1318                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1319         }
1320         if (ndr_flags & NDR_BUFFERS) {
1321                 if (r->sid) {
1322                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1323                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1324                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1326                 }
1327         }
1328         return NDR_ERR_SUCCESS;
1329 }
1330 
1331 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
     /* [<][>][^][v][top][bottom][index][help] */
1332 {
1333         ndr_print_struct(ndr, name, "netr_SidAttr");
1334         ndr->depth++;
1335         ndr_print_ptr(ndr, "sid", r->sid);
1336         ndr->depth++;
1337         if (r->sid) {
1338                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1339         }
1340         ndr->depth--;
1341         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1342         ndr->depth--;
1343 }
1344 
1345 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1346 {
1347         uint32_t cntr_sids_1;
1348         if (ndr_flags & NDR_SCALARS) {
1349                 NDR_CHECK(ndr_push_align(ndr, 4));
1350                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1352                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1353         }
1354         if (ndr_flags & NDR_BUFFERS) {
1355                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1356                 if (r->sids) {
1357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1358                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1359                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1360                         }
1361                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1362                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1363                         }
1364                 }
1365         }
1366         return NDR_ERR_SUCCESS;
1367 }
1368 
1369 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1370 {
1371         uint32_t _ptr_sids;
1372         uint32_t cntr_sids_1;
1373         TALLOC_CTX *_mem_save_sids_0;
1374         TALLOC_CTX *_mem_save_sids_1;
1375         if (ndr_flags & NDR_SCALARS) {
1376                 NDR_CHECK(ndr_pull_align(ndr, 4));
1377                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1380                 if (_ptr_sids) {
1381                         NDR_PULL_ALLOC(ndr, r->sids);
1382                 } else {
1383                         r->sids = NULL;
1384                 }
1385         }
1386         if (ndr_flags & NDR_BUFFERS) {
1387                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1388                 if (r->sids) {
1389                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1391                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1392                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1393                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1394                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1395                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1396                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1397                         }
1398                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1399                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1400                         }
1401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1403                 }
1404                 if (r->sids) {
1405                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1406                 }
1407         }
1408         return NDR_ERR_SUCCESS;
1409 }
1410 
1411 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1412 {
1413         uint32_t cntr_sids_1;
1414         ndr_print_struct(ndr, name, "netr_SamInfo3");
1415         ndr->depth++;
1416         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1417         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1418         ndr_print_ptr(ndr, "sids", r->sids);
1419         ndr->depth++;
1420         if (r->sids) {
1421                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1422                 ndr->depth++;
1423                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1424                         char *idx_1=NULL;
1425                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1426                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1427                                 free(idx_1);
1428                         }
1429                 }
1430                 ndr->depth--;
1431         }
1432         ndr->depth--;
1433         ndr->depth--;
1434 }
1435 
1436 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1437 {
1438         uint32_t cntr_sids_1;
1439         uint32_t cntr_unknown4_0;
1440         if (ndr_flags & NDR_SCALARS) {
1441                 NDR_CHECK(ndr_push_align(ndr, 4));
1442                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1444                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1447                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1449                 }
1450         }
1451         if (ndr_flags & NDR_BUFFERS) {
1452                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1453                 if (r->sids) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1455                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1456                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1457                         }
1458                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1459                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1460                         }
1461                 }
1462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1464         }
1465         return NDR_ERR_SUCCESS;
1466 }
1467 
1468 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1469 {
1470         uint32_t _ptr_sids;
1471         uint32_t cntr_sids_1;
1472         TALLOC_CTX *_mem_save_sids_0;
1473         TALLOC_CTX *_mem_save_sids_1;
1474         uint32_t cntr_unknown4_0;
1475         if (ndr_flags & NDR_SCALARS) {
1476                 NDR_CHECK(ndr_pull_align(ndr, 4));
1477                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1478                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1479                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1480                 if (_ptr_sids) {
1481                         NDR_PULL_ALLOC(ndr, r->sids);
1482                 } else {
1483                         r->sids = NULL;
1484                 }
1485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1487                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1488                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1489                 }
1490         }
1491         if (ndr_flags & NDR_BUFFERS) {
1492                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1493                 if (r->sids) {
1494                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1496                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1497                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1498                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1499                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1500                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1501                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1502                         }
1503                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1504                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1505                         }
1506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1511                 if (r->sids) {
1512                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1513                 }
1514         }
1515         return NDR_ERR_SUCCESS;
1516 }
1517 
1518 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1519 {
1520         uint32_t cntr_sids_1;
1521         uint32_t cntr_unknown4_0;
1522         ndr_print_struct(ndr, name, "netr_SamInfo6");
1523         ndr->depth++;
1524         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1525         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1526         ndr_print_ptr(ndr, "sids", r->sids);
1527         ndr->depth++;
1528         if (r->sids) {
1529                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1530                 ndr->depth++;
1531                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1532                         char *idx_1=NULL;
1533                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1534                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1535                                 free(idx_1);
1536                         }
1537                 }
1538                 ndr->depth--;
1539         }
1540         ndr->depth--;
1541         ndr_print_lsa_String(ndr, "forest", &r->forest);
1542         ndr_print_lsa_String(ndr, "principle", &r->principle);
1543         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1544         ndr->depth++;
1545         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1546                 char *idx_0=NULL;
1547                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1548                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1549                         free(idx_0);
1550                 }
1551         }
1552         ndr->depth--;
1553         ndr->depth--;
1554 }
1555 
1556 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1557 {
1558         uint32_t cntr_expansionroom_0;
1559         if (ndr_flags & NDR_SCALARS) {
1560                 NDR_CHECK(ndr_push_align(ndr, 4));
1561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1564                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1568                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1569                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1570                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1571                 }
1572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1576         }
1577         if (ndr_flags & NDR_BUFFERS) {
1578                 if (r->pac) {
1579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1580                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1581                 }
1582                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1583                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1584                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1585                 if (r->auth) {
1586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1587                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1588                 }
1589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1593         }
1594         return NDR_ERR_SUCCESS;
1595 }
1596 
1597 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1598 {
1599         uint32_t _ptr_pac;
1600         TALLOC_CTX *_mem_save_pac_0;
1601         uint32_t _ptr_auth;
1602         TALLOC_CTX *_mem_save_auth_0;
1603         uint32_t cntr_expansionroom_0;
1604         if (ndr_flags & NDR_SCALARS) {
1605                 NDR_CHECK(ndr_pull_align(ndr, 4));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1607                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1608                 if (_ptr_pac) {
1609                         NDR_PULL_ALLOC(ndr, r->pac);
1610                 } else {
1611                         r->pac = NULL;
1612                 }
1613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1616                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1617                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1618                 if (_ptr_auth) {
1619                         NDR_PULL_ALLOC(ndr, r->auth);
1620                 } else {
1621                         r->auth = NULL;
1622                 }
1623                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1624                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1625                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1626                 }
1627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1631         }
1632         if (ndr_flags & NDR_BUFFERS) {
1633                 if (r->pac) {
1634                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1635                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1636                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1637                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1638                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1640                 }
1641                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1644                 if (r->auth) {
1645                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1646                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1647                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1648                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1649                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1650                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1651                 }
1652                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1653                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1654                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1655                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1656                 if (r->pac) {
1657                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1658                 }
1659                 if (r->auth) {
1660                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1661                 }
1662         }
1663         return NDR_ERR_SUCCESS;
1664 }
1665 
1666 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
1667 {
1668         uint32_t cntr_expansionroom_0;
1669         ndr_print_struct(ndr, name, "netr_PacInfo");
1670         ndr->depth++;
1671         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1672         ndr_print_ptr(ndr, "pac", r->pac);
1673         ndr->depth++;
1674         if (r->pac) {
1675                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1676         }
1677         ndr->depth--;
1678         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1679         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1680         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1681         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1682         ndr_print_ptr(ndr, "auth", r->auth);
1683         ndr->depth++;
1684         if (r->auth) {
1685                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1686         }
1687         ndr->depth--;
1688         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1689         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1690         ndr->depth++;
1691         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1692                 char *idx_0=NULL;
1693                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1694                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1695                         free(idx_0);
1696                 }
1697         }
1698         ndr->depth--;
1699         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1700         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1701         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1702         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1703         ndr->depth--;
1704 }
1705 
1706 static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1707 {
1708         {
1709                 uint32_t _flags_save_STRUCT = ndr->flags;
1710                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1711                 if (ndr_flags & NDR_SCALARS) {
1712                         NDR_CHECK(ndr_push_align(ndr, 4));
1713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1714                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
1715                 }
1716                 if (ndr_flags & NDR_BUFFERS) {
1717                         if (r->data) {
1718                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1719                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
1720                         }
1721                 }
1722                 ndr->flags = _flags_save_STRUCT;
1723         }
1724         return NDR_ERR_SUCCESS;
1725 }
1726 
1727 static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1728 {
1729         uint32_t _ptr_data;
1730         TALLOC_CTX *_mem_save_data_0;
1731         {
1732                 uint32_t _flags_save_STRUCT = ndr->flags;
1733                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1734                 if (ndr_flags & NDR_SCALARS) {
1735                         NDR_CHECK(ndr_pull_align(ndr, 4));
1736                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1737                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1738                         if (_ptr_data) {
1739                                 NDR_PULL_ALLOC(ndr, r->data);
1740                         } else {
1741                                 r->data = NULL;
1742                         }
1743                 }
1744                 if (ndr_flags & NDR_BUFFERS) {
1745                         if (r->data) {
1746                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1747                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
1748                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
1749                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
1750                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
1751                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1752                         }
1753                         if (r->data) {
1754                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
1755                         }
1756                 }
1757                 ndr->flags = _flags_save_STRUCT;
1758         }
1759         return NDR_ERR_SUCCESS;
1760 }
1761 
1762 _PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
1763 {
1764         ndr_print_struct(ndr, name, "netr_GenericInfo2");
1765         {
1766                 uint32_t _flags_save_STRUCT = ndr->flags;
1767                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1768                 ndr->depth++;
1769                 ndr_print_uint32(ndr, "length", r->length);
1770                 ndr_print_ptr(ndr, "data", r->data);
1771                 ndr->depth++;
1772                 if (r->data) {
1773                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
1774                 }
1775                 ndr->depth--;
1776                 ndr->depth--;
1777                 ndr->flags = _flags_save_STRUCT;
1778         }
1779 }
1780 
1781 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
     /* [<][>][^][v][top][bottom][index][help] */
1782 {
1783         if (ndr_flags & NDR_SCALARS) {
1784                 int level = ndr_push_get_switch_value(ndr, r);
1785                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1786                 switch (level) {
1787                         case NetlogonValidationSamInfo: {
1788                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1789                         break; }
1790 
1791                         case NetlogonValidationSamInfo2: {
1792                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1793                         break; }
1794 
1795                         case 4: {
1796                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1797                         break; }
1798 
1799                         case NetlogonValidationGenericInfo2: {
1800                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
1801                         break; }
1802 
1803                         case NetlogonValidationSamInfo4: {
1804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1805                         break; }
1806 
1807                         default:
1808                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1809                 }
1810         }
1811         if (ndr_flags & NDR_BUFFERS) {
1812                 int level = ndr_push_get_switch_value(ndr, r);
1813                 switch (level) {
1814                         case NetlogonValidationSamInfo:
1815                                 if (r->sam2) {
1816                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1817                                 }
1818                         break;
1819 
1820                         case NetlogonValidationSamInfo2:
1821                                 if (r->sam3) {
1822                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1823                                 }
1824                         break;
1825 
1826                         case 4:
1827                                 if (r->pac) {
1828                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1829                                 }
1830                         break;
1831 
1832                         case NetlogonValidationGenericInfo2:
1833                                 if (r->generic) {
1834                                         NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1835                                 }
1836                         break;
1837 
1838                         case NetlogonValidationSamInfo4:
1839                                 if (r->sam6) {
1840                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1841                                 }
1842                         break;
1843 
1844                         default:
1845                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1846                 }
1847         }
1848         return NDR_ERR_SUCCESS;
1849 }
1850 
1851 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
     /* [<][>][^][v][top][bottom][index][help] */
1852 {
1853         int level;
1854         uint16_t _level;
1855         TALLOC_CTX *_mem_save_sam2_0;
1856         TALLOC_CTX *_mem_save_sam3_0;
1857         TALLOC_CTX *_mem_save_pac_0;
1858         TALLOC_CTX *_mem_save_generic_0;
1859         TALLOC_CTX *_mem_save_sam6_0;
1860         level = ndr_pull_get_switch_value(ndr, r);
1861         if (ndr_flags & NDR_SCALARS) {
1862                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1863                 if (_level != level) {
1864                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1865                 }
1866                 switch (level) {
1867                         case NetlogonValidationSamInfo: {
1868                                 uint32_t _ptr_sam2;
1869                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1870                                 if (_ptr_sam2) {
1871                                         NDR_PULL_ALLOC(ndr, r->sam2);
1872                                 } else {
1873                                         r->sam2 = NULL;
1874                                 }
1875                         break; }
1876 
1877                         case NetlogonValidationSamInfo2: {
1878                                 uint32_t _ptr_sam3;
1879                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1880                                 if (_ptr_sam3) {
1881                                         NDR_PULL_ALLOC(ndr, r->sam3);
1882                                 } else {
1883                                         r->sam3 = NULL;
1884                                 }
1885                         break; }
1886 
1887                         case 4: {
1888                                 uint32_t _ptr_pac;
1889                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1890                                 if (_ptr_pac) {
1891                                         NDR_PULL_ALLOC(ndr, r->pac);
1892                                 } else {
1893                                         r->pac = NULL;
1894                                 }
1895                         break; }
1896 
1897                         case NetlogonValidationGenericInfo2: {
1898                                 uint32_t _ptr_generic;
1899                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
1900                                 if (_ptr_generic) {
1901                                         NDR_PULL_ALLOC(ndr, r->generic);
1902                                 } else {
1903                                         r->generic = NULL;
1904                                 }
1905                         break; }
1906 
1907                         case NetlogonValidationSamInfo4: {
1908                                 uint32_t _ptr_sam6;
1909                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1910                                 if (_ptr_sam6) {
1911                                         NDR_PULL_ALLOC(ndr, r->sam6);
1912                                 } else {
1913                                         r->sam6 = NULL;
1914                                 }
1915                         break; }
1916 
1917                         default:
1918                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1919                 }
1920         }
1921         if (ndr_flags & NDR_BUFFERS) {
1922                 switch (level) {
1923                         case NetlogonValidationSamInfo:
1924                                 if (r->sam2) {
1925                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1926                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1927                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1928                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1929                                 }
1930                         break;
1931 
1932                         case NetlogonValidationSamInfo2:
1933                                 if (r->sam3) {
1934                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1935                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1936                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1937                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1938                                 }
1939                         break;
1940 
1941                         case 4:
1942                                 if (r->pac) {
1943                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1945                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1946                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1947                                 }
1948                         break;
1949 
1950                         case NetlogonValidationGenericInfo2:
1951                                 if (r->generic) {
1952                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
1953                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
1954                                         NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1955                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
1956                                 }
1957                         break;
1958 
1959                         case NetlogonValidationSamInfo4:
1960                                 if (r->sam6) {
1961                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1962                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1963                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1964                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1965                                 }
1966                         break;
1967 
1968                         default:
1969                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1970                 }
1971         }
1972         return NDR_ERR_SUCCESS;
1973 }
1974 
1975 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
     /* [<][>][^][v][top][bottom][index][help] */
1976 {
1977         int level;
1978         level = ndr_print_get_switch_value(ndr, r);
1979         ndr_print_union(ndr, name, level, "netr_Validation");
1980         switch (level) {
1981                 case NetlogonValidationSamInfo:
1982                         ndr_print_ptr(ndr, "sam2", r->sam2);
1983                         ndr->depth++;
1984                         if (r->sam2) {
1985                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1986                         }
1987                         ndr->depth--;
1988                 break;
1989 
1990                 case NetlogonValidationSamInfo2:
1991                         ndr_print_ptr(ndr, "sam3", r->sam3);
1992                         ndr->depth++;
1993                         if (r->sam3) {
1994                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1995                         }
1996                         ndr->depth--;
1997                 break;
1998 
1999                 case 4:
2000                         ndr_print_ptr(ndr, "pac", r->pac);
2001                         ndr->depth++;
2002                         if (r->pac) {
2003                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
2004                         }
2005                         ndr->depth--;
2006                 break;
2007 
2008                 case NetlogonValidationGenericInfo2:
2009                         ndr_print_ptr(ndr, "generic", r->generic);
2010                         ndr->depth++;
2011                         if (r->generic) {
2012                                 ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
2013                         }
2014                         ndr->depth--;
2015                 break;
2016 
2017                 case NetlogonValidationSamInfo4:
2018                         ndr_print_ptr(ndr, "sam6", r->sam6);
2019                         ndr->depth++;
2020                         if (r->sam6) {
2021                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
2022                         }
2023                         ndr->depth--;
2024                 break;
2025 
2026                 default:
2027                         ndr_print_bad_level(ndr, name, level);
2028         }
2029 }
2030 
2031 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
     /* [<][>][^][v][top][bottom][index][help] */
2032 {
2033         {
2034                 uint32_t _flags_save_STRUCT = ndr->flags;
2035                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2036                 if (ndr_flags & NDR_SCALARS) {
2037                         NDR_CHECK(ndr_push_align(ndr, 1));
2038                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2039                 }
2040                 if (ndr_flags & NDR_BUFFERS) {
2041                 }
2042                 ndr->flags = _flags_save_STRUCT;
2043         }
2044         return NDR_ERR_SUCCESS;
2045 }
2046 
2047 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
     /* [<][>][^][v][top][bottom][index][help] */
2048 {
2049         {
2050                 uint32_t _flags_save_STRUCT = ndr->flags;
2051                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2052                 if (ndr_flags & NDR_SCALARS) {
2053                         NDR_CHECK(ndr_pull_align(ndr, 1));
2054                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2055                 }
2056                 if (ndr_flags & NDR_BUFFERS) {
2057                 }
2058                 ndr->flags = _flags_save_STRUCT;
2059         }
2060         return NDR_ERR_SUCCESS;
2061 }
2062 
2063 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
     /* [<][>][^][v][top][bottom][index][help] */
2064 {
2065         ndr_print_struct(ndr, name, "netr_Credential");
2066         {
2067                 uint32_t _flags_save_STRUCT = ndr->flags;
2068                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2069                 ndr->depth++;
2070                 ndr_print_array_uint8(ndr, "data", r->data, 8);
2071                 ndr->depth--;
2072                 ndr->flags = _flags_save_STRUCT;
2073         }
2074 }
2075 
2076 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
     /* [<][>][^][v][top][bottom][index][help] */
2077 {
2078         if (ndr_flags & NDR_SCALARS) {
2079                 NDR_CHECK(ndr_push_align(ndr, 4));
2080                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2081                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2082         }
2083         if (ndr_flags & NDR_BUFFERS) {
2084         }
2085         return NDR_ERR_SUCCESS;
2086 }
2087 
2088 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
     /* [<][>][^][v][top][bottom][index][help] */
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_pull_align(ndr, 4));
2092                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2093                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2094         }
2095         if (ndr_flags & NDR_BUFFERS) {
2096         }
2097         return NDR_ERR_SUCCESS;
2098 }
2099 
2100 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
     /* [<][>][^][v][top][bottom][index][help] */
2101 {
2102         ndr_print_struct(ndr, name, "netr_Authenticator");
2103         ndr->depth++;
2104         ndr_print_netr_Credential(ndr, "cred", &r->cred);
2105         ndr_print_time_t(ndr, "timestamp", r->timestamp);
2106         ndr->depth--;
2107 }
2108 
2109 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2110 {
2111         if (ndr_flags & NDR_SCALARS) {
2112                 NDR_CHECK(ndr_push_align(ndr, 4));
2113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
2114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2122         }
2123         if (ndr_flags & NDR_BUFFERS) {
2124                 if (r->account_name) {
2125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2128                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
2129                 }
2130                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2131                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2132                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2133                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2134         }
2135         return NDR_ERR_SUCCESS;
2136 }
2137 
2138 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2139 {
2140         uint32_t _ptr_account_name;
2141         TALLOC_CTX *_mem_save_account_name_0;
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
2145                 if (_ptr_account_name) {
2146                         NDR_PULL_ALLOC(ndr, r->account_name);
2147                 } else {
2148                         r->account_name = NULL;
2149                 }
2150                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2151                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2152                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2153                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2154                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2155                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2156                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2157                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2158         }
2159         if (ndr_flags & NDR_BUFFERS) {
2160                 if (r->account_name) {
2161                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
2163                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
2164                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
2165                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
2166                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
2167                         }
2168                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
2169                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
2170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
2171                 }
2172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2173                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2174                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2175                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2176         }
2177         return NDR_ERR_SUCCESS;
2178 }
2179 
2180 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2181 {
2182         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
2183         ndr->depth++;
2184         ndr_print_ptr(ndr, "account_name", r->account_name);
2185         ndr->depth++;
2186         if (r->account_name) {
2187                 ndr_print_string(ndr, "account_name", r->account_name);
2188         }
2189         ndr->depth--;
2190         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2191         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2192         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2193         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2194         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2195         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2196         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2197         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2198         ndr->depth--;
2199 }
2200 
2201 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2202 {
2203         if (ndr_flags & NDR_SCALARS) {
2204                 NDR_CHECK(ndr_push_align(ndr, 4));
2205                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2206                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2208                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2209         }
2210         if (ndr_flags & NDR_BUFFERS) {
2211         }
2212         return NDR_ERR_SUCCESS;
2213 }
2214 
2215 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2216 {
2217         if (ndr_flags & NDR_SCALARS) {
2218                 NDR_CHECK(ndr_pull_align(ndr, 4));
2219                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2220                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2222                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2223         }
2224         if (ndr_flags & NDR_BUFFERS) {
2225         }
2226         return NDR_ERR_SUCCESS;
2227 }
2228 
2229 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2230 {
2231         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2232         ndr->depth++;
2233         ndr_print_uint16(ndr, "length", r->length);
2234         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2235         ndr_print_uint32(ndr, "flags", r->flags);
2236         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2237         ndr->depth--;
2238 }
2239 
2240 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
     /* [<][>][^][v][top][bottom][index][help] */
2241 {
2242         if (ndr_flags & NDR_SCALARS) {
2243                 NDR_CHECK(ndr_push_align(ndr, 4));
2244                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2245                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2250                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2251                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2252         }
2253         if (ndr_flags & NDR_BUFFERS) {
2254         }
2255         return NDR_ERR_SUCCESS;
2256 }
2257 
2258 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
     /* [<][>][^][v][top][bottom][index][help] */
2259 {
2260         if (ndr_flags & NDR_SCALARS) {
2261                 NDR_CHECK(ndr_pull_align(ndr, 4));
2262                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2263                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2265                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2266                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2267                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2268                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2269                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2270                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2271                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2272         }
2273         if (ndr_flags & NDR_BUFFERS) {
2274         }
2275         return NDR_ERR_SUCCESS;
2276 }
2277 
2278 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
     /* [<][>][^][v][top][bottom][index][help] */
2279 {
2280         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2281         ndr->depth++;
2282         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2283         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2284         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2285         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2286         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2287         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2288         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2289         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2290         ndr->depth--;
2291 }
2292 
2293 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2294 {
2295         if (ndr_flags & NDR_SCALARS) {
2296                 NDR_CHECK(ndr_push_align(ndr, 4));
2297                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2298                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2299                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2300         }
2301         if (ndr_flags & NDR_BUFFERS) {
2302         }
2303         return NDR_ERR_SUCCESS;
2304 }
2305 
2306 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2307 {
2308         if (ndr_flags & NDR_SCALARS) {
2309                 NDR_CHECK(ndr_pull_align(ndr, 4));
2310                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2311                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2312                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2313         }
2314         if (ndr_flags & NDR_BUFFERS) {
2315         }
2316         return NDR_ERR_SUCCESS;
2317 }
2318 
2319 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
2320 {
2321         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2322         ndr->depth++;
2323         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2324         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2325         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2326         ndr->depth--;
2327 }
2328 
2329 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
2330 {
2331         if (ndr_flags & NDR_SCALARS) {
2332                 NDR_CHECK(ndr_push_align(ndr, 4));
2333                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2334         }
2335         if (ndr_flags & NDR_BUFFERS) {
2336         }
2337         return NDR_ERR_SUCCESS;
2338 }
2339 
2340 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
2341 {
2342         if (ndr_flags & NDR_SCALARS) {
2343                 NDR_CHECK(ndr_pull_align(ndr, 4));
2344                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2345         }
2346         if (ndr_flags & NDR_BUFFERS) {
2347         }
2348         return NDR_ERR_SUCCESS;
2349 }
2350 
2351 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
2352 {
2353         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2354         ndr->depth++;
2355         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2356         ndr->depth--;
2357 }
2358 
2359 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
     /* [<][>][^][v][top][bottom][index][help] */
2360 {
2361         if (ndr_flags & NDR_SCALARS) {
2362                 NDR_CHECK(ndr_push_align(ndr, 4));
2363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2364                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2365         }
2366         if (ndr_flags & NDR_BUFFERS) {
2367         }
2368         return NDR_ERR_SUCCESS;
2369 }
2370 
2371 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
     /* [<][>][^][v][top][bottom][index][help] */
2372 {
2373         if (ndr_flags & NDR_SCALARS) {
2374                 NDR_CHECK(ndr_pull_align(ndr, 4));
2375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2376                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2377         }
2378         if (ndr_flags & NDR_BUFFERS) {
2379         }
2380         return NDR_ERR_SUCCESS;
2381 }
2382 
2383 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
     /* [<][>][^][v][top][bottom][index][help] */
2384 {
2385         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2386         ndr->depth++;
2387         ndr_print_uint32(ndr, "version", r->version);
2388         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2389         ndr->depth--;
2390 }
2391 
2392 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
     /* [<][>][^][v][top][bottom][index][help] */
2393 {
2394         if (ndr_flags & NDR_SCALARS) {
2395                 NDR_CHECK(ndr_push_align(ndr, 4));
2396                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2398                 {
2399                         uint32_t _flags_save_uint8 = ndr->flags;
2400                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2401                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2402                         ndr->flags = _flags_save_uint8;
2403                 }
2404         }
2405         if (ndr_flags & NDR_BUFFERS) {
2406                 {
2407                         uint32_t _flags_save_uint8 = ndr->flags;
2408                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2409                         if (r->SensitiveData) {
2410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2411                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2412                         }
2413                         ndr->flags = _flags_save_uint8;
2414                 }
2415         }
2416         return NDR_ERR_SUCCESS;
2417 }
2418 
2419 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
     /* [<][>][^][v][top][bottom][index][help] */
2420 {
2421         uint32_t _ptr_SensitiveData;
2422         TALLOC_CTX *_mem_save_SensitiveData_0;
2423         if (ndr_flags & NDR_SCALARS) {
2424                 NDR_CHECK(ndr_pull_align(ndr, 4));
2425                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2426                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2427                 {
2428                         uint32_t _flags_save_uint8 = ndr->flags;
2429                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2430                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2431                         if (_ptr_SensitiveData) {
2432                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2433                         } else {
2434                                 r->SensitiveData = NULL;
2435                         }
2436                         ndr->flags = _flags_save_uint8;
2437                 }
2438         }
2439         if (ndr_flags & NDR_BUFFERS) {
2440                 {
2441                         uint32_t _flags_save_uint8 = ndr->flags;
2442                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2443                         if (r->SensitiveData) {
2444                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2445                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2446                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2447                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2448                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2450                         }
2451                         ndr->flags = _flags_save_uint8;
2452                 }
2453                 if (r->SensitiveData) {
2454                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2455                 }
2456         }
2457         return NDR_ERR_SUCCESS;
2458 }
2459 
2460 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
     /* [<][>][^][v][top][bottom][index][help] */
2461 {
2462         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2463         ndr->depth++;
2464         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2465         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2466         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2467         ndr->depth++;
2468         if (r->SensitiveData) {
2469                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2470         }
2471         ndr->depth--;
2472         ndr->depth--;
2473 }
2474 
2475 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2476 {
2477         if (ndr_flags & NDR_SCALARS) {
2478                 NDR_CHECK(ndr_push_align(ndr, 4));
2479                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2480                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2481                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2484                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2485                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2486                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2487                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2488                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2489                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2490                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2491                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2492                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2493                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2494                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2495                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2496                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2497                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2498                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2499                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2500                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2501                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2502                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2504                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2505                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2507                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2516         }
2517         if (ndr_flags & NDR_BUFFERS) {
2518                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2519                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2522                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2525                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2527                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2528                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2529                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2530                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2531                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2532                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2533                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2534         }
2535         return NDR_ERR_SUCCESS;
2536 }
2537 
2538 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2539 {
2540         if (ndr_flags & NDR_SCALARS) {
2541                 NDR_CHECK(ndr_pull_align(ndr, 4));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2546                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2547                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2548                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2549                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2550                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2551                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2552                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2553                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2554                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2555                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2556                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2557                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2558                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2559                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2560                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2561                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2562                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2563                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2564                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2565                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2566                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2567                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2568                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2569                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2570                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2576                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2577                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2578                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2579         }
2580         if (ndr_flags & NDR_BUFFERS) {
2581                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2582                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2583                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2584                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2586                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2587                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2588                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2589                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2590                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2591                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2592                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2595                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600 
2601 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2602 {
2603         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2604         ndr->depth++;
2605         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2606         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2607         ndr_print_uint32(ndr, "rid", r->rid);
2608         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2609         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2610         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2611         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2612         ndr_print_lsa_String(ndr, "description", &r->description);
2613         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2614         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2615         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2616         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2617         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2618         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2619         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2620         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2621         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2622         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2623         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2624         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2625         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2626         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2627         ndr_print_lsa_String(ndr, "comment", &r->comment);
2628         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2629         ndr_print_uint16(ndr, "country_code", r->country_code);
2630         ndr_print_uint16(ndr, "code_page", r->code_page);
2631         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2632         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2633         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2634         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2635         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2636         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2637         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2638         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2639         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2640         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2641         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2642         ndr->depth--;
2643 }
2644 
2645 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
2646 {
2647         if (ndr_flags & NDR_SCALARS) {
2648                 NDR_CHECK(ndr_push_align(ndr, 4));
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2651                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2652                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2653                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2654                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2655                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2656                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2657                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2659                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2660                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2661                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2662                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2663                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2668         }
2669         if (ndr_flags & NDR_BUFFERS) {
2670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2672                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2673                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2675                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2676                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2677         }
2678         return NDR_ERR_SUCCESS;
2679 }
2680 
2681 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
2682 {
2683         if (ndr_flags & NDR_SCALARS) {
2684                 NDR_CHECK(ndr_pull_align(ndr, 4));
2685                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2686                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2687                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2688                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2689                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2690                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2691                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2692                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2693                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2695                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2696                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2697                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2700                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2703                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2704         }
2705         if (ndr_flags & NDR_BUFFERS) {
2706                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2707                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2708                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2709                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2710                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2711                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2712                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2713         }
2714         return NDR_ERR_SUCCESS;
2715 }
2716 
2717 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
2718 {
2719         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2720         ndr->depth++;
2721         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2722         ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
2723         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2724         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2725         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2726         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2727         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2728         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2729         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2730         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2731         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2732         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2733         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2734         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2735         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2736         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2737         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2738         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2739         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2740         ndr->depth--;
2741 }
2742 
2743 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
     /* [<][>][^][v][top][bottom][index][help] */
2744 {
2745         if (ndr_flags & NDR_SCALARS) {
2746                 NDR_CHECK(ndr_push_align(ndr, 4));
2747                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2750                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2752                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2753                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2754                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2755                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2756                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2761         }
2762         if (ndr_flags & NDR_BUFFERS) {
2763                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2764                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2765                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2766                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2767                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2768                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2769                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2770         }
2771         return NDR_ERR_SUCCESS;
2772 }
2773 
2774 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
     /* [<][>][^][v][top][bottom][index][help] */
2775 {
2776         if (ndr_flags & NDR_SCALARS) {
2777                 NDR_CHECK(ndr_pull_align(ndr, 4));
2778                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2779                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2780                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2781                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2783                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2784                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2785                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2786                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2787                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2788                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2792         }
2793         if (ndr_flags & NDR_BUFFERS) {
2794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2795                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2796                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2797                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2798                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2799                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2800                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2801         }
2802         return NDR_ERR_SUCCESS;
2803 }
2804 
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
     /* [<][>][^][v][top][bottom][index][help] */
2806 {
2807         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2808         ndr->depth++;
2809         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2810         ndr_print_uint32(ndr, "rid", r->rid);
2811         ndr_print_uint32(ndr, "attributes", r->attributes);
2812         ndr_print_lsa_String(ndr, "description", &r->description);
2813         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2814         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2815         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2816         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2817         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2818         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2819         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2820         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2821         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2822         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2823         ndr->depth--;
2824 }
2825 
2826 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
     /* [<][>][^][v][top][bottom][index][help] */
2827 {
2828         if (ndr_flags & NDR_SCALARS) {
2829                 NDR_CHECK(ndr_push_align(ndr, 4));
2830                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2834                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2835                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2838                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2840         }
2841         if (ndr_flags & NDR_BUFFERS) {
2842                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2843                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2844                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2845                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2846                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2847                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2848         }
2849         return NDR_ERR_SUCCESS;
2850 }
2851 
2852 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
     /* [<][>][^][v][top][bottom][index][help] */
2853 {
2854         if (ndr_flags & NDR_SCALARS) {
2855                 NDR_CHECK(ndr_pull_align(ndr, 4));
2856                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2857                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2858                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2863                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2864                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2865                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2866         }
2867         if (ndr_flags & NDR_BUFFERS) {
2868                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2869                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2870                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2871                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2872                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2873                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2874         }
2875         return NDR_ERR_SUCCESS;
2876 }
2877 
2878 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
     /* [<][>][^][v][top][bottom][index][help] */
2879 {
2880         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2881         ndr->depth++;
2882         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2883         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2884         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2885         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2886         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2887         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2888         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2889         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2890         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2891         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2892         ndr->depth--;
2893 }
2894 
2895 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2896 {
2897         uint32_t cntr_rids_1;
2898         uint32_t cntr_attribs_1;
2899         if (ndr_flags & NDR_SCALARS) {
2900                 NDR_CHECK(ndr_push_align(ndr, 4));
2901                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2902                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2908         }
2909         if (ndr_flags & NDR_BUFFERS) {
2910                 if (r->rids) {
2911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2912                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2913                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2914                         }
2915                 }
2916                 if (r->attribs) {
2917                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2918                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2919                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2920                         }
2921                 }
2922         }
2923         return NDR_ERR_SUCCESS;
2924 }
2925 
2926 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2927 {
2928         uint32_t _ptr_rids;
2929         uint32_t cntr_rids_1;
2930         TALLOC_CTX *_mem_save_rids_0;
2931         TALLOC_CTX *_mem_save_rids_1;
2932         uint32_t _ptr_attribs;
2933         uint32_t cntr_attribs_1;
2934         TALLOC_CTX *_mem_save_attribs_0;
2935         TALLOC_CTX *_mem_save_attribs_1;
2936         if (ndr_flags & NDR_SCALARS) {
2937                 NDR_CHECK(ndr_pull_align(ndr, 4));
2938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2939                 if (_ptr_rids) {
2940                         NDR_PULL_ALLOC(ndr, r->rids);
2941                 } else {
2942                         r->rids = NULL;
2943                 }
2944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2945                 if (_ptr_attribs) {
2946                         NDR_PULL_ALLOC(ndr, r->attribs);
2947                 } else {
2948                         r->attribs = NULL;
2949                 }
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2955         }
2956         if (ndr_flags & NDR_BUFFERS) {
2957                 if (r->rids) {
2958                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2959                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2960                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2961                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2962                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2963                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2964                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2965                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2966                         }
2967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2969                 }
2970                 if (r->attribs) {
2971                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2972                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2973                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2974                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2975                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2976                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2977                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2979                         }
2980                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2982                 }
2983                 if (r->rids) {
2984                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2985                 }
2986                 if (r->attribs) {
2987                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2988                 }
2989         }
2990         return NDR_ERR_SUCCESS;
2991 }
2992 
2993 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
2994 {
2995         uint32_t cntr_rids_1;
2996         uint32_t cntr_attribs_1;
2997         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2998         ndr->depth++;
2999         ndr_print_ptr(ndr, "rids", r->rids);
3000         ndr->depth++;
3001         if (r->rids) {
3002                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
3003                 ndr->depth++;
3004                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
3005                         char *idx_1=NULL;
3006                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3007                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
3008                                 free(idx_1);
3009                         }
3010                 }
3011                 ndr->depth--;
3012         }
3013         ndr->depth--;
3014         ndr_print_ptr(ndr, "attribs", r->attribs);
3015         ndr->depth++;
3016         if (r->attribs) {
3017                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
3018                 ndr->depth++;
3019                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
3020                         char *idx_1=NULL;
3021                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
3022                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
3023                                 free(idx_1);
3024                         }
3025                 }
3026                 ndr->depth--;
3027         }
3028         ndr->depth--;
3029         ndr_print_uint32(ndr, "num_rids", r->num_rids);
3030         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3031         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3032         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3033         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3034         ndr->depth--;
3035 }
3036 
3037 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3038 {
3039         if (ndr_flags & NDR_SCALARS) {
3040                 NDR_CHECK(ndr_push_align(ndr, 4));
3041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3044                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3045                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3046                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3047                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3053         }
3054         if (ndr_flags & NDR_BUFFERS) {
3055                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3056                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3057                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3058                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3059                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3060                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3061         }
3062         return NDR_ERR_SUCCESS;
3063 }
3064 
3065 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3066 {
3067         if (ndr_flags & NDR_SCALARS) {
3068                 NDR_CHECK(ndr_pull_align(ndr, 4));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3070                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3072                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3073                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3074                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3075                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3079                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3080                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3081         }
3082         if (ndr_flags & NDR_BUFFERS) {
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3084                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3087                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3089         }
3090         return NDR_ERR_SUCCESS;
3091 }
3092 
3093 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3094 {
3095         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
3096         ndr->depth++;
3097         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
3098         ndr_print_uint32(ndr, "rid", r->rid);
3099         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3100         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3101         ndr_print_lsa_String(ndr, "description", &r->description);
3102         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3103         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3104         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3105         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3106         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3107         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3108         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3109         ndr->depth--;
3110 }
3111 
3112 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
3113 {
3114         if (ndr_flags & NDR_SCALARS) {
3115                 NDR_CHECK(ndr_push_align(ndr, 4));
3116                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3117                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
3118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
3119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
3120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
3121         }
3122         if (ndr_flags & NDR_BUFFERS) {
3123                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3124         }
3125         return NDR_ERR_SUCCESS;
3126 }
3127 
3128 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
3129 {
3130         if (ndr_flags & NDR_SCALARS) {
3131                 NDR_CHECK(ndr_pull_align(ndr, 4));
3132                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3133                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
3134                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
3135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
3136                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
3137         }
3138         if (ndr_flags & NDR_BUFFERS) {
3139                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3140         }
3141         return NDR_ERR_SUCCESS;
3142 }
3143 
3144 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
     /* [<][>][^][v][top][bottom][index][help] */
3145 {
3146         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
3147         ndr->depth++;
3148         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
3149         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3150         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3151         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3152         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3153         ndr->depth--;
3154 }
3155 
3156 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3157 {
3158         if (ndr_flags & NDR_SCALARS) {
3159                 NDR_CHECK(ndr_push_align(ndr, 4));
3160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
3161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
3162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
3163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
3164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
3165                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
3166         }
3167         if (ndr_flags & NDR_BUFFERS) {
3168         }
3169         return NDR_ERR_SUCCESS;
3170 }
3171 
3172 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3173 {
3174         if (ndr_flags & NDR_SCALARS) {
3175                 NDR_CHECK(ndr_pull_align(ndr, 4));
3176                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
3177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
3178                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
3179                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
3181                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
3182         }
3183         if (ndr_flags & NDR_BUFFERS) {
3184         }
3185         return NDR_ERR_SUCCESS;
3186 }
3187 
3188 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
3189 {
3190         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3191         ndr->depth++;
3192         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3193         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3194         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3195         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3196         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3197         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3198         ndr->depth--;
3199 }
3200 
3201 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
     /* [<][>][^][v][top][bottom][index][help] */
3202 {
3203         uint32_t cntr_eventauditoptions_1;
3204         if (ndr_flags & NDR_SCALARS) {
3205                 NDR_CHECK(ndr_push_align(ndr, 4));
3206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3207                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3208                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3213                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3214                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3215                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3217                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3218                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3219                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3220                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3221                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3225                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3226         }
3227         if (ndr_flags & NDR_BUFFERS) {
3228                 if (r->eventauditoptions) {
3229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3230                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3231                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3232                         }
3233                 }
3234                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3235                 if (r->sid) {
3236                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3237                 }
3238                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3239                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3243         }
3244         return NDR_ERR_SUCCESS;
3245 }
3246 
3247 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
     /* [<][>][^][v][top][bottom][index][help] */
3248 {
3249         uint32_t _ptr_eventauditoptions;
3250         uint32_t cntr_eventauditoptions_1;
3251         TALLOC_CTX *_mem_save_eventauditoptions_0;
3252         TALLOC_CTX *_mem_save_eventauditoptions_1;
3253         uint32_t _ptr_sid;
3254         TALLOC_CTX *_mem_save_sid_0;
3255         if (ndr_flags & NDR_SCALARS) {
3256                 NDR_CHECK(ndr_pull_align(ndr, 4));
3257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3258                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3259                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3262                 if (_ptr_eventauditoptions) {
3263                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3264                 } else {
3265                         r->eventauditoptions = NULL;
3266                 }
3267                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3269                 if (_ptr_sid) {
3270                         NDR_PULL_ALLOC(ndr, r->sid);
3271                 } else {
3272                         r->sid = NULL;
3273                 }
3274                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3275                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3276                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3278                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3279                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3280                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3281                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3282                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3287         }
3288         if (ndr_flags & NDR_BUFFERS) {
3289                 if (r->eventauditoptions) {
3290                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3291                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3293                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3294                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3295                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3296                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3297                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3298                         }
3299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3300                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3301                 }
3302                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3303                 if (r->sid) {
3304                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3305                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3306                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3308                 }
3309                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3310                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3311                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3312                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3313                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3314                 if (r->eventauditoptions) {
3315                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3316                 }
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320 
3321 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
     /* [<][>][^][v][top][bottom][index][help] */
3322 {
3323         uint32_t cntr_eventauditoptions_1;
3324         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3325         ndr->depth++;
3326         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3327         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3328         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3329         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3330         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3331         ndr->depth++;
3332         if (r->eventauditoptions) {
3333                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3334                 ndr->depth++;
3335                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3336                         char *idx_1=NULL;
3337                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3338                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3339                                 free(idx_1);
3340                         }
3341                 }
3342                 ndr->depth--;
3343         }
3344         ndr->depth--;
3345         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3346         ndr_print_ptr(ndr, "sid", r->sid);
3347         ndr->depth++;
3348         if (r->sid) {
3349                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3350         }
3351         ndr->depth--;
3352         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3353         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3354         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3355         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3356         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3357         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3358         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3359         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3360         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3361         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3362         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3363         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3364         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3365         ndr->depth--;
3366 }
3367 
3368 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
3369 {
3370         uint32_t cntr_controller_names_1;
3371         if (ndr_flags & NDR_SCALARS) {
3372                 NDR_CHECK(ndr_push_align(ndr, 4));
3373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3377                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3378                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3386         }
3387         if (ndr_flags & NDR_BUFFERS) {
3388                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3389                 if (r->controller_names) {
3390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3391                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3392                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3393                         }
3394                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3395                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3396                         }
3397                 }
3398                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3403         }
3404         return NDR_ERR_SUCCESS;
3405 }
3406 
3407 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
3408 {
3409         uint32_t _ptr_controller_names;
3410         uint32_t cntr_controller_names_1;
3411         TALLOC_CTX *_mem_save_controller_names_0;
3412         TALLOC_CTX *_mem_save_controller_names_1;
3413         if (ndr_flags & NDR_SCALARS) {
3414                 NDR_CHECK(ndr_pull_align(ndr, 4));
3415                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3418                 if (_ptr_controller_names) {
3419                         NDR_PULL_ALLOC(ndr, r->controller_names);
3420                 } else {
3421                         r->controller_names = NULL;
3422                 }
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3424                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3427                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3428                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3433         }
3434         if (ndr_flags & NDR_BUFFERS) {
3435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3436                 if (r->controller_names) {
3437                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3438                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3439                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3440                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3441                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3442                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3443                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3444                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3445                         }
3446                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3447                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3448                         }
3449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3450                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3451                 }
3452                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3456                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3457                 if (r->controller_names) {
3458                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3459                 }
3460         }
3461         return NDR_ERR_SUCCESS;
3462 }
3463 
3464 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
3465 {
3466         uint32_t cntr_controller_names_1;
3467         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3468         ndr->depth++;
3469         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3470         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3471         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3472         ndr->depth++;
3473         if (r->controller_names) {
3474                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3475                 ndr->depth++;
3476                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3477                         char *idx_1=NULL;
3478                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3479                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3480                                 free(idx_1);
3481                         }
3482                 }
3483                 ndr->depth--;
3484         }
3485         ndr->depth--;
3486         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3487         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3488         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3489         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3490         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3491         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3492         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3493         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3494         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3495         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3496         ndr->depth--;
3497 }
3498 
3499 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
     /* [<][>][^][v][top][bottom][index][help] */
3500 {
3501         if (ndr_flags & NDR_SCALARS) {
3502                 NDR_CHECK(ndr_push_align(ndr, 2));
3503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3504         }
3505         if (ndr_flags & NDR_BUFFERS) {
3506         }
3507         return NDR_ERR_SUCCESS;
3508 }
3509 
3510 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
     /* [<][>][^][v][top][bottom][index][help] */
3511 {
3512         if (ndr_flags & NDR_SCALARS) {
3513                 NDR_CHECK(ndr_pull_align(ndr, 2));
3514                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3515         }
3516         if (ndr_flags & NDR_BUFFERS) {
3517         }
3518         return NDR_ERR_SUCCESS;
3519 }
3520 
3521 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
     /* [<][>][^][v][top][bottom][index][help] */
3522 {
3523         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3524         ndr->depth++;
3525         ndr_print_uint16(ndr, "unknown", r->unknown);
3526         ndr->depth--;
3527 }
3528 
3529 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3530 {
3531         uint32_t cntr_privilege_attrib_1;
3532         uint32_t cntr_privilege_name_1;
3533         if (ndr_flags & NDR_SCALARS) {
3534                 NDR_CHECK(ndr_push_align(ndr, 4));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3539                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3540                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3541                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3542                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3543                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3544                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3545                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3546                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3551         }
3552         if (ndr_flags & NDR_BUFFERS) {
3553                 if (r->privilege_attrib) {
3554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3555                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3557                         }
3558                 }
3559                 if (r->privilege_name) {
3560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3561                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3562                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3563                         }
3564                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3565                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3566                         }
3567                 }
3568                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3569                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3573         }
3574         return NDR_ERR_SUCCESS;
3575 }
3576 
3577 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3578 {
3579         uint32_t _ptr_privilege_attrib;
3580         uint32_t cntr_privilege_attrib_1;
3581         TALLOC_CTX *_mem_save_privilege_attrib_0;
3582         TALLOC_CTX *_mem_save_privilege_attrib_1;
3583         uint32_t _ptr_privilege_name;
3584         uint32_t cntr_privilege_name_1;
3585         TALLOC_CTX *_mem_save_privilege_name_0;
3586         TALLOC_CTX *_mem_save_privilege_name_1;
3587         if (ndr_flags & NDR_SCALARS) {
3588                 NDR_CHECK(ndr_pull_align(ndr, 4));
3589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3592                 if (_ptr_privilege_attrib) {
3593                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3594                 } else {
3595                         r->privilege_attrib = NULL;
3596                 }
3597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3598                 if (_ptr_privilege_name) {
3599                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3600                 } else {
3601                         r->privilege_name = NULL;
3602                 }
3603                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3604                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3606                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3608                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3609                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3611                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3615         }
3616         if (ndr_flags & NDR_BUFFERS) {
3617                 if (r->privilege_attrib) {
3618                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3619                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3620                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3621                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3622                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3623                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3624                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3625                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3626                         }
3627                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3629                 }
3630                 if (r->privilege_name) {
3631                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3632                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3634                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3635                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3636                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3637                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3638                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3639                         }
3640                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3641                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3642                         }
3643                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3645                 }
3646                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3648                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3651                 if (r->privilege_attrib) {
3652                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3653                 }
3654                 if (r->privilege_name) {
3655                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3656                 }
3657         }
3658         return NDR_ERR_SUCCESS;
3659 }
3660 
3661 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3662 {
3663         uint32_t cntr_privilege_attrib_1;
3664         uint32_t cntr_privilege_name_1;
3665         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3666         ndr->depth++;
3667         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3668         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3669         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3670         ndr->depth++;
3671         if (r->privilege_attrib) {
3672                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3673                 ndr->depth++;
3674                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3675                         char *idx_1=NULL;
3676                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3677                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3678                                 free(idx_1);
3679                         }
3680                 }
3681                 ndr->depth--;
3682         }
3683         ndr->depth--;
3684         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3685         ndr->depth++;
3686         if (r->privilege_name) {
3687                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3688                 ndr->depth++;
3689                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3690                         char *idx_1=NULL;
3691                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3692                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3693                                 free(idx_1);
3694                         }
3695                 }
3696                 ndr->depth--;
3697         }
3698         ndr->depth--;
3699         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3700         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3701         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3702         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3703         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3704         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3705         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3706         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3707         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3708         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3709         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3710         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3711         ndr->depth--;
3712 }
3713 
3714 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3715 {
3716         if (ndr_flags & NDR_SCALARS) {
3717                 NDR_CHECK(ndr_push_align(ndr, 2));
3718                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3719         }
3720         if (ndr_flags & NDR_BUFFERS) {
3721         }
3722         return NDR_ERR_SUCCESS;
3723 }
3724 
3725 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3726 {
3727         if (ndr_flags & NDR_SCALARS) {
3728                 NDR_CHECK(ndr_pull_align(ndr, 2));
3729                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3730         }
3731         if (ndr_flags & NDR_BUFFERS) {
3732         }
3733         return NDR_ERR_SUCCESS;
3734 }
3735 
3736 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
     /* [<][>][^][v][top][bottom][index][help] */
3737 {
3738         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3739         ndr->depth++;
3740         ndr_print_uint16(ndr, "unknown", r->unknown);
3741         ndr->depth--;
3742 }
3743 
3744 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3745 {
3746         if (ndr_flags & NDR_SCALARS) {
3747                 NDR_CHECK(ndr_push_align(ndr, 2));
3748                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3749         }
3750         if (ndr_flags & NDR_BUFFERS) {
3751         }
3752         return NDR_ERR_SUCCESS;
3753 }
3754 
3755 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3756 {
3757         if (ndr_flags & NDR_SCALARS) {
3758                 NDR_CHECK(ndr_pull_align(ndr, 2));
3759                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3760         }
3761         if (ndr_flags & NDR_BUFFERS) {
3762         }
3763         return NDR_ERR_SUCCESS;
3764 }
3765 
3766 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3767 {
3768         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3769         ndr->depth++;
3770         ndr_print_uint16(ndr, "unknown", r->unknown);
3771         ndr->depth--;
3772 }
3773 
3774 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
     /* [<][>][^][v][top][bottom][index][help] */
3775 {
3776         if (ndr_flags & NDR_SCALARS) {
3777                 NDR_CHECK(ndr_push_align(ndr, 4));
3778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3781         }
3782         if (ndr_flags & NDR_BUFFERS) {
3783                 if (r->cipher_data) {
3784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3787                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3788                 }
3789         }
3790         return NDR_ERR_SUCCESS;
3791 }
3792 
3793 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
     /* [<][>][^][v][top][bottom][index][help] */
3794 {
3795         uint32_t _ptr_cipher_data;
3796         TALLOC_CTX *_mem_save_cipher_data_0;
3797         if (ndr_flags & NDR_SCALARS) {
3798                 NDR_CHECK(ndr_pull_align(ndr, 4));
3799                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3800                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3802                 if (_ptr_cipher_data) {
3803                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3804                 } else {
3805                         r->cipher_data = NULL;
3806                 }
3807         }
3808         if (ndr_flags & NDR_BUFFERS) {
3809                 if (r->cipher_data) {
3810                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3811                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3814                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3815                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3816                         }
3817                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3818                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3820                 }
3821                 if (r->cipher_data) {
3822                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3823                 }
3824                 if (r->cipher_data) {
3825                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3826                 }
3827         }
3828         return NDR_ERR_SUCCESS;
3829 }
3830 
3831 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
     /* [<][>][^][v][top][bottom][index][help] */
3832 {
3833         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3834         ndr->depth++;
3835         ndr_print_uint32(ndr, "len", r->len);
3836         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3837         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3838         ndr->depth++;
3839         if (r->cipher_data) {
3840                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3841         }
3842         ndr->depth--;
3843         ndr->depth--;
3844 }
3845 
3846 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3847 {
3848         if (ndr_flags & NDR_SCALARS) {
3849                 NDR_CHECK(ndr_push_align(ndr, 4));
3850                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3851                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3852                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3853                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3855                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3864         }
3865         if (ndr_flags & NDR_BUFFERS) {
3866                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3867                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3868                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3873         }
3874         return NDR_ERR_SUCCESS;
3875 }
3876 
3877 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3878 {
3879         if (ndr_flags & NDR_SCALARS) {
3880                 NDR_CHECK(ndr_pull_align(ndr, 4));
3881                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3882                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3883                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3884                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3886                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3895         }
3896         if (ndr_flags & NDR_BUFFERS) {
3897                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3898                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3899                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3900                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3901                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3903                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3904         }
3905         return NDR_ERR_SUCCESS;
3906 }
3907 
3908 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
     /* [<][>][^][v][top][bottom][index][help] */
3909 {
3910         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3911         ndr->depth++;
3912         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3913         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3914         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3915         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3916         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3917         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3918         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3919         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3920         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3921         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3922         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3923         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3924         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3925         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3926         ndr->depth--;
3927 }
3928 
3929 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
     /* [<][>][^][v][top][bottom][index][help] */
3930 {
3931         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3932         return NDR_ERR_SUCCESS;
3933 }
3934 
3935 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
     /* [<][>][^][v][top][bottom][index][help] */
3936 {
3937         uint16_t v;
3938         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3939         *r = v;
3940         return NDR_ERR_SUCCESS;
3941 }
3942 
3943 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
     /* [<][>][^][v][top][bottom][index][help] */
3944 {
3945         const char *val = NULL;
3946 
3947         switch (r) {
3948                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3949                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3950                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3951                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3952                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3953                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3954                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3955                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3956                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3957                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3958                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3959                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3960                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3961                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3962                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3963                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3964                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3965                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3966                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3967                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3968                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3969                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3970         }
3971         ndr_print_enum(ndr, name, "ENUM", val, r);
3972 }
3973 
3974 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
3975 {
3976         if (ndr_flags & NDR_SCALARS) {
3977                 int level = ndr_push_get_switch_value(ndr, r);
3978                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3979                 switch (level) {
3980                         case NETR_DELTA_DOMAIN: {
3981                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3982                         break; }
3983 
3984                         case NETR_DELTA_GROUP: {
3985                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3986                         break; }
3987 
3988                         case NETR_DELTA_DELETE_GROUP: {
3989                         break; }
3990 
3991                         case NETR_DELTA_RENAME_GROUP: {
3992                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3993                         break; }
3994 
3995                         case NETR_DELTA_USER: {
3996                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3997                         break; }
3998 
3999                         case NETR_DELTA_DELETE_USER: {
4000                         break; }
4001 
4002                         case NETR_DELTA_RENAME_USER: {
4003                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
4004                         break; }
4005 
4006                         case NETR_DELTA_GROUP_MEMBER: {
4007                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
4008                         break; }
4009 
4010                         case NETR_DELTA_ALIAS: {
4011                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
4012                         break; }
4013 
4014                         case NETR_DELTA_DELETE_ALIAS: {
4015                         break; }
4016 
4017                         case NETR_DELTA_RENAME_ALIAS: {
4018                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
4019                         break; }
4020 
4021                         case NETR_DELTA_ALIAS_MEMBER: {
4022                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
4023                         break; }
4024 
4025                         case NETR_DELTA_POLICY: {
4026                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
4027                         break; }
4028 
4029                         case NETR_DELTA_TRUSTED_DOMAIN: {
4030                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
4031                         break; }
4032 
4033                         case NETR_DELTA_DELETE_TRUST: {
4034                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4035                         break; }
4036 
4037                         case NETR_DELTA_ACCOUNT: {
4038                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
4039                         break; }
4040 
4041                         case NETR_DELTA_DELETE_ACCOUNT: {
4042                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4043                         break; }
4044 
4045                         case NETR_DELTA_SECRET: {
4046                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
4047                         break; }
4048 
4049                         case NETR_DELTA_DELETE_SECRET: {
4050                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4051                         break; }
4052 
4053                         case NETR_DELTA_DELETE_GROUP2: {
4054                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
4055                         break; }
4056 
4057                         case NETR_DELTA_DELETE_USER2: {
4058                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
4059                         break; }
4060 
4061                         case NETR_DELTA_MODIFY_COUNT: {
4062                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
4063                         break; }
4064 
4065                         default:
4066                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4067                 }
4068         }
4069         if (ndr_flags & NDR_BUFFERS) {
4070                 int level = ndr_push_get_switch_value(ndr, r);
4071                 switch (level) {
4072                         case NETR_DELTA_DOMAIN:
4073                                 if (r->domain) {
4074                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4075                                 }
4076                         break;
4077 
4078                         case NETR_DELTA_GROUP:
4079                                 if (r->group) {
4080                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4081                                 }
4082                         break;
4083 
4084                         case NETR_DELTA_DELETE_GROUP:
4085                         break;
4086 
4087                         case NETR_DELTA_RENAME_GROUP:
4088                                 if (r->rename_group) {
4089                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4090                                 }
4091                         break;
4092 
4093                         case NETR_DELTA_USER:
4094                                 if (r->user) {
4095                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4096                                 }
4097                         break;
4098 
4099                         case NETR_DELTA_DELETE_USER:
4100                         break;
4101 
4102                         case NETR_DELTA_RENAME_USER:
4103                                 if (r->rename_user) {
4104                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4105                                 }
4106                         break;
4107 
4108                         case NETR_DELTA_GROUP_MEMBER:
4109                                 if (r->group_member) {
4110                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4111                                 }
4112                         break;
4113 
4114                         case NETR_DELTA_ALIAS:
4115                                 if (r->alias) {
4116                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4117                                 }
4118                         break;
4119 
4120                         case NETR_DELTA_DELETE_ALIAS:
4121                         break;
4122 
4123                         case NETR_DELTA_RENAME_ALIAS:
4124                                 if (r->rename_alias) {
4125                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4126                                 }
4127                         break;
4128 
4129                         case NETR_DELTA_ALIAS_MEMBER:
4130                                 if (r->alias_member) {
4131                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4132                                 }
4133                         break;
4134 
4135                         case NETR_DELTA_POLICY:
4136                                 if (r->policy) {
4137                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4138                                 }
4139                         break;
4140 
4141                         case NETR_DELTA_TRUSTED_DOMAIN:
4142                                 if (r->trusted_domain) {
4143                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4144                                 }
4145                         break;
4146 
4147                         case NETR_DELTA_DELETE_TRUST:
4148                         break;
4149 
4150                         case NETR_DELTA_ACCOUNT:
4151                                 if (r->account) {
4152                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4153                                 }
4154                         break;
4155 
4156                         case NETR_DELTA_DELETE_ACCOUNT:
4157                         break;
4158 
4159                         case NETR_DELTA_SECRET:
4160                                 if (r->secret) {
4161                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4162                                 }
4163                         break;
4164 
4165                         case NETR_DELTA_DELETE_SECRET:
4166                         break;
4167 
4168                         case NETR_DELTA_DELETE_GROUP2:
4169                                 if (r->delete_group) {
4170                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4171                                 }
4172                         break;
4173 
4174                         case NETR_DELTA_DELETE_USER2:
4175                                 if (r->delete_user) {
4176                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4177                                 }
4178                         break;
4179 
4180                         case NETR_DELTA_MODIFY_COUNT:
4181                                 if (r->modified_count) {
4182                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4183                                 }
4184                         break;
4185 
4186                         default:
4187                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4188                 }
4189         }
4190         return NDR_ERR_SUCCESS;
4191 }
4192 
4193 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
4194 {
4195         int level;
4196         uint16_t _level;
4197         TALLOC_CTX *_mem_save_domain_0;
4198         TALLOC_CTX *_mem_save_group_0;
4199         TALLOC_CTX *_mem_save_rename_group_0;
4200         TALLOC_CTX *_mem_save_user_0;
4201         TALLOC_CTX *_mem_save_rename_user_0;
4202         TALLOC_CTX *_mem_save_group_member_0;
4203         TALLOC_CTX *_mem_save_alias_0;
4204         TALLOC_CTX *_mem_save_rename_alias_0;
4205         TALLOC_CTX *_mem_save_alias_member_0;
4206         TALLOC_CTX *_mem_save_policy_0;
4207         TALLOC_CTX *_mem_save_trusted_domain_0;
4208         TALLOC_CTX *_mem_save_account_0;
4209         TALLOC_CTX *_mem_save_secret_0;
4210         TALLOC_CTX *_mem_save_delete_group_0;
4211         TALLOC_CTX *_mem_save_delete_user_0;
4212         TALLOC_CTX *_mem_save_modified_count_0;
4213         level = ndr_pull_get_switch_value(ndr, r);
4214         if (ndr_flags & NDR_SCALARS) {
4215                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4216                 if (_level != level) {
4217                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4218                 }
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN: {
4221                                 uint32_t _ptr_domain;
4222                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4223                                 if (_ptr_domain) {
4224                                         NDR_PULL_ALLOC(ndr, r->domain);
4225                                 } else {
4226                                         r->domain = NULL;
4227                                 }
4228                         break; }
4229 
4230                         case NETR_DELTA_GROUP: {
4231                                 uint32_t _ptr_group;
4232                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4233                                 if (_ptr_group) {
4234                                         NDR_PULL_ALLOC(ndr, r->group);
4235                                 } else {
4236                                         r->group = NULL;
4237                                 }
4238                         break; }
4239 
4240                         case NETR_DELTA_DELETE_GROUP: {
4241                         break; }
4242 
4243                         case NETR_DELTA_RENAME_GROUP: {
4244                                 uint32_t _ptr_rename_group;
4245                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4246                                 if (_ptr_rename_group) {
4247                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4248                                 } else {
4249                                         r->rename_group = NULL;
4250                                 }
4251                         break; }
4252 
4253                         case NETR_DELTA_USER: {
4254                                 uint32_t _ptr_user;
4255                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4256                                 if (_ptr_user) {
4257                                         NDR_PULL_ALLOC(ndr, r->user);
4258                                 } else {
4259                                         r->user = NULL;
4260                                 }
4261                         break; }
4262 
4263                         case NETR_DELTA_DELETE_USER: {
4264                         break; }
4265 
4266                         case NETR_DELTA_RENAME_USER: {
4267                                 uint32_t _ptr_rename_user;
4268                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4269                                 if (_ptr_rename_user) {
4270                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4271                                 } else {
4272                                         r->rename_user = NULL;
4273                                 }
4274                         break; }
4275 
4276                         case NETR_DELTA_GROUP_MEMBER: {
4277                                 uint32_t _ptr_group_member;
4278                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4279                                 if (_ptr_group_member) {
4280                                         NDR_PULL_ALLOC(ndr, r->group_member);
4281                                 } else {
4282                                         r->group_member = NULL;
4283                                 }
4284                         break; }
4285 
4286                         case NETR_DELTA_ALIAS: {
4287                                 uint32_t _ptr_alias;
4288                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4289                                 if (_ptr_alias) {
4290                                         NDR_PULL_ALLOC(ndr, r->alias);
4291                                 } else {
4292                                         r->alias = NULL;
4293                                 }
4294                         break; }
4295 
4296                         case NETR_DELTA_DELETE_ALIAS: {
4297                         break; }
4298 
4299                         case NETR_DELTA_RENAME_ALIAS: {
4300                                 uint32_t _ptr_rename_alias;
4301                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4302                                 if (_ptr_rename_alias) {
4303                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4304                                 } else {
4305                                         r->rename_alias = NULL;
4306                                 }
4307                         break; }
4308 
4309                         case NETR_DELTA_ALIAS_MEMBER: {
4310                                 uint32_t _ptr_alias_member;
4311                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4312                                 if (_ptr_alias_member) {
4313                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4314                                 } else {
4315                                         r->alias_member = NULL;
4316                                 }
4317                         break; }
4318 
4319                         case NETR_DELTA_POLICY: {
4320                                 uint32_t _ptr_policy;
4321                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4322                                 if (_ptr_policy) {
4323                                         NDR_PULL_ALLOC(ndr, r->policy);
4324                                 } else {
4325                                         r->policy = NULL;
4326                                 }
4327                         break; }
4328 
4329                         case NETR_DELTA_TRUSTED_DOMAIN: {
4330                                 uint32_t _ptr_trusted_domain;
4331                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4332                                 if (_ptr_trusted_domain) {
4333                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4334                                 } else {
4335                                         r->trusted_domain = NULL;
4336                                 }
4337                         break; }
4338 
4339                         case NETR_DELTA_DELETE_TRUST: {
4340                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4341                         break; }
4342 
4343                         case NETR_DELTA_ACCOUNT: {
4344                                 uint32_t _ptr_account;
4345                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4346                                 if (_ptr_account) {
4347                                         NDR_PULL_ALLOC(ndr, r->account);
4348                                 } else {
4349                                         r->account = NULL;
4350                                 }
4351                         break; }
4352 
4353                         case NETR_DELTA_DELETE_ACCOUNT: {
4354                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4355                         break; }
4356 
4357                         case NETR_DELTA_SECRET: {
4358                                 uint32_t _ptr_secret;
4359                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4360                                 if (_ptr_secret) {
4361                                         NDR_PULL_ALLOC(ndr, r->secret);
4362                                 } else {
4363                                         r->secret = NULL;
4364                                 }
4365                         break; }
4366 
4367                         case NETR_DELTA_DELETE_SECRET: {
4368                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4369                         break; }
4370 
4371                         case NETR_DELTA_DELETE_GROUP2: {
4372                                 uint32_t _ptr_delete_group;
4373                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4374                                 if (_ptr_delete_group) {
4375                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4376                                 } else {
4377                                         r->delete_group = NULL;
4378                                 }
4379                         break; }
4380 
4381                         case NETR_DELTA_DELETE_USER2: {
4382                                 uint32_t _ptr_delete_user;
4383                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4384                                 if (_ptr_delete_user) {
4385                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4386                                 } else {
4387                                         r->delete_user = NULL;
4388                                 }
4389                         break; }
4390 
4391                         case NETR_DELTA_MODIFY_COUNT: {
4392                                 uint32_t _ptr_modified_count;
4393                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4394                                 if (_ptr_modified_count) {
4395                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4396                                 } else {
4397                                         r->modified_count = NULL;
4398                                 }
4399                         break; }
4400 
4401                         default:
4402                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4403                 }
4404         }
4405         if (ndr_flags & NDR_BUFFERS) {
4406                 switch (level) {
4407                         case NETR_DELTA_DOMAIN:
4408                                 if (r->domain) {
4409                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4410                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4411                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4412                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4413                                 }
4414                         break;
4415 
4416                         case NETR_DELTA_GROUP:
4417                                 if (r->group) {
4418                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4419                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4420                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4421                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4422                                 }
4423                         break;
4424 
4425                         case NETR_DELTA_DELETE_GROUP:
4426                         break;
4427 
4428                         case NETR_DELTA_RENAME_GROUP:
4429                                 if (r->rename_group) {
4430                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4431                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4432                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4433                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4434                                 }
4435                         break;
4436 
4437                         case NETR_DELTA_USER:
4438                                 if (r->user) {
4439                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4440                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4441                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4442                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4443                                 }
4444                         break;
4445 
4446                         case NETR_DELTA_DELETE_USER:
4447                         break;
4448 
4449                         case NETR_DELTA_RENAME_USER:
4450                                 if (r->rename_user) {
4451                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4452                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4453                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4454                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4455                                 }
4456                         break;
4457 
4458                         case NETR_DELTA_GROUP_MEMBER:
4459                                 if (r->group_member) {
4460                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4462                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4463                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4464                                 }
4465                         break;
4466 
4467                         case NETR_DELTA_ALIAS:
4468                                 if (r->alias) {
4469                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4471                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4472                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4473                                 }
4474                         break;
4475 
4476                         case NETR_DELTA_DELETE_ALIAS:
4477                         break;
4478 
4479                         case NETR_DELTA_RENAME_ALIAS:
4480                                 if (r->rename_alias) {
4481                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4482                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4483                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4484                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4485                                 }
4486                         break;
4487 
4488                         case NETR_DELTA_ALIAS_MEMBER:
4489                                 if (r->alias_member) {
4490                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4491                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4492                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4493                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4494                                 }
4495                         break;
4496 
4497                         case NETR_DELTA_POLICY:
4498                                 if (r->policy) {
4499                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4500                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4501                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4502                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4503                                 }
4504                         break;
4505 
4506                         case NETR_DELTA_TRUSTED_DOMAIN:
4507                                 if (r->trusted_domain) {
4508                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4509                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4510                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4511                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4512                                 }
4513                         break;
4514 
4515                         case NETR_DELTA_DELETE_TRUST:
4516                         break;
4517 
4518                         case NETR_DELTA_ACCOUNT:
4519                                 if (r->account) {
4520                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4521                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4522                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4523                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4524                                 }
4525                         break;
4526 
4527                         case NETR_DELTA_DELETE_ACCOUNT:
4528                         break;
4529 
4530                         case NETR_DELTA_SECRET:
4531                                 if (r->secret) {
4532                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4534                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4535                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4536                                 }
4537                         break;
4538 
4539                         case NETR_DELTA_DELETE_SECRET:
4540                         break;
4541 
4542                         case NETR_DELTA_DELETE_GROUP2:
4543                                 if (r->delete_group) {
4544                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4545                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4546                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4547                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4548                                 }
4549                         break;
4550 
4551                         case NETR_DELTA_DELETE_USER2:
4552                                 if (r->delete_user) {
4553                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4555                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4556                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4557                                 }
4558                         break;
4559 
4560                         case NETR_DELTA_MODIFY_COUNT:
4561                                 if (r->modified_count) {
4562                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4563                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4564                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4565                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4566                                 }
4567                         break;
4568 
4569                         default:
4570                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4571                 }
4572         }
4573         return NDR_ERR_SUCCESS;
4574 }
4575 
4576 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
4577 {
4578         int level;
4579         level = ndr_print_get_switch_value(ndr, r);
4580         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4581         switch (level) {
4582                 case NETR_DELTA_DOMAIN:
4583                         ndr_print_ptr(ndr, "domain", r->domain);
4584                         ndr->depth++;
4585                         if (r->domain) {
4586                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4587                         }
4588                         ndr->depth--;
4589                 break;
4590 
4591                 case NETR_DELTA_GROUP:
4592                         ndr_print_ptr(ndr, "group", r->group);
4593                         ndr->depth++;
4594                         if (r->group) {
4595                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4596                         }
4597                         ndr->depth--;
4598                 break;
4599 
4600                 case NETR_DELTA_DELETE_GROUP:
4601                 break;
4602 
4603                 case NETR_DELTA_RENAME_GROUP:
4604                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4605                         ndr->depth++;
4606                         if (r->rename_group) {
4607                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4608                         }
4609                         ndr->depth--;
4610                 break;
4611 
4612                 case NETR_DELTA_USER:
4613                         ndr_print_ptr(ndr, "user", r->user);
4614                         ndr->depth++;
4615                         if (r->user) {
4616                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4617                         }
4618                         ndr->depth--;
4619                 break;
4620 
4621                 case NETR_DELTA_DELETE_USER:
4622                 break;
4623 
4624                 case NETR_DELTA_RENAME_USER:
4625                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4626                         ndr->depth++;
4627                         if (r->rename_user) {
4628                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4629                         }
4630                         ndr->depth--;
4631                 break;
4632 
4633                 case NETR_DELTA_GROUP_MEMBER:
4634                         ndr_print_ptr(ndr, "group_member", r->group_member);
4635                         ndr->depth++;
4636                         if (r->group_member) {
4637                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4638                         }
4639                         ndr->depth--;
4640                 break;
4641 
4642                 case NETR_DELTA_ALIAS:
4643                         ndr_print_ptr(ndr, "alias", r->alias);
4644                         ndr->depth++;
4645                         if (r->alias) {
4646                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4647                         }
4648                         ndr->depth--;
4649                 break;
4650 
4651                 case NETR_DELTA_DELETE_ALIAS:
4652                 break;
4653 
4654                 case NETR_DELTA_RENAME_ALIAS:
4655                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4656                         ndr->depth++;
4657                         if (r->rename_alias) {
4658                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4659                         }
4660                         ndr->depth--;
4661                 break;
4662 
4663                 case NETR_DELTA_ALIAS_MEMBER:
4664                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4665                         ndr->depth++;
4666                         if (r->alias_member) {
4667                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4668                         }
4669                         ndr->depth--;
4670                 break;
4671 
4672                 case NETR_DELTA_POLICY:
4673                         ndr_print_ptr(ndr, "policy", r->policy);
4674                         ndr->depth++;
4675                         if (r->policy) {
4676                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4677                         }
4678                         ndr->depth--;
4679                 break;
4680 
4681                 case NETR_DELTA_TRUSTED_DOMAIN:
4682                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4683                         ndr->depth++;
4684                         if (r->trusted_domain) {
4685                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4686                         }
4687                         ndr->depth--;
4688                 break;
4689 
4690                 case NETR_DELTA_DELETE_TRUST:
4691                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4692                 break;
4693 
4694                 case NETR_DELTA_ACCOUNT:
4695                         ndr_print_ptr(ndr, "account", r->account);
4696                         ndr->depth++;
4697                         if (r->account) {
4698                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4699                         }
4700                         ndr->depth--;
4701                 break;
4702 
4703                 case NETR_DELTA_DELETE_ACCOUNT:
4704                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4705                 break;
4706 
4707                 case NETR_DELTA_SECRET:
4708                         ndr_print_ptr(ndr, "secret", r->secret);
4709                         ndr->depth++;
4710                         if (r->secret) {
4711                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4712                         }
4713                         ndr->depth--;
4714                 break;
4715 
4716                 case NETR_DELTA_DELETE_SECRET:
4717                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4718                 break;
4719 
4720                 case NETR_DELTA_DELETE_GROUP2:
4721                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4722                         ndr->depth++;
4723                         if (r->delete_group) {
4724                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4725                         }
4726                         ndr->depth--;
4727                 break;
4728 
4729                 case NETR_DELTA_DELETE_USER2:
4730                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4731                         ndr->depth++;
4732                         if (r->delete_user) {
4733                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4734                         }
4735                         ndr->depth--;
4736                 break;
4737 
4738                 case NETR_DELTA_MODIFY_COUNT:
4739                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4740                         ndr->depth++;
4741                         if (r->modified_count) {
4742                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4743                         }
4744                         ndr->depth--;
4745                 break;
4746 
4747                 default:
4748                         ndr_print_bad_level(ndr, name, level);
4749         }
4750 }
4751 
4752 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
4753 {
4754         if (ndr_flags & NDR_SCALARS) {
4755                 int level = ndr_push_get_switch_value(ndr, r);
4756                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4757                 switch (level) {
4758                         case NETR_DELTA_DOMAIN: {
4759                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4760                         break; }
4761 
4762                         case NETR_DELTA_GROUP: {
4763                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4764                         break; }
4765 
4766                         case NETR_DELTA_DELETE_GROUP: {
4767                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4768                         break; }
4769 
4770                         case NETR_DELTA_RENAME_GROUP: {
4771                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4772                         break; }
4773 
4774                         case NETR_DELTA_USER: {
4775                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4776                         break; }
4777 
4778                         case NETR_DELTA_DELETE_USER: {
4779                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4780                         break; }
4781 
4782                         case NETR_DELTA_RENAME_USER: {
4783                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4784                         break; }
4785 
4786                         case NETR_DELTA_GROUP_MEMBER: {
4787                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4788                         break; }
4789 
4790                         case NETR_DELTA_ALIAS: {
4791                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4792                         break; }
4793 
4794                         case NETR_DELTA_DELETE_ALIAS: {
4795                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4796                         break; }
4797 
4798                         case NETR_DELTA_RENAME_ALIAS: {
4799                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4800                         break; }
4801 
4802                         case NETR_DELTA_ALIAS_MEMBER: {
4803                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4804                         break; }
4805 
4806                         case NETR_DELTA_POLICY: {
4807                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4808                         break; }
4809 
4810                         case NETR_DELTA_TRUSTED_DOMAIN: {
4811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4812                         break; }
4813 
4814                         case NETR_DELTA_DELETE_TRUST: {
4815                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4816                         break; }
4817 
4818                         case NETR_DELTA_ACCOUNT: {
4819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4820                         break; }
4821 
4822                         case NETR_DELTA_DELETE_ACCOUNT: {
4823                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4824                         break; }
4825 
4826                         case NETR_DELTA_SECRET: {
4827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4828                         break; }
4829 
4830                         case NETR_DELTA_DELETE_SECRET: {
4831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4832                         break; }
4833 
4834                         case NETR_DELTA_DELETE_GROUP2: {
4835                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4836                         break; }
4837 
4838                         case NETR_DELTA_DELETE_USER2: {
4839                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4840                         break; }
4841 
4842                         case NETR_DELTA_MODIFY_COUNT: {
4843                         break; }
4844 
4845                         default:
4846                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4847                 }
4848         }
4849         if (ndr_flags & NDR_BUFFERS) {
4850                 int level = ndr_push_get_switch_value(ndr, r);
4851                 switch (level) {
4852                         case NETR_DELTA_DOMAIN:
4853                         break;
4854 
4855                         case NETR_DELTA_GROUP:
4856                         break;
4857 
4858                         case NETR_DELTA_DELETE_GROUP:
4859                         break;
4860 
4861                         case NETR_DELTA_RENAME_GROUP:
4862                         break;
4863 
4864                         case NETR_DELTA_USER:
4865                         break;
4866 
4867                         case NETR_DELTA_DELETE_USER:
4868                         break;
4869 
4870                         case NETR_DELTA_RENAME_USER:
4871                         break;
4872 
4873                         case NETR_DELTA_GROUP_MEMBER:
4874                         break;
4875 
4876                         case NETR_DELTA_ALIAS:
4877                         break;
4878 
4879                         case NETR_DELTA_DELETE_ALIAS:
4880                         break;
4881 
4882                         case NETR_DELTA_RENAME_ALIAS:
4883                         break;
4884 
4885                         case NETR_DELTA_ALIAS_MEMBER:
4886                         break;
4887 
4888                         case NETR_DELTA_POLICY:
4889                                 if (r->sid) {
4890                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4891                                 }
4892                         break;
4893 
4894                         case NETR_DELTA_TRUSTED_DOMAIN:
4895                                 if (r->sid) {
4896                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4897                                 }
4898                         break;
4899 
4900                         case NETR_DELTA_DELETE_TRUST:
4901                                 if (r->sid) {
4902                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4903                                 }
4904                         break;
4905 
4906                         case NETR_DELTA_ACCOUNT:
4907                                 if (r->sid) {
4908                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4909                                 }
4910                         break;
4911 
4912                         case NETR_DELTA_DELETE_ACCOUNT:
4913                                 if (r->sid) {
4914                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                 }
4916                         break;
4917 
4918                         case NETR_DELTA_SECRET:
4919                                 if (r->name) {
4920                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4921                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4922                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4923                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4924                                 }
4925                         break;
4926 
4927                         case NETR_DELTA_DELETE_SECRET:
4928                                 if (r->name) {
4929                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4930                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4931                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4932                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4933                                 }
4934                         break;
4935 
4936                         case NETR_DELTA_DELETE_GROUP2:
4937                         break;
4938 
4939                         case NETR_DELTA_DELETE_USER2:
4940                         break;
4941 
4942                         case NETR_DELTA_MODIFY_COUNT:
4943                         break;
4944 
4945                         default:
4946                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4947                 }
4948         }
4949         return NDR_ERR_SUCCESS;
4950 }
4951 
4952 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
4953 {
4954         int level;
4955         uint16_t _level;
4956         TALLOC_CTX *_mem_save_sid_0;
4957         TALLOC_CTX *_mem_save_name_0;
4958         level = ndr_pull_get_switch_value(ndr, r);
4959         if (ndr_flags & NDR_SCALARS) {
4960                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4961                 if (_level != level) {
4962                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4963                 }
4964                 switch (level) {
4965                         case NETR_DELTA_DOMAIN: {
4966                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4967                         break; }
4968 
4969                         case NETR_DELTA_GROUP: {
4970                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4971                         break; }
4972 
4973                         case NETR_DELTA_DELETE_GROUP: {
4974                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4975                         break; }
4976 
4977                         case NETR_DELTA_RENAME_GROUP: {
4978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4979                         break; }
4980 
4981                         case NETR_DELTA_USER: {
4982                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4983                         break; }
4984 
4985                         case NETR_DELTA_DELETE_USER: {
4986                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4987                         break; }
4988 
4989                         case NETR_DELTA_RENAME_USER: {
4990                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4991                         break; }
4992 
4993                         case NETR_DELTA_GROUP_MEMBER: {
4994                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4995                         break; }
4996 
4997                         case NETR_DELTA_ALIAS: {
4998                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4999                         break; }
5000 
5001                         case NETR_DELTA_DELETE_ALIAS: {
5002                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5003                         break; }
5004 
5005                         case NETR_DELTA_RENAME_ALIAS: {
5006                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5007                         break; }
5008 
5009                         case NETR_DELTA_ALIAS_MEMBER: {
5010                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5011                         break; }
5012 
5013                         case NETR_DELTA_POLICY: {
5014                                 uint32_t _ptr_sid;
5015                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5016                                 if (_ptr_sid) {
5017                                         NDR_PULL_ALLOC(ndr, r->sid);
5018                                 } else {
5019                                         r->sid = NULL;
5020                                 }
5021                         break; }
5022 
5023                         case NETR_DELTA_TRUSTED_DOMAIN: {
5024                                 uint32_t _ptr_sid;
5025                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5026                                 if (_ptr_sid) {
5027                                         NDR_PULL_ALLOC(ndr, r->sid);
5028                                 } else {
5029                                         r->sid = NULL;
5030                                 }
5031                         break; }
5032 
5033                         case NETR_DELTA_DELETE_TRUST: {
5034                                 uint32_t _ptr_sid;
5035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5036                                 if (_ptr_sid) {
5037                                         NDR_PULL_ALLOC(ndr, r->sid);
5038                                 } else {
5039                                         r->sid = NULL;
5040                                 }
5041                         break; }
5042 
5043                         case NETR_DELTA_ACCOUNT: {
5044                                 uint32_t _ptr_sid;
5045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5046                                 if (_ptr_sid) {
5047                                         NDR_PULL_ALLOC(ndr, r->sid);
5048                                 } else {
5049                                         r->sid = NULL;
5050                                 }
5051                         break; }
5052 
5053                         case NETR_DELTA_DELETE_ACCOUNT: {
5054                                 uint32_t _ptr_sid;
5055                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5056                                 if (_ptr_sid) {
5057                                         NDR_PULL_ALLOC(ndr, r->sid);
5058                                 } else {
5059                                         r->sid = NULL;
5060                                 }
5061                         break; }
5062 
5063                         case NETR_DELTA_SECRET: {
5064                                 uint32_t _ptr_name;
5065                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5066                                 if (_ptr_name) {
5067                                         NDR_PULL_ALLOC(ndr, r->name);
5068                                 } else {
5069                                         r->name = NULL;
5070                                 }
5071                         break; }
5072 
5073                         case NETR_DELTA_DELETE_SECRET: {
5074                                 uint32_t _ptr_name;
5075                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5076                                 if (_ptr_name) {
5077                                         NDR_PULL_ALLOC(ndr, r->name);
5078                                 } else {
5079                                         r->name = NULL;
5080                                 }
5081                         break; }
5082 
5083                         case NETR_DELTA_DELETE_GROUP2: {
5084                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5085                         break; }
5086 
5087                         case NETR_DELTA_DELETE_USER2: {
5088                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5089                         break; }
5090 
5091                         case NETR_DELTA_MODIFY_COUNT: {
5092                         break; }
5093 
5094                         default:
5095                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5096                 }
5097         }
5098         if (ndr_flags & NDR_BUFFERS) {
5099                 switch (level) {
5100                         case NETR_DELTA_DOMAIN:
5101                         break;
5102 
5103                         case NETR_DELTA_GROUP:
5104                         break;
5105 
5106                         case NETR_DELTA_DELETE_GROUP:
5107                         break;
5108 
5109                         case NETR_DELTA_RENAME_GROUP:
5110                         break;
5111 
5112                         case NETR_DELTA_USER:
5113                         break;
5114 
5115                         case NETR_DELTA_DELETE_USER:
5116                         break;
5117 
5118                         case NETR_DELTA_RENAME_USER:
5119                         break;
5120 
5121                         case NETR_DELTA_GROUP_MEMBER:
5122                         break;
5123 
5124                         case NETR_DELTA_ALIAS:
5125                         break;
5126 
5127                         case NETR_DELTA_DELETE_ALIAS:
5128                         break;
5129 
5130                         case NETR_DELTA_RENAME_ALIAS:
5131                         break;
5132 
5133                         case NETR_DELTA_ALIAS_MEMBER:
5134                         break;
5135 
5136                         case NETR_DELTA_POLICY:
5137                                 if (r->sid) {
5138                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5139                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5140                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5141                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5142                                 }
5143                         break;
5144 
5145                         case NETR_DELTA_TRUSTED_DOMAIN:
5146                                 if (r->sid) {
5147                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5148                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5149                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5150                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5151                                 }
5152                         break;
5153 
5154                         case NETR_DELTA_DELETE_TRUST:
5155                                 if (r->sid) {
5156                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5157                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5158                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5159                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5160                                 }
5161                         break;
5162 
5163                         case NETR_DELTA_ACCOUNT:
5164                                 if (r->sid) {
5165                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5166                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5167                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5169                                 }
5170                         break;
5171 
5172                         case NETR_DELTA_DELETE_ACCOUNT:
5173                                 if (r->sid) {
5174                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5176                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5177                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5178                                 }
5179                         break;
5180 
5181                         case NETR_DELTA_SECRET:
5182                                 if (r->name) {
5183                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5184                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5185                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5186                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5187                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5188                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5189                                         }
5190                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5191                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5192                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5193                                 }
5194                         break;
5195 
5196                         case NETR_DELTA_DELETE_SECRET:
5197                                 if (r->name) {
5198                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5200                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5201                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5202                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5203                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5204                                         }
5205                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5206                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5207                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5208                                 }
5209                         break;
5210 
5211                         case NETR_DELTA_DELETE_GROUP2:
5212                         break;
5213 
5214                         case NETR_DELTA_DELETE_USER2:
5215                         break;
5216 
5217                         case NETR_DELTA_MODIFY_COUNT:
5218                         break;
5219 
5220                         default:
5221                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5222                 }
5223         }
5224         return NDR_ERR_SUCCESS;
5225 }
5226 
5227 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
     /* [<][>][^][v][top][bottom][index][help] */
5228 {
5229         int level;
5230         level = ndr_print_get_switch_value(ndr, r);
5231         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5232         switch (level) {
5233                 case NETR_DELTA_DOMAIN:
5234                         ndr_print_uint32(ndr, "rid", r->rid);
5235                 break;
5236 
5237                 case NETR_DELTA_GROUP:
5238                         ndr_print_uint32(ndr, "rid", r->rid);
5239                 break;
5240 
5241                 case NETR_DELTA_DELETE_GROUP:
5242                         ndr_print_uint32(ndr, "rid", r->rid);
5243                 break;
5244 
5245                 case NETR_DELTA_RENAME_GROUP:
5246                         ndr_print_uint32(ndr, "rid", r->rid);
5247                 break;
5248 
5249                 case NETR_DELTA_USER:
5250                         ndr_print_uint32(ndr, "rid", r->rid);
5251                 break;
5252 
5253                 case NETR_DELTA_DELETE_USER:
5254                         ndr_print_uint32(ndr, "rid", r->rid);
5255                 break;
5256 
5257                 case NETR_DELTA_RENAME_USER:
5258                         ndr_print_uint32(ndr, "rid", r->rid);
5259                 break;
5260 
5261                 case NETR_DELTA_GROUP_MEMBER:
5262                         ndr_print_uint32(ndr, "rid", r->rid);
5263                 break;
5264 
5265                 case NETR_DELTA_ALIAS:
5266                         ndr_print_uint32(ndr, "rid", r->rid);
5267                 break;
5268 
5269                 case NETR_DELTA_DELETE_ALIAS:
5270                         ndr_print_uint32(ndr, "rid", r->rid);
5271                 break;
5272 
5273                 case NETR_DELTA_RENAME_ALIAS:
5274                         ndr_print_uint32(ndr, "rid", r->rid);
5275                 break;
5276 
5277                 case NETR_DELTA_ALIAS_MEMBER:
5278                         ndr_print_uint32(ndr, "rid", r->rid);
5279                 break;
5280 
5281                 case NETR_DELTA_POLICY:
5282                         ndr_print_ptr(ndr, "sid", r->sid);
5283                         ndr->depth++;
5284                         if (r->sid) {
5285                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5286                         }
5287                         ndr->depth--;
5288                 break;
5289 
5290                 case NETR_DELTA_TRUSTED_DOMAIN:
5291                         ndr_print_ptr(ndr, "sid", r->sid);
5292                         ndr->depth++;
5293                         if (r->sid) {
5294                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5295                         }
5296                         ndr->depth--;
5297                 break;
5298 
5299                 case NETR_DELTA_DELETE_TRUST:
5300                         ndr_print_ptr(ndr, "sid", r->sid);
5301                         ndr->depth++;
5302                         if (r->sid) {
5303                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5304                         }
5305                         ndr->depth--;
5306                 break;
5307 
5308                 case NETR_DELTA_ACCOUNT:
5309                         ndr_print_ptr(ndr, "sid", r->sid);
5310                         ndr->depth++;
5311                         if (r->sid) {
5312                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5313                         }
5314                         ndr->depth--;
5315                 break;
5316 
5317                 case NETR_DELTA_DELETE_ACCOUNT:
5318                         ndr_print_ptr(ndr, "sid", r->sid);
5319                         ndr->depth++;
5320                         if (r->sid) {
5321                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5322                         }
5323                         ndr->depth--;
5324                 break;
5325 
5326                 case NETR_DELTA_SECRET:
5327                         ndr_print_ptr(ndr, "name", r->name);
5328                         ndr->depth++;
5329                         if (r->name) {
5330                                 ndr_print_string(ndr, "name", r->name);
5331                         }
5332                         ndr->depth--;
5333                 break;
5334 
5335                 case NETR_DELTA_DELETE_SECRET:
5336                         ndr_print_ptr(ndr, "name", r->name);
5337                         ndr->depth++;
5338                         if (r->name) {
5339                                 ndr_print_string(ndr, "name", r->name);
5340                         }
5341                         ndr->depth--;
5342                 break;
5343 
5344                 case NETR_DELTA_DELETE_GROUP2:
5345                         ndr_print_uint32(ndr, "rid", r->rid);
5346                 break;
5347 
5348                 case NETR_DELTA_DELETE_USER2:
5349                         ndr_print_uint32(ndr, "rid", r->rid);
5350                 break;
5351 
5352                 case NETR_DELTA_MODIFY_COUNT:
5353                 break;
5354 
5355                 default:
5356                         ndr_print_bad_level(ndr, name, level);
5357         }
5358 }
5359 
5360 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
     /* [<][>][^][v][top][bottom][index][help] */
5361 {
5362         if (ndr_flags & NDR_SCALARS) {
5363                 NDR_CHECK(ndr_push_align(ndr, 4));
5364                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5365                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5366                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5367                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5368                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5369         }
5370         if (ndr_flags & NDR_BUFFERS) {
5371                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5372                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5373         }
5374         return NDR_ERR_SUCCESS;
5375 }
5376 
5377 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
     /* [<][>][^][v][top][bottom][index][help] */
5378 {
5379         if (ndr_flags & NDR_SCALARS) {
5380                 NDR_CHECK(ndr_pull_align(ndr, 4));
5381                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5382                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5383                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5384                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5385                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5386         }
5387         if (ndr_flags & NDR_BUFFERS) {
5388                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5389                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5390         }
5391         return NDR_ERR_SUCCESS;
5392 }
5393 
5394 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
     /* [<][>][^][v][top][bottom][index][help] */
5395 {
5396         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5397         ndr->depth++;
5398         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5399         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5400         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5401         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5402         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5403         ndr->depth--;
5404 }
5405 
5406 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
     /* [<][>][^][v][top][bottom][index][help] */
5407 {
5408         uint32_t cntr_delta_enum_1;
5409         if (ndr_flags & NDR_SCALARS) {
5410                 NDR_CHECK(ndr_push_align(ndr, 4));
5411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5413         }
5414         if (ndr_flags & NDR_BUFFERS) {
5415                 if (r->delta_enum) {
5416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5417                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5418                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5419                         }
5420                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5421                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5422                         }
5423                 }
5424         }
5425         return NDR_ERR_SUCCESS;
5426 }
5427 
5428 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
     /* [<][>][^][v][top][bottom][index][help] */
5429 {
5430         uint32_t _ptr_delta_enum;
5431         uint32_t cntr_delta_enum_1;
5432         TALLOC_CTX *_mem_save_delta_enum_0;
5433         TALLOC_CTX *_mem_save_delta_enum_1;
5434         if (ndr_flags & NDR_SCALARS) {
5435                 NDR_CHECK(ndr_pull_align(ndr, 4));
5436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5438                 if (_ptr_delta_enum) {
5439                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5440                 } else {
5441                         r->delta_enum = NULL;
5442                 }
5443         }
5444         if (ndr_flags & NDR_BUFFERS) {
5445                 if (r->delta_enum) {
5446                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5447                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5448                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5449                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5450                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5451                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5452                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5453                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5454                         }
5455                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5456                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5457                         }
5458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5460                 }
5461                 if (r->delta_enum) {
5462                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5463                 }
5464         }
5465         return NDR_ERR_SUCCESS;
5466 }
5467 
5468 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
     /* [<][>][^][v][top][bottom][index][help] */
5469 {
5470         uint32_t cntr_delta_enum_1;
5471         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5472         ndr->depth++;
5473         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5474         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5475         ndr->depth++;
5476         if (r->delta_enum) {
5477                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5478                 ndr->depth++;
5479                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5480                         char *idx_1=NULL;
5481                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5482                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5483                                 free(idx_1);
5484                         }
5485                 }
5486                 ndr->depth--;
5487         }
5488         ndr->depth--;
5489         ndr->depth--;
5490 }
5491 
5492 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5493 {
5494         {
5495                 uint32_t _flags_save_STRUCT = ndr->flags;
5496                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5497                 if (ndr_flags & NDR_SCALARS) {
5498                         NDR_CHECK(ndr_push_align(ndr, 4));
5499                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5502                 }
5503                 if (ndr_flags & NDR_BUFFERS) {
5504                 }
5505                 ndr->flags = _flags_save_STRUCT;
5506         }
5507         return NDR_ERR_SUCCESS;
5508 }
5509 
5510 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5511 {
5512         {
5513                 uint32_t _flags_save_STRUCT = ndr->flags;
5514                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5515                 if (ndr_flags & NDR_SCALARS) {
5516                         NDR_CHECK(ndr_pull_align(ndr, 4));
5517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5518                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5519                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5520                 }
5521                 if (ndr_flags & NDR_BUFFERS) {
5522                 }
5523                 ndr->flags = _flags_save_STRUCT;
5524         }
5525         return NDR_ERR_SUCCESS;
5526 }
5527 
5528 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5529 {
5530         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5531         {
5532                 uint32_t _flags_save_STRUCT = ndr->flags;
5533                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5534                 ndr->depth++;
5535                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5536                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5537                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5538                 ndr->depth--;
5539                 ndr->flags = _flags_save_STRUCT;
5540         }
5541 }
5542 
5543 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
     /* [<][>][^][v][top][bottom][index][help] */
5544 {
5545         if (ndr_flags & NDR_SCALARS) {
5546                 NDR_CHECK(ndr_push_align(ndr, 4));
5547                 {
5548                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5549                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5550                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5551                         ndr->flags = _flags_save_DATA_BLOB;
5552                 }
5553         }
5554         if (ndr_flags & NDR_BUFFERS) {
5555         }
5556         return NDR_ERR_SUCCESS;
5557 }
5558 
5559 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
     /* [<][>][^][v][top][bottom][index][help] */
5560 {
5561         if (ndr_flags & NDR_SCALARS) {
5562                 NDR_CHECK(ndr_pull_align(ndr, 4));
5563                 {
5564                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5565                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5566                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5567                         ndr->flags = _flags_save_DATA_BLOB;
5568                 }
5569         }
5570         if (ndr_flags & NDR_BUFFERS) {
5571         }
5572         return NDR_ERR_SUCCESS;
5573 }
5574 
5575 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
     /* [<][>][^][v][top][bottom][index][help] */
5576 {
5577         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5578         ndr->depth++;
5579         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5580         ndr->depth--;
5581 }
5582 
5583 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
5584 {
5585         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5586         return NDR_ERR_SUCCESS;
5587 }
5588 
5589 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
5590 {
5591         uint32_t v;
5592         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5593         *r = v;
5594         return NDR_ERR_SUCCESS;
5595 }
5596 
5597 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
5598 {
5599         ndr_print_uint32(ndr, name, r);
5600         ndr->depth++;
5601         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5602         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5603         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5604         ndr->depth--;
5605 }
5606 
5607 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5608 {
5609         if (ndr_flags & NDR_SCALARS) {
5610                 NDR_CHECK(ndr_push_align(ndr, 4));
5611                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5613         }
5614         if (ndr_flags & NDR_BUFFERS) {
5615         }
5616         return NDR_ERR_SUCCESS;
5617 }
5618 
5619 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5620 {
5621         if (ndr_flags & NDR_SCALARS) {
5622                 NDR_CHECK(ndr_pull_align(ndr, 4));
5623                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5625         }
5626         if (ndr_flags & NDR_BUFFERS) {
5627         }
5628         return NDR_ERR_SUCCESS;
5629 }
5630 
5631 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5632 {
5633         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5634         ndr->depth++;
5635         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5636         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5637         ndr->depth--;
5638 }
5639 
5640 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5641 {
5642         if (ndr_flags & NDR_SCALARS) {
5643                 NDR_CHECK(ndr_push_align(ndr, 4));
5644                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5648         }
5649         if (ndr_flags & NDR_BUFFERS) {
5650                 if (r->trusted_dc_name) {
5651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5652                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5654                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659 
5660 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5661 {
5662         uint32_t _ptr_trusted_dc_name;
5663         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5664         if (ndr_flags & NDR_SCALARS) {
5665                 NDR_CHECK(ndr_pull_align(ndr, 4));
5666                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5669                 if (_ptr_trusted_dc_name) {
5670                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5671                 } else {
5672                         r->trusted_dc_name = NULL;
5673                 }
5674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5675         }
5676         if (ndr_flags & NDR_BUFFERS) {
5677                 if (r->trusted_dc_name) {
5678                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5679                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5681                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5682                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5683                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5684                         }
5685                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5686                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5688                 }
5689         }
5690         return NDR_ERR_SUCCESS;
5691 }
5692 
5693 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5694 {
5695         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5696         ndr->depth++;
5697         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5698         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5699         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5700         ndr->depth++;
5701         if (r->trusted_dc_name) {
5702                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5703         }
5704         ndr->depth--;
5705         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5706         ndr->depth--;
5707 }
5708 
5709 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5710 {
5711         if (ndr_flags & NDR_SCALARS) {
5712                 NDR_CHECK(ndr_push_align(ndr, 4));
5713                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5720         }
5721         if (ndr_flags & NDR_BUFFERS) {
5722         }
5723         return NDR_ERR_SUCCESS;
5724 }
5725 
5726 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5727 {
5728         if (ndr_flags & NDR_SCALARS) {
5729                 NDR_CHECK(ndr_pull_align(ndr, 4));
5730                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5733                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5734                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5737         }
5738         if (ndr_flags & NDR_BUFFERS) {
5739         }
5740         return NDR_ERR_SUCCESS;
5741 }
5742 
5743 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5744 {
5745         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5746         ndr->depth++;
5747         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5748         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5749         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5750         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5751         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5752         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5753         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5754         ndr->depth--;
5755 }
5756 
5757 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_4(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_4 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5758 {
5759         if (ndr_flags & NDR_SCALARS) {
5760                 NDR_CHECK(ndr_push_align(ndr, 4));
5761                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5762                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain_name));
5763         }
5764         if (ndr_flags & NDR_BUFFERS) {
5765                 if (r->trusted_dc_name) {
5766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5769                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5770                 }
5771                 if (r->trusted_domain_name) {
5772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5775                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_domain_name, ndr_charset_length(r->trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5776                 }
5777         }
5778         return NDR_ERR_SUCCESS;
5779 }
5780 
5781 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_4 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5782 {
5783         uint32_t _ptr_trusted_dc_name;
5784         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5785         uint32_t _ptr_trusted_domain_name;
5786         TALLOC_CTX *_mem_save_trusted_domain_name_0;
5787         if (ndr_flags & NDR_SCALARS) {
5788                 NDR_CHECK(ndr_pull_align(ndr, 4));
5789                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5790                 if (_ptr_trusted_dc_name) {
5791                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5792                 } else {
5793                         r->trusted_dc_name = NULL;
5794                 }
5795                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
5796                 if (_ptr_trusted_domain_name) {
5797                         NDR_PULL_ALLOC(ndr, r->trusted_domain_name);
5798                 } else {
5799                         r->trusted_domain_name = NULL;
5800                 }
5801         }
5802         if (ndr_flags & NDR_BUFFERS) {
5803                 if (r->trusted_dc_name) {
5804                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5805                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5806                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5807                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5808                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5809                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5810                         }
5811                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5812                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5813                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5814                 }
5815                 if (r->trusted_domain_name) {
5816                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5817                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain_name, 0);
5818                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domain_name));
5819                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_domain_name));
5820                         if (ndr_get_array_length(ndr, &r->trusted_domain_name) > ndr_get_array_size(ndr, &r->trusted_domain_name)) {
5821                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_domain_name), ndr_get_array_length(ndr, &r->trusted_domain_name));
5822                         }
5823                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t)));
5824                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_domain_name, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t), CH_UTF16));
5825                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
5826                 }
5827         }
5828         return NDR_ERR_SUCCESS;
5829 }
5830 
5831 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_4 *r)
     /* [<][>][^][v][top][bottom][index][help] */
5832 {
5833         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_4");
5834         ndr->depth++;
5835         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5836         ndr->depth++;
5837         if (r->trusted_dc_name) {
5838                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5839         }
5840         ndr->depth--;
5841         ndr_print_ptr(ndr, "trusted_domain_name", r->trusted_domain_name);
5842         ndr->depth++;
5843         if (r->trusted_domain_name) {
5844                 ndr_print_string(ndr, "trusted_domain_name", r->trusted_domain_name);
5845         }
5846         ndr->depth--;
5847         ndr->depth--;
5848 }
5849 
5850 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
5851 {
5852         if (ndr_flags & NDR_SCALARS) {
5853                 int level = ndr_push_get_switch_value(ndr, r);
5854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5855                 switch (level) {
5856                         case 1: {
5857                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5858                         break; }
5859 
5860                         case 2: {
5861                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5862                         break; }
5863 
5864                         case 3: {
5865                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5866                         break; }
5867 
5868                         case 4: {
5869                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5870                         break; }
5871 
5872                         default:
5873                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5874                 }
5875         }
5876         if (ndr_flags & NDR_BUFFERS) {
5877                 int level = ndr_push_get_switch_value(ndr, r);
5878                 switch (level) {
5879                         case 1:
5880                                 if (r->info1) {
5881                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5882                                 }
5883                         break;
5884 
5885                         case 2:
5886                                 if (r->info2) {
5887                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5888                                 }
5889                         break;
5890 
5891                         case 3:
5892                                 if (r->info3) {
5893                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5894                                 }
5895                         break;
5896 
5897                         case 4:
5898                                 if (r->info4) {
5899                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5900                                 }
5901                         break;
5902 
5903                         default:
5904                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5905                 }
5906         }
5907         return NDR_ERR_SUCCESS;
5908 }
5909 
5910 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
5911 {
5912         int level;
5913         uint32_t _level;
5914         TALLOC_CTX *_mem_save_info1_0;
5915         TALLOC_CTX *_mem_save_info2_0;
5916         TALLOC_CTX *_mem_save_info3_0;
5917         TALLOC_CTX *_mem_save_info4_0;
5918         level = ndr_pull_get_switch_value(ndr, r);
5919         if (ndr_flags & NDR_SCALARS) {
5920                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5921                 if (_level != level) {
5922                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5923                 }
5924                 switch (level) {
5925                         case 1: {
5926                                 uint32_t _ptr_info1;
5927                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5928                                 if (_ptr_info1) {
5929                                         NDR_PULL_ALLOC(ndr, r->info1);
5930                                 } else {
5931                                         r->info1 = NULL;
5932                                 }
5933                         break; }
5934 
5935                         case 2: {
5936                                 uint32_t _ptr_info2;
5937                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5938                                 if (_ptr_info2) {
5939                                         NDR_PULL_ALLOC(ndr, r->info2);
5940                                 } else {
5941                                         r->info2 = NULL;
5942                                 }
5943                         break; }
5944 
5945                         case 3: {
5946                                 uint32_t _ptr_info3;
5947                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5948                                 if (_ptr_info3) {
5949                                         NDR_PULL_ALLOC(ndr, r->info3);
5950                                 } else {
5951                                         r->info3 = NULL;
5952                                 }
5953                         break; }
5954 
5955                         case 4: {
5956                                 uint32_t _ptr_info4;
5957                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5958                                 if (_ptr_info4) {
5959                                         NDR_PULL_ALLOC(ndr, r->info4);
5960                                 } else {
5961                                         r->info4 = NULL;
5962                                 }
5963                         break; }
5964 
5965                         default:
5966                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5967                 }
5968         }
5969         if (ndr_flags & NDR_BUFFERS) {
5970                 switch (level) {
5971                         case 1:
5972                                 if (r->info1) {
5973                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5974                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5975                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5976                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5977                                 }
5978                         break;
5979 
5980                         case 2:
5981                                 if (r->info2) {
5982                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5983                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5984                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5985                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5986                                 }
5987                         break;
5988 
5989                         case 3:
5990                                 if (r->info3) {
5991                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5992                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5993                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5994                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5995                                 }
5996                         break;
5997 
5998                         case 4:
5999                                 if (r->info4) {
6000                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6001                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6002                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6003                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6004                                 }
6005                         break;
6006 
6007                         default:
6008                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6009                 }
6010         }
6011         return NDR_ERR_SUCCESS;
6012 }
6013 
6014 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
6015 {
6016         int level;
6017         level = ndr_print_get_switch_value(ndr, r);
6018         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
6019         switch (level) {
6020                 case 1:
6021                         ndr_print_ptr(ndr, "info1", r->info1);
6022                         ndr->depth++;
6023                         if (r->info1) {
6024                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
6025                         }
6026                         ndr->depth--;
6027                 break;
6028 
6029                 case 2:
6030                         ndr_print_ptr(ndr, "info2", r->info2);
6031                         ndr->depth++;
6032                         if (r->info2) {
6033                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
6034                         }
6035                         ndr->depth--;
6036                 break;
6037 
6038                 case 3:
6039                         ndr_print_ptr(ndr, "info3", r->info3);
6040                         ndr->depth++;
6041                         if (r->info3) {
6042                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
6043                         }
6044                         ndr->depth--;
6045                 break;
6046 
6047                 case 4:
6048                         ndr_print_ptr(ndr, "info4", r->info4);
6049                         ndr->depth++;
6050                         if (r->info4) {
6051                                 ndr_print_netr_NETLOGON_INFO_4(ndr, "info4", r->info4);
6052                         }
6053                         ndr->depth--;
6054                 break;
6055 
6056                 default:
6057                         ndr_print_bad_level(ndr, name, level);
6058         }
6059 }
6060 
6061 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
     /* [<][>][^][v][top][bottom][index][help] */
6062 {
6063         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6064         return NDR_ERR_SUCCESS;
6065 }
6066 
6067 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
     /* [<][>][^][v][top][bottom][index][help] */
6068 {
6069         uint32_t v;
6070         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6071         *r = v;
6072         return NDR_ERR_SUCCESS;
6073 }
6074 
6075 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
     /* [<][>][^][v][top][bottom][index][help] */
6076 {
6077         const char *val = NULL;
6078 
6079         switch (r) {
6080                 case NETLOGON_CONTROL_QUERY: val = "NETLOGON_CONTROL_QUERY"; break;
6081                 case NETLOGON_CONTROL_REPLICATE: val = "NETLOGON_CONTROL_REPLICATE"; break;
6082                 case NETLOGON_CONTROL_SYNCHRONIZE: val = "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6083                 case NETLOGON_CONTROL_PDC_REPLICATE: val = "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6084                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
6085                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
6086                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6087                 case NETLOGON_CONTROL_FIND_USER: val = "NETLOGON_CONTROL_FIND_USER"; break;
6088                 case NETLOGON_CONTROL_CHANGE_PASSWORD: val = "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6089                 case NETLOGON_CONTROL_TC_VERIFY: val = "NETLOGON_CONTROL_TC_VERIFY"; break;
6090                 case NETLOGON_CONTROL_FORCE_DNS_REG: val = "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6091                 case NETLOGON_CONTROL_QUERY_DNS_REG: val = "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6092                 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG: val = "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6093                 case NETLOGON_CONTROL_TRUNCATE_LOG: val = "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6094                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
6095                 case NETLOGON_CONTROL_BREAKPOINT: val = "NETLOGON_CONTROL_BREAKPOINT"; break;
6096         }
6097         ndr_print_enum(ndr, name, "ENUM", val, r);
6098 }
6099 
6100 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
6101 {
6102         if (ndr_flags & NDR_SCALARS) {
6103                 int level = ndr_push_get_switch_value(ndr, r);
6104                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6105                 switch (level) {
6106                         case NETLOGON_CONTROL_REDISCOVER: {
6107                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6108                         break; }
6109 
6110                         case NETLOGON_CONTROL_TC_QUERY: {
6111                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6112                         break; }
6113 
6114                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6115                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6116                         break; }
6117 
6118                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6119                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6120                         break; }
6121 
6122                         case NETLOGON_CONTROL_TC_VERIFY: {
6123                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6124                         break; }
6125 
6126                         case NETLOGON_CONTROL_FIND_USER: {
6127                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
6128                         break; }
6129 
6130                         case NETLOGON_CONTROL_SET_DBFLAG: {
6131                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
6132                         break; }
6133 
6134                         default:
6135                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6136                 }
6137         }
6138         if (ndr_flags & NDR_BUFFERS) {
6139                 int level = ndr_push_get_switch_value(ndr, r);
6140                 switch (level) {
6141                         case NETLOGON_CONTROL_REDISCOVER:
6142                                 if (r->domain) {
6143                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6144                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6145                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6146                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6147                                 }
6148                         break;
6149 
6150                         case NETLOGON_CONTROL_TC_QUERY:
6151                                 if (r->domain) {
6152                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6153                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6154                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6155                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156                                 }
6157                         break;
6158 
6159                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6160                                 if (r->domain) {
6161                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6162                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6163                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6164                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6165                                 }
6166                         break;
6167 
6168                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6169                                 if (r->domain) {
6170                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6171                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6172                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6173                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6174                                 }
6175                         break;
6176 
6177                         case NETLOGON_CONTROL_TC_VERIFY:
6178                                 if (r->domain) {
6179                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6180                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6181                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6182                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6183                                 }
6184                         break;
6185 
6186                         case NETLOGON_CONTROL_FIND_USER:
6187                                 if (r->user) {
6188                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6189                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6190                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6191                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6192                                 }
6193                         break;
6194 
6195                         case NETLOGON_CONTROL_SET_DBFLAG:
6196                         break;
6197 
6198                         default:
6199                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6200                 }
6201         }
6202         return NDR_ERR_SUCCESS;
6203 }
6204 
6205 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
6206 {
6207         int level;
6208         uint32_t _level;
6209         TALLOC_CTX *_mem_save_domain_0;
6210         TALLOC_CTX *_mem_save_user_0;
6211         level = ndr_pull_get_switch_value(ndr, r);
6212         if (ndr_flags & NDR_SCALARS) {
6213                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6214                 if (_level != level) {
6215                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6216                 }
6217                 switch (level) {
6218                         case NETLOGON_CONTROL_REDISCOVER: {
6219                                 uint32_t _ptr_domain;
6220                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6221                                 if (_ptr_domain) {
6222                                         NDR_PULL_ALLOC(ndr, r->domain);
6223                                 } else {
6224                                         r->domain = NULL;
6225                                 }
6226                         break; }
6227 
6228                         case NETLOGON_CONTROL_TC_QUERY: {
6229                                 uint32_t _ptr_domain;
6230                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6231                                 if (_ptr_domain) {
6232                                         NDR_PULL_ALLOC(ndr, r->domain);
6233                                 } else {
6234                                         r->domain = NULL;
6235                                 }
6236                         break; }
6237 
6238                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6239                                 uint32_t _ptr_domain;
6240                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6241                                 if (_ptr_domain) {
6242                                         NDR_PULL_ALLOC(ndr, r->domain);
6243                                 } else {
6244                                         r->domain = NULL;
6245                                 }
6246                         break; }
6247 
6248                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6249                                 uint32_t _ptr_domain;
6250                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6251                                 if (_ptr_domain) {
6252                                         NDR_PULL_ALLOC(ndr, r->domain);
6253                                 } else {
6254                                         r->domain = NULL;
6255                                 }
6256                         break; }
6257 
6258                         case NETLOGON_CONTROL_TC_VERIFY: {
6259                                 uint32_t _ptr_domain;
6260                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6261                                 if (_ptr_domain) {
6262                                         NDR_PULL_ALLOC(ndr, r->domain);
6263                                 } else {
6264                                         r->domain = NULL;
6265                                 }
6266                         break; }
6267 
6268                         case NETLOGON_CONTROL_FIND_USER: {
6269                                 uint32_t _ptr_user;
6270                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
6271                                 if (_ptr_user) {
6272                                         NDR_PULL_ALLOC(ndr, r->user);
6273                                 } else {
6274                                         r->user = NULL;
6275                                 }
6276                         break; }
6277 
6278                         case NETLOGON_CONTROL_SET_DBFLAG: {
6279                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6280                         break; }
6281 
6282                         default:
6283                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6284                 }
6285         }
6286         if (ndr_flags & NDR_BUFFERS) {
6287                 switch (level) {
6288                         case NETLOGON_CONTROL_REDISCOVER:
6289                                 if (r->domain) {
6290                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6292                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6293                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6294                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6295                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6296                                         }
6297                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6298                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6299                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6300                                 }
6301                         break;
6302 
6303                         case NETLOGON_CONTROL_TC_QUERY:
6304                                 if (r->domain) {
6305                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6306                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6307                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6308                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6309                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6310                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6311                                         }
6312                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6313                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6314                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6315                                 }
6316                         break;
6317 
6318                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6319                                 if (r->domain) {
6320                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6321                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6322                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6323                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6324                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6325                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6326                                         }
6327                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6328                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6329                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6330                                 }
6331                         break;
6332 
6333                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6334                                 if (r->domain) {
6335                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6337                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6338                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6339                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6340                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6341                                         }
6342                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6343                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6344                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6345                                 }
6346                         break;
6347 
6348                         case NETLOGON_CONTROL_TC_VERIFY:
6349                                 if (r->domain) {
6350                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6351                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6352                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6353                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6354                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6355                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6356                                         }
6357                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6358                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6359                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6360                                 }
6361                         break;
6362 
6363                         case NETLOGON_CONTROL_FIND_USER:
6364                                 if (r->user) {
6365                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
6366                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
6367                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
6368                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
6369                                         if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
6370                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
6371                                         }
6372                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
6373                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
6374                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
6375                                 }
6376                         break;
6377 
6378                         case NETLOGON_CONTROL_SET_DBFLAG:
6379                         break;
6380 
6381                         default:
6382                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6383                 }
6384         }
6385         return NDR_ERR_SUCCESS;
6386 }
6387 
6388 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
     /* [<][>][^][v][top][bottom][index][help] */
6389 {
6390         int level;
6391         level = ndr_print_get_switch_value(ndr, r);
6392         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6393         switch (level) {
6394                 case NETLOGON_CONTROL_REDISCOVER:
6395                         ndr_print_ptr(ndr, "domain", r->domain);
6396                         ndr->depth++;
6397                         if (r->domain) {
6398                                 ndr_print_string(ndr, "domain", r->domain);
6399                         }
6400                         ndr->depth--;
6401                 break;
6402 
6403                 case NETLOGON_CONTROL_TC_QUERY:
6404                         ndr_print_ptr(ndr, "domain", r->domain);
6405                         ndr->depth++;
6406                         if (r->domain) {
6407                                 ndr_print_string(ndr, "domain", r->domain);
6408                         }
6409                         ndr->depth--;
6410                 break;
6411 
6412                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6413                         ndr_print_ptr(ndr, "domain", r->domain);
6414                         ndr->depth++;
6415                         if (r->domain) {
6416                                 ndr_print_string(ndr, "domain", r->domain);
6417                         }
6418                         ndr->depth--;
6419                 break;
6420 
6421                 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6422                         ndr_print_ptr(ndr, "domain", r->domain);
6423                         ndr->depth++;
6424                         if (r->domain) {
6425                                 ndr_print_string(ndr, "domain", r->domain);
6426                         }
6427                         ndr->depth--;
6428                 break;
6429 
6430                 case NETLOGON_CONTROL_TC_VERIFY:
6431                         ndr_print_ptr(ndr, "domain", r->domain);
6432                         ndr->depth++;
6433                         if (r->domain) {
6434                                 ndr_print_string(ndr, "domain", r->domain);
6435                         }
6436                         ndr->depth--;
6437                 break;
6438 
6439                 case NETLOGON_CONTROL_FIND_USER:
6440                         ndr_print_ptr(ndr, "user", r->user);
6441                         ndr->depth++;
6442                         if (r->user) {
6443                                 ndr_print_string(ndr, "user", r->user);
6444                         }
6445                         ndr->depth--;
6446                 break;
6447 
6448                 case NETLOGON_CONTROL_SET_DBFLAG:
6449                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
6450                 break;
6451 
6452                 default:
6453                         ndr_print_bad_level(ndr, name, level);
6454         }
6455 }
6456 
6457 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6458 {
6459         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6460         return NDR_ERR_SUCCESS;
6461 }
6462 
6463 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
6464 {
6465         uint32_t v;
6466         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6467         *r = v;
6468         return NDR_ERR_SUCCESS;
6469 }
6470 
6471 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6472 {
6473         ndr_print_uint32(ndr, name, r);
6474         ndr->depth++;
6475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6484         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6485         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6486         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6487         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6488         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6489         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS, r);
6490         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6491         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6492         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6493         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6494         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6495         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6496         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
6498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
6500         ndr->depth--;
6501 }
6502 
6503 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6504 {
6505         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6506         return NDR_ERR_SUCCESS;
6507 }
6508 
6509 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
6510 {
6511         uint16_t v;
6512         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6513         *r = v;
6514         return NDR_ERR_SUCCESS;
6515 }
6516 
6517 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6518 {
6519         ndr_print_uint16(ndr, name, r);
6520         ndr->depth++;
6521         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6522         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6523         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6524         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6525         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6526         ndr->depth--;
6527 }
6528 
6529 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
     /* [<][>][^][v][top][bottom][index][help] */
6530 {
6531         if (ndr_flags & NDR_SCALARS) {
6532                 int level = ndr_push_get_switch_value(ndr, r);
6533                 switch (level) {
6534                         case NETR_CHANGELOG_SID_INCLUDED: {
6535                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6536                         break; }
6537 
6538                         case NETR_CHANGELOG_NAME_INCLUDED: {
6539                                 {
6540                                         uint32_t _flags_save_string = ndr->flags;
6541                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6542                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6543                                         ndr->flags = _flags_save_string;
6544                                 }
6545                         break; }
6546 
6547                         default: {
6548                         break; }
6549 
6550                 }
6551         }
6552         if (ndr_flags & NDR_BUFFERS) {
6553                 int level = ndr_push_get_switch_value(ndr, r);
6554                 switch (level) {
6555                         case NETR_CHANGELOG_SID_INCLUDED:
6556                         break;
6557 
6558                         case NETR_CHANGELOG_NAME_INCLUDED:
6559                         break;
6560 
6561                         default:
6562                         break;
6563 
6564                 }
6565         }
6566         return NDR_ERR_SUCCESS;
6567 }
6568 
6569 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
     /* [<][>][^][v][top][bottom][index][help] */
6570 {
6571         int level;
6572         level = ndr_pull_get_switch_value(ndr, r);
6573         if (ndr_flags & NDR_SCALARS) {
6574                 switch (level) {
6575                         case NETR_CHANGELOG_SID_INCLUDED: {
6576                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6577                         break; }
6578 
6579                         case NETR_CHANGELOG_NAME_INCLUDED: {
6580                                 {
6581                                         uint32_t _flags_save_string = ndr->flags;
6582                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6583                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6584                                         ndr->flags = _flags_save_string;
6585                                 }
6586                         break; }
6587 
6588                         default: {
6589                         break; }
6590 
6591                 }
6592         }
6593         if (ndr_flags & NDR_BUFFERS) {
6594                 switch (level) {
6595                         case NETR_CHANGELOG_SID_INCLUDED:
6596                         break;
6597 
6598                         case NETR_CHANGELOG_NAME_INCLUDED:
6599                         break;
6600 
6601                         default:
6602                         break;
6603 
6604                 }
6605         }
6606         return NDR_ERR_SUCCESS;
6607 }
6608 
6609 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
     /* [<][>][^][v][top][bottom][index][help] */
6610 {
6611         int level;
6612         level = ndr_print_get_switch_value(ndr, r);
6613         ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6614         switch (level) {
6615                 case NETR_CHANGELOG_SID_INCLUDED:
6616                         ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6617                 break;
6618 
6619                 case NETR_CHANGELOG_NAME_INCLUDED:
6620                         ndr_print_string(ndr, "object_name", r->object_name);
6621                 break;
6622 
6623                 default:
6624                 break;
6625 
6626         }
6627 }
6628 
6629 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
     /* [<][>][^][v][top][bottom][index][help] */
6630 {
6631         if (ndr_flags & NDR_SCALARS) {
6632                 NDR_CHECK(ndr_push_align(ndr, 4));
6633                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6636                 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6637                 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6638                 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6639                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6640                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6641         }
6642         if (ndr_flags & NDR_BUFFERS) {
6643                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6644         }
6645         return NDR_ERR_SUCCESS;
6646 }
6647 
6648 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
     /* [<][>][^][v][top][bottom][index][help] */
6649 {
6650         if (ndr_flags & NDR_SCALARS) {
6651                 NDR_CHECK(ndr_pull_align(ndr, 4));
6652                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6653                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6654                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6655                 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6656                 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6657                 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6658                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6659                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6660         }
6661         if (ndr_flags & NDR_BUFFERS) {
6662                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6663         }
6664         return NDR_ERR_SUCCESS;
6665 }
6666 
6667 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
     /* [<][>][^][v][top][bottom][index][help] */
6668 {
6669         ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6670         ndr->depth++;
6671         ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6672         ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6673         ndr_print_uint32(ndr, "object_rid", r->object_rid);
6674         ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6675         ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6676         ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6677         ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6678         ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6679         ndr->depth--;
6680 }
6681 
6682 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, struct smb_iconv_convenience *ic, int flags)
     /* [<][>][^][v][top][bottom][index][help] */
6683 {
6684         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry, ic);
6685 }
6686 
6687 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
     /* [<][>][^][v][top][bottom][index][help] */
6688 {
6689         if (ndr_flags & NDR_SCALARS) {
6690                 NDR_CHECK(ndr_push_align(ndr, 4));
6691                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6692                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6693         }
6694         if (ndr_flags & NDR_BUFFERS) {
6695                 if (r->data) {
6696                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6697                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6698                 }
6699         }
6700         return NDR_ERR_SUCCESS;
6701 }
6702 
6703 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
     /* [<][>][^][v][top][bottom][index][help] */
6704 {
6705         uint32_t _ptr_data;
6706         TALLOC_CTX *_mem_save_data_0;
6707         if (ndr_flags & NDR_SCALARS) {
6708                 NDR_CHECK(ndr_pull_align(ndr, 4));
6709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6710                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6711                 if (_ptr_data) {
6712                         NDR_PULL_ALLOC(ndr, r->data);
6713                 } else {
6714                         r->data = NULL;
6715                 }
6716         }
6717         if (ndr_flags & NDR_BUFFERS) {
6718                 if (r->data) {
6719                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6720                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6721                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6722                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6723                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6725                 }
6726                 if (r->data) {
6727                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6728                 }
6729         }
6730         return NDR_ERR_SUCCESS;
6731 }
6732 
6733 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
     /* [<][>][^][v][top][bottom][index][help] */
6734 {
6735         ndr_print_struct(ndr, name, "netr_Blob");
6736         ndr->depth++;
6737         ndr_print_uint32(ndr, "length", r->length);
6738         ndr_print_ptr(ndr, "data", r->data);
6739         ndr->depth++;
6740         if (r->data) {
6741                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6742         }
6743         ndr->depth--;
6744         ndr->depth--;
6745 }
6746 
6747 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6748 {
6749         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6750         return NDR_ERR_SUCCESS;
6751 }
6752 
6753 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
6754 {
6755         uint32_t v;
6756         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6757         *r = v;
6758         return NDR_ERR_SUCCESS;
6759 }
6760 
6761 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6762 {
6763         ndr_print_uint32(ndr, name, r);
6764         ndr->depth++;
6765         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6766         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6767         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6768         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6769         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6770         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6771         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6772         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6773         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6774         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6775         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6776         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6777         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6778         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6779         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6780         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6781         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6782         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6783         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6784         ndr->depth--;
6785 }
6786 
6787 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
     /* [<][>][^][v][top][bottom][index][help] */
6788 {
6789         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6790         return NDR_ERR_SUCCESS;
6791 }
6792 
6793 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
     /* [<][>][^][v][top][bottom][index][help] */
6794 {
6795         uint32_t v;
6796         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6797         *r = v;
6798         return NDR_ERR_SUCCESS;
6799 }
6800 
6801 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
     /* [<][>][^][v][top][bottom][index][help] */
6802 {
6803         const char *val = NULL;
6804 
6805         switch (r) {
6806                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6807                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6808         }
6809         ndr_print_enum(ndr, name, "ENUM", val, r);
6810 }
6811 
6812 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6813 {
6814         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6815         return NDR_ERR_SUCCESS;
6816 }
6817 
6818 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
6819 {
6820         uint32_t v;
6821         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6822         *r = v;
6823         return NDR_ERR_SUCCESS;
6824 }
6825 
6826 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
6827 {
6828         ndr_print_uint32(ndr, name, r);
6829         ndr->depth++;
6830         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6831         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6832         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6833         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6834         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6835         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6836         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6837         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6838         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6839         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6840         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6841         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6842         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6843         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6844         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6845         ndr->depth--;
6846 }
6847 
6848 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
6849 {
6850         if (ndr_flags & NDR_SCALARS) {
6851                 NDR_CHECK(ndr_push_align(ndr, 4));
6852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6853                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6854                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6855                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6856                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6858                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6859                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6861         }
6862         if (ndr_flags & NDR_BUFFERS) {
6863                 if (r->dc_unc) {
6864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6865                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6866                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6867                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6868                 }
6869                 if (r->dc_address) {
6870                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6871                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6872                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6873                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6874                 }
6875                 if (r->domain_name) {
6876                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6877                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6878                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6879                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6880                 }
6881                 if (r->forest_name) {
6882                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6885                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6886                 }
6887                 if (r->dc_site_name) {
6888                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6889                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6890                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6891                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6892                 }
6893                 if (r->client_site_name) {
6894                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6895                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6897                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6898                 }
6899         }
6900         return NDR_ERR_SUCCESS;
6901 }
6902 
6903 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
6904 {
6905         uint32_t _ptr_dc_unc;
6906         TALLOC_CTX *_mem_save_dc_unc_0;
6907         uint32_t _ptr_dc_address;
6908         TALLOC_CTX *_mem_save_dc_address_0;
6909         uint32_t _ptr_domain_name;
6910         TALLOC_CTX *_mem_save_domain_name_0;
6911         uint32_t _ptr_forest_name;
6912         TALLOC_CTX *_mem_save_forest_name_0;
6913         uint32_t _ptr_dc_site_name;
6914         TALLOC_CTX *_mem_save_dc_site_name_0;
6915         uint32_t _ptr_client_site_name;
6916         TALLOC_CTX *_mem_save_client_site_name_0;
6917         if (ndr_flags & NDR_SCALARS) {
6918                 NDR_CHECK(ndr_pull_align(ndr, 4));
6919                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6920                 if (_ptr_dc_unc) {
6921                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6922                 } else {
6923                         r->dc_unc = NULL;
6924                 }
6925                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6926                 if (_ptr_dc_address) {
6927                         NDR_PULL_ALLOC(ndr, r->dc_address);
6928                 } else {
6929                         r->dc_address = NULL;
6930                 }
6931                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6932                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6933                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6934                 if (_ptr_domain_name) {
6935                         NDR_PULL_ALLOC(ndr, r->domain_name);
6936                 } else {
6937                         r->domain_name = NULL;
6938                 }
6939                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6940                 if (_ptr_forest_name) {
6941                         NDR_PULL_ALLOC(ndr, r->forest_name);
6942                 } else {
6943                         r->forest_name = NULL;
6944                 }
6945                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6946                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6947                 if (_ptr_dc_site_name) {
6948                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6949                 } else {
6950                         r->dc_site_name = NULL;
6951                 }
6952                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6953                 if (_ptr_client_site_name) {
6954                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6955                 } else {
6956                         r->client_site_name = NULL;
6957                 }
6958         }
6959         if (ndr_flags & NDR_BUFFERS) {
6960                 if (r->dc_unc) {
6961                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6962                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6963                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6964                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6965                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6966                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc));
6967                         }
6968                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6969                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6970                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6971                 }
6972                 if (r->dc_address) {
6973                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6974                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6975                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6976                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6977                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6978                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6979                         }
6980                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6981                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6982                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6983                 }
6984                 if (r->domain_name) {
6985                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6986                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6987                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6988                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6989                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6990                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6991                         }
6992                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6993                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6994                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6995                 }
6996                 if (r->forest_name) {
6997                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6998                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6999                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
7000                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
7001                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
7002                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name));
7003                         }
7004                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
7005                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
7006                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
7007                 }
7008                 if (r->dc_site_name) {
7009                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7010                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
7011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
7012                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
7013                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
7014                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name));
7015                         }
7016                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
7017                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16));
7018                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
7019                 }
7020                 if (r->client_site_name) {
7021                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7022                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
7023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
7024                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
7025                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
7026                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name));
7027                         }
7028                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
7029                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16));
7030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
7031                 }
7032         }
7033         return NDR_ERR_SUCCESS;
7034 }
7035 
7036 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7037 {
7038         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
7039         ndr->depth++;
7040         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
7041         ndr->depth++;
7042         if (r->dc_unc) {
7043                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
7044         }
7045         ndr->depth--;
7046         ndr_print_ptr(ndr, "dc_address", r->dc_address);
7047         ndr->depth++;
7048         if (r->dc_address) {
7049                 ndr_print_string(ndr, "dc_address", r->dc_address);
7050         }
7051         ndr->depth--;
7052         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
7053         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
7054         ndr_print_ptr(ndr, "domain_name", r->domain_name);
7055         ndr->depth++;
7056         if (r->domain_name) {
7057                 ndr_print_string(ndr, "domain_name", r->domain_name);
7058         }
7059         ndr->depth--;
7060         ndr_print_ptr(ndr, "forest_name", r->forest_name);
7061         ndr->depth++;
7062         if (r->forest_name) {
7063                 ndr_print_string(ndr, "forest_name", r->forest_name);
7064         }
7065         ndr->depth--;
7066         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
7067         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
7068         ndr->depth++;
7069         if (r->dc_site_name) {
7070                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
7071         }
7072         ndr->depth--;
7073         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
7074         ndr->depth++;
7075         if (r->client_site_name) {
7076                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
7077         }
7078         ndr->depth--;
7079         ndr->depth--;
7080 }
7081 
7082 static enum ndr_err_code ndr_push_netr_Capabilities(struct ndr_push *ndr, int ndr_flags, const union netr_Capabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
7083 {
7084         if (ndr_flags & NDR_SCALARS) {
7085                 int level = ndr_push_get_switch_value(ndr, r);
7086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7087                 switch (level) {
7088                         case 1: {
7089                                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, r->server_capabilities));
7090                         break; }
7091 
7092                         default:
7093                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7094                 }
7095         }
7096         if (ndr_flags & NDR_BUFFERS) {
7097                 int level = ndr_push_get_switch_value(ndr, r);
7098                 switch (level) {
7099                         case 1:
7100                         break;
7101 
7102                         default:
7103                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7104                 }
7105         }
7106         return NDR_ERR_SUCCESS;
7107 }
7108 
7109 static enum ndr_err_code ndr_pull_netr_Capabilities(struct ndr_pull *ndr, int ndr_flags, union netr_Capabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
7110 {
7111         int level;
7112         uint32_t _level;
7113         level = ndr_pull_get_switch_value(ndr, r);
7114         if (ndr_flags & NDR_SCALARS) {
7115                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7116                 if (_level != level) {
7117                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7118                 }
7119                 switch (level) {
7120                         case 1: {
7121                                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, &r->server_capabilities));
7122                         break; }
7123 
7124                         default:
7125                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7126                 }
7127         }
7128         if (ndr_flags & NDR_BUFFERS) {
7129                 switch (level) {
7130                         case 1:
7131                         break;
7132 
7133                         default:
7134                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7135                 }
7136         }
7137         return NDR_ERR_SUCCESS;
7138 }
7139 
7140 _PUBLIC_ void ndr_print_netr_Capabilities(struct ndr_print *ndr, const char *name, const union netr_Capabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
7141 {
7142         int level;
7143         level = ndr_print_get_switch_value(ndr, r);
7144         ndr_print_union(ndr, name, level, "netr_Capabilities");
7145         switch (level) {
7146                 case 1:
7147                         ndr_print_netr_NegotiateFlags(ndr, "server_capabilities", r->server_capabilities);
7148                 break;
7149 
7150                 default:
7151                         ndr_print_bad_level(ndr, name, level);
7152         }
7153 }
7154 
7155 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
7156 {
7157         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7158         return NDR_ERR_SUCCESS;
7159 }
7160 
7161 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
7162 {
7163         uint32_t v;
7164         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7165         *r = v;
7166         return NDR_ERR_SUCCESS;
7167 }
7168 
7169 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
7170 {
7171         ndr_print_uint32(ndr, name, r);
7172         ndr->depth++;
7173         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7174         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7175         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7176         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7177         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7178         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7179         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
7180         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
7181         ndr->depth--;
7182 }
7183 
7184 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7185 {
7186         uint32_t cntr_unknown7_0;
7187         if (ndr_flags & NDR_SCALARS) {
7188                 NDR_CHECK(ndr_push_align(ndr, 4));
7189                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
7191                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
7192                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
7193                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
7194                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
7195                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
7196                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7197                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
7198                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7199                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7200                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7201                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
7202                 }
7203         }
7204         if (ndr_flags & NDR_BUFFERS) {
7205                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7206                 if (r->workstation_domain) {
7207                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
7208                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7209                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
7210                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7211                 }
7212                 if (r->workstation_site) {
7213                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
7214                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7215                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
7216                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7217                 }
7218                 if (r->unknown1) {
7219                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
7220                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7221                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
7222                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7223                 }
7224                 if (r->unknown2) {
7225                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
7226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
7228                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7229                 }
7230                 if (r->unknown3) {
7231                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
7232                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7233                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
7234                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7235                 }
7236                 if (r->unknown4) {
7237                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
7238                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7239                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
7240                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7241                 }
7242                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7243                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
7244                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7245                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7246         }
7247         return NDR_ERR_SUCCESS;
7248 }
7249 
7250 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7251 {
7252         uint32_t _ptr_workstation_domain;
7253         TALLOC_CTX *_mem_save_workstation_domain_0;
7254         uint32_t _ptr_workstation_site;
7255         TALLOC_CTX *_mem_save_workstation_site_0;
7256         uint32_t _ptr_unknown1;
7257         TALLOC_CTX *_mem_save_unknown1_0;
7258         uint32_t _ptr_unknown2;
7259         TALLOC_CTX *_mem_save_unknown2_0;
7260         uint32_t _ptr_unknown3;
7261         TALLOC_CTX *_mem_save_unknown3_0;
7262         uint32_t _ptr_unknown4;
7263         TALLOC_CTX *_mem_save_unknown4_0;
7264         uint32_t cntr_unknown7_0;
7265         if (ndr_flags & NDR_SCALARS) {
7266                 NDR_CHECK(ndr_pull_align(ndr, 4));
7267                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
7269                 if (_ptr_workstation_domain) {
7270                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
7271                 } else {
7272                         r->workstation_domain = NULL;
7273                 }
7274                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
7275                 if (_ptr_workstation_site) {
7276                         NDR_PULL_ALLOC(ndr, r->workstation_site);
7277                 } else {
7278                         r->workstation_site = NULL;
7279                 }
7280                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
7281                 if (_ptr_unknown1) {
7282                         NDR_PULL_ALLOC(ndr, r->unknown1);
7283                 } else {
7284                         r->unknown1 = NULL;
7285                 }
7286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
7287                 if (_ptr_unknown2) {
7288                         NDR_PULL_ALLOC(ndr, r->unknown2);
7289                 } else {
7290                         r->unknown2 = NULL;
7291                 }
7292                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
7293                 if (_ptr_unknown3) {
7294                         NDR_PULL_ALLOC(ndr, r->unknown3);
7295                 } else {
7296                         r->unknown3 = NULL;
7297                 }
7298                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
7299                 if (_ptr_unknown4) {
7300                         NDR_PULL_ALLOC(ndr, r->unknown4);
7301                 } else {
7302                         r->unknown4 = NULL;
7303                 }
7304                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7305                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
7306                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7307                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7308                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7309                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
7310                 }
7311         }
7312         if (ndr_flags & NDR_BUFFERS) {
7313                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7314                 if (r->workstation_domain) {
7315                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
7316                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
7317                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
7318                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
7319                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
7320                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
7321                         }
7322                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
7323                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
7324                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
7325                 }
7326                 if (r->workstation_site) {
7327                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
7328                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
7329                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
7330                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
7331                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
7332                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
7333                         }
7334                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
7335                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
7336                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
7337                 }
7338                 if (r->unknown1) {
7339                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7340                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
7341                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
7342                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
7343                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
7344                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
7345                         }
7346                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
7347                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
7348                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
7349                 }
7350                 if (r->unknown2) {
7351                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7352                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
7353                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
7354                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
7355                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
7356                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
7357                         }
7358                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
7359                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
7360                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
7361                 }
7362                 if (r->unknown3) {
7363                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7364                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
7365                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
7366                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
7367                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
7368                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
7369                         }
7370                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
7371                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
7372                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
7373                 }
7374                 if (r->unknown4) {
7375                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7376                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
7377                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
7378                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
7379                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
7380                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
7381                         }
7382                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
7383                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
7384                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
7385                 }
7386                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7387                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
7388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7390         }
7391         return NDR_ERR_SUCCESS;
7392 }
7393 
7394 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7395 {
7396         uint32_t cntr_unknown7_0;
7397         ndr_print_struct(ndr, name, "netr_DomainQuery1");
7398         ndr->depth++;
7399         ndr_print_netr_Blob(ndr, "blob", &r->blob);
7400         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
7401         ndr->depth++;
7402         if (r->workstation_domain) {
7403                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
7404         }
7405         ndr->depth--;
7406         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
7407         ndr->depth++;
7408         if (r->workstation_site) {
7409                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
7410         }
7411         ndr->depth--;
7412         ndr_print_ptr(ndr, "unknown1", r->unknown1);
7413         ndr->depth++;
7414         if (r->unknown1) {
7415                 ndr_print_string(ndr, "unknown1", r->unknown1);
7416         }
7417         ndr->depth--;
7418         ndr_print_ptr(ndr, "unknown2", r->unknown2);
7419         ndr->depth++;
7420         if (r->unknown2) {
7421                 ndr_print_string(ndr, "unknown2", r->unknown2);
7422         }
7423         ndr->depth--;
7424         ndr_print_ptr(ndr, "unknown3", r->unknown3);
7425         ndr->depth++;
7426         if (r->unknown3) {
7427                 ndr_print_string(ndr, "unknown3", r->unknown3);
7428         }
7429         ndr->depth--;
7430         ndr_print_ptr(ndr, "unknown4", r->unknown4);
7431         ndr->depth++;
7432         if (r->unknown4) {
7433                 ndr_print_string(ndr, "unknown4", r->unknown4);
7434         }
7435         ndr->depth--;
7436         ndr_print_lsa_BinaryString(ndr, "blob2", &r->blob2);
7437         ndr_print_lsa_String(ndr, "product", &r->product);
7438         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
7439         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
7440         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
7441         ndr->depth++;
7442         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
7443                 char *idx_0=NULL;
7444                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
7445                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
7446                         free(idx_0);
7447                 }
7448         }
7449         ndr->depth--;
7450         ndr->depth--;
7451 }
7452 
7453 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
     /* [<][>][^][v][top][bottom][index][help] */
7454 {
7455         if (ndr_flags & NDR_SCALARS) {
7456                 int level = ndr_push_get_switch_value(ndr, r);
7457                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7458                 switch (level) {
7459                         case 1: {
7460                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7461                         break; }
7462 
7463                         case 2: {
7464                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7465                         break; }
7466 
7467                         default:
7468                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7469                 }
7470         }
7471         if (ndr_flags & NDR_BUFFERS) {
7472                 int level = ndr_push_get_switch_value(ndr, r);
7473                 switch (level) {
7474                         case 1:
7475                                 if (r->query1) {
7476                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7477                                 }
7478                         break;
7479 
7480                         case 2:
7481                                 if (r->query1) {
7482                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7483                                 }
7484                         break;
7485 
7486                         default:
7487                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7488                 }
7489         }
7490         return NDR_ERR_SUCCESS;
7491 }
7492 
7493 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
     /* [<][>][^][v][top][bottom][index][help] */
7494 {
7495         int level;
7496         uint32_t _level;
7497         TALLOC_CTX *_mem_save_query1_0;
7498         level = ndr_pull_get_switch_value(ndr, r);
7499         if (ndr_flags & NDR_SCALARS) {
7500                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7501                 if (_level != level) {
7502                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7503                 }
7504                 switch (level) {
7505                         case 1: {
7506                                 uint32_t _ptr_query1;
7507                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7508                                 if (_ptr_query1) {
7509                                         NDR_PULL_ALLOC(ndr, r->query1);
7510                                 } else {
7511                                         r->query1 = NULL;
7512                                 }
7513                         break; }
7514 
7515                         case 2: {
7516                                 uint32_t _ptr_query1;
7517                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7518                                 if (_ptr_query1) {
7519                                         NDR_PULL_ALLOC(ndr, r->query1);
7520                                 } else {
7521                                         r->query1 = NULL;
7522                                 }
7523                         break; }
7524 
7525                         default:
7526                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7527                 }
7528         }
7529         if (ndr_flags & NDR_BUFFERS) {
7530                 switch (level) {
7531                         case 1:
7532                                 if (r->query1) {
7533                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7534                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7535                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7536                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7537                                 }
7538                         break;
7539 
7540                         case 2:
7541                                 if (r->query1) {
7542                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7543                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7544                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7545                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7546                                 }
7547                         break;
7548 
7549                         default:
7550                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7551                 }
7552         }
7553         return NDR_ERR_SUCCESS;
7554 }
7555 
7556 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
     /* [<][>][^][v][top][bottom][index][help] */
7557 {
7558         int level;
7559         level = ndr_print_get_switch_value(ndr, r);
7560         ndr_print_union(ndr, name, level, "netr_DomainQuery");
7561         switch (level) {
7562                 case 1:
7563                         ndr_print_ptr(ndr, "query1", r->query1);
7564                         ndr->depth++;
7565                         if (r->query1) {
7566                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7567                         }
7568                         ndr->depth--;
7569                 break;
7570 
7571                 case 2:
7572                         ndr_print_ptr(ndr, "query1", r->query1);
7573                         ndr->depth++;
7574                         if (r->query1) {
7575                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7576                         }
7577                         ndr->depth--;
7578                 break;
7579 
7580                 default:
7581                         ndr_print_bad_level(ndr, name, level);
7582         }
7583 }
7584 
7585 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
     /* [<][>][^][v][top][bottom][index][help] */
7586 {
7587         if (ndr_flags & NDR_SCALARS) {
7588                 NDR_CHECK(ndr_push_align(ndr, 4));
7589                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7590                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7592                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7596         }
7597         if (ndr_flags & NDR_BUFFERS) {
7598         }
7599         return NDR_ERR_SUCCESS;
7600 }
7601 
7602 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
     /* [<][>][^][v][top][bottom][index][help] */
7603 {
7604         if (ndr_flags & NDR_SCALARS) {
7605                 NDR_CHECK(ndr_pull_align(ndr, 4));
7606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7607                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7608                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7609                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7610                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7611                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7613         }
7614         if (ndr_flags & NDR_BUFFERS) {
7615         }
7616         return NDR_ERR_SUCCESS;
7617 }
7618 
7619 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
     /* [<][>][^][v][top][bottom][index][help] */
7620 {
7621         ndr_print_struct(ndr, name, "netr_trust_extension");
7622         ndr->depth++;
7623         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7624         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7625         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7626         ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
7627         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7628         ndr_print_uint32(ndr, "trust_type", r->trust_type);
7629         ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
7630         ndr->depth--;
7631 }
7632 
7633 static enum ndr_err_code ndr_push_netr_trust_extension_container(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension_container *r)
     /* [<][>][^][v][top][bottom][index][help] */
7634 {
7635         if (ndr_flags & NDR_SCALARS) {
7636                 NDR_CHECK(ndr_push_align(ndr, 4));
7637                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7638                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7639                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7640         }
7641         if (ndr_flags & NDR_BUFFERS) {
7642                 if (r->info) {
7643                         NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7644                 }
7645         }
7646         return NDR_ERR_SUCCESS;
7647 }
7648 
7649 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
     /* [<][>][^][v][top][bottom][index][help] */
7650 {
7651         uint32_t _ptr_info;
7652         TALLOC_CTX *_mem_save_info_0;
7653         if (ndr_flags & NDR_SCALARS) {
7654                 NDR_CHECK(ndr_pull_align(ndr, 4));
7655                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7656                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7657                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7658                 if (_ptr_info) {
7659                         NDR_PULL_ALLOC(ndr, r->info);
7660                 } else {
7661                         r->info = NULL;
7662                 }
7663         }
7664         if (ndr_flags & NDR_BUFFERS) {
7665                 if (r->info) {
7666                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7667                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7668                         NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7670                 }
7671         }
7672         return NDR_ERR_SUCCESS;
7673 }
7674 
7675 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
     /* [<][>][^][v][top][bottom][index][help] */
7676 {
7677         ndr_print_struct(ndr, name, "netr_trust_extension_container");
7678         ndr->depth++;
7679         ndr_print_uint16(ndr, "length", r->length);
7680         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
7681         ndr_print_ptr(ndr, "info", r->info);
7682         ndr->depth++;
7683         if (r->info) {
7684                 ndr_print_netr_trust_extension(ndr, "info", r->info);
7685         }
7686         ndr->depth--;
7687         ndr->depth--;
7688 }
7689 
7690 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7691 {
7692         uint32_t cntr_dummystring_0;
7693         uint32_t cntr_dummy_0;
7694         if (ndr_flags & NDR_SCALARS) {
7695                 NDR_CHECK(ndr_push_align(ndr, 4));
7696                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7697                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7698                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
7699                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7700                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7701                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7702                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7703                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7704                 }
7705                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7706                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7707                 }
7708         }
7709         if (ndr_flags & NDR_BUFFERS) {
7710                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7711                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7712                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7713                 if (r->sid) {
7714                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7715                 }
7716                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7717                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7718                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7719                 }
7720         }
7721         return NDR_ERR_SUCCESS;
7722 }
7723 
7724 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7725 {
7726         uint32_t _ptr_sid;
7727         TALLOC_CTX *_mem_save_sid_0;
7728         uint32_t cntr_dummystring_0;
7729         uint32_t cntr_dummy_0;
7730         if (ndr_flags & NDR_SCALARS) {
7731                 NDR_CHECK(ndr_pull_align(ndr, 4));
7732                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7733                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7734                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
7735                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7736                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7737                 if (_ptr_sid) {
7738                         NDR_PULL_ALLOC(ndr, r->sid);
7739                 } else {
7740                         r->sid = NULL;
7741                 }
7742                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7743                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7744                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7745                 }
7746                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7747                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7748                 }
7749         }
7750         if (ndr_flags & NDR_BUFFERS) {
7751                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7752                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7753                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7754                 if (r->sid) {
7755                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7756                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7757                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7758                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7759                 }
7760                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7761                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7762                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7763                 }
7764         }
7765         return NDR_ERR_SUCCESS;
7766 }
7767 
7768 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7769 {
7770         uint32_t cntr_dummystring_0;
7771         uint32_t cntr_dummy_0;
7772         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
7773         ndr->depth++;
7774         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
7775         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
7776         ndr_print_lsa_String(ndr, "forest", &r->forest);
7777         ndr_print_GUID(ndr, "guid", &r->guid);
7778         ndr_print_ptr(ndr, "sid", r->sid);
7779         ndr->depth++;
7780         if (r->sid) {
7781                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7782         }
7783         ndr->depth--;
7784         ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
7785         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7786         ndr->depth++;
7787         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7788                 char *idx_0=NULL;
7789                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7790                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7791                         free(idx_0);
7792                 }
7793         }
7794         ndr->depth--;
7795         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)4);
7796         ndr->depth++;
7797         for (cntr_dummy_0=0;cntr_dummy_0<4;cntr_dummy_0++) {
7798                 char *idx_0=NULL;
7799                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7800                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7801                         free(idx_0);
7802                 }
7803         }
7804         ndr->depth--;
7805         ndr->depth--;
7806 }
7807 
7808 static enum ndr_err_code ndr_push_netr_LsaPolicyInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7809 {
7810         if (ndr_flags & NDR_SCALARS) {
7811                 NDR_CHECK(ndr_push_align(ndr, 4));
7812                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7813                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7814         }
7815         if (ndr_flags & NDR_BUFFERS) {
7816                 if (r->policy) {
7817                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7818                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7819                 }
7820         }
7821         return NDR_ERR_SUCCESS;
7822 }
7823 
7824 static enum ndr_err_code ndr_pull_netr_LsaPolicyInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7825 {
7826         uint32_t _ptr_policy;
7827         TALLOC_CTX *_mem_save_policy_0;
7828         if (ndr_flags & NDR_SCALARS) {
7829                 NDR_CHECK(ndr_pull_align(ndr, 4));
7830                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7831                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7832                 if (_ptr_policy) {
7833                         NDR_PULL_ALLOC(ndr, r->policy);
7834                 } else {
7835                         r->policy = NULL;
7836                 }
7837         }
7838         if (ndr_flags & NDR_BUFFERS) {
7839                 if (r->policy) {
7840                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7841                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7842                         NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7843                         NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7844                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7845                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7846                 }
7847                 if (r->policy) {
7848                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7849                 }
7850         }
7851         return NDR_ERR_SUCCESS;
7852 }
7853 
7854 _PUBLIC_ void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
7855 {
7856         ndr_print_struct(ndr, name, "netr_LsaPolicyInfo");
7857         ndr->depth++;
7858         ndr_print_uint32(ndr, "policy_size", r->policy_size);
7859         ndr_print_ptr(ndr, "policy", r->policy);
7860         ndr->depth++;
7861         if (r->policy) {
7862                 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7863         }
7864         ndr->depth--;
7865         ndr->depth--;
7866 }
7867 
7868 _PUBLIC_ enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
7869 {
7870         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7871         return NDR_ERR_SUCCESS;
7872 }
7873 
7874 _PUBLIC_ enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
7875 {
7876         uint32_t v;
7877         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7878         *r = v;
7879         return NDR_ERR_SUCCESS;
7880 }
7881 
7882 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
7883 {
7884         ndr_print_uint32(ndr, name, r);
7885         ndr->depth++;
7886         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7887         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7888         ndr->depth--;
7889 }
7890 
7891 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7892 {
7893         uint32_t cntr_trusts_1;
7894         uint32_t cntr_dummystring_0;
7895         uint32_t cntr_dummy_0;
7896         if (ndr_flags & NDR_SCALARS) {
7897                 NDR_CHECK(ndr_push_align(ndr, 4));
7898                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7899                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7900                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7901                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7902                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7903                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7904                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7905                 }
7906                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types));
7908                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7909                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7910                 }
7911         }
7912         if (ndr_flags & NDR_BUFFERS) {
7913                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7914                 if (r->trusts) {
7915                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7916                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7917                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7918                         }
7919                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7920                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7921                         }
7922                 }
7923                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7925                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7926                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7927                 }
7928         }
7929         return NDR_ERR_SUCCESS;
7930 }
7931 
7932 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7933 {
7934         uint32_t _ptr_trusts;
7935         uint32_t cntr_trusts_1;
7936         TALLOC_CTX *_mem_save_trusts_0;
7937         TALLOC_CTX *_mem_save_trusts_1;
7938         uint32_t cntr_dummystring_0;
7939         uint32_t cntr_dummy_0;
7940         if (ndr_flags & NDR_SCALARS) {
7941                 NDR_CHECK(ndr_pull_align(ndr, 4));
7942                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7945                 if (_ptr_trusts) {
7946                         NDR_PULL_ALLOC(ndr, r->trusts);
7947                 } else {
7948                         r->trusts = NULL;
7949                 }
7950                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7951                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7952                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7953                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7954                 }
7955                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7956                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types));
7957                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7958                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7959                 }
7960         }
7961         if (ndr_flags & NDR_BUFFERS) {
7962                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7963                 if (r->trusts) {
7964                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7965                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7966                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7967                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7968                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7969                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7970                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7971                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7972                         }
7973                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7974                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7975                         }
7976                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7977                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7978                 }
7979                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7980                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7981                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7982                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7983                 }
7984                 if (r->trusts) {
7985                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7986                 }
7987         }
7988         return NDR_ERR_SUCCESS;
7989 }
7990 
7991 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
     /* [<][>][^][v][top][bottom][index][help] */
7992 {
7993         uint32_t cntr_trusts_1;
7994         uint32_t cntr_dummystring_0;
7995         uint32_t cntr_dummy_0;
7996         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7997         ndr->depth++;
7998         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7999         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
8000         ndr_print_ptr(ndr, "trusts", r->trusts);
8001         ndr->depth++;
8002         if (r->trusts) {
8003                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
8004                 ndr->depth++;
8005                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
8006                         char *idx_1=NULL;
8007                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
8008                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
8009                                 free(idx_1);
8010                         }
8011                 }
8012                 ndr->depth--;
8013         }
8014         ndr->depth--;
8015         ndr_print_netr_LsaPolicyInfo(ndr, "lsa_policy", &r->lsa_policy);
8016         ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
8017         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
8018         ndr->depth++;
8019         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
8020                 char *idx_0=NULL;
8021                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
8022                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
8023                         free(idx_0);
8024                 }
8025         }
8026         ndr->depth--;
8027         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
8028         ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types);
8029         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)2);
8030         ndr->depth++;
8031         for (cntr_dummy_0=0;cntr_dummy_0<2;cntr_dummy_0++) {
8032                 char *idx_0=NULL;
8033                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
8034                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
8035                         free(idx_0);
8036                 }
8037         }
8038         ndr->depth--;
8039         ndr->depth--;
8040 }
8041 
8042 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8043 {
8044         if (ndr_flags & NDR_SCALARS) {
8045                 int level = ndr_push_get_switch_value(ndr, r);
8046                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8047                 switch (level) {
8048                         case 1: {
8049                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
8050                         break; }
8051 
8052                         case 2: {
8053                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
8054                         break; }
8055 
8056                         default:
8057                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8058                 }
8059         }
8060         if (ndr_flags & NDR_BUFFERS) {
8061                 int level = ndr_push_get_switch_value(ndr, r);
8062                 switch (level) {
8063                         case 1:
8064                                 if (r->info1) {
8065                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8066                                 }
8067                         break;
8068 
8069                         case 2:
8070                                 if (r->info2) {
8071                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8072                                 }
8073                         break;
8074 
8075                         default:
8076                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8077                 }
8078         }
8079         return NDR_ERR_SUCCESS;
8080 }
8081 
8082 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8083 {
8084         int level;
8085         uint32_t _level;
8086         TALLOC_CTX *_mem_save_info1_0;
8087         TALLOC_CTX *_mem_save_info2_0;
8088         level = ndr_pull_get_switch_value(ndr, r);
8089         if (ndr_flags & NDR_SCALARS) {
8090                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8091                 if (_level != level) {
8092                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8093                 }
8094                 switch (level) {
8095                         case 1: {
8096                                 uint32_t _ptr_info1;
8097                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8098                                 if (_ptr_info1) {
8099                                         NDR_PULL_ALLOC(ndr, r->info1);
8100                                 } else {
8101                                         r->info1 = NULL;
8102                                 }
8103                         break; }
8104 
8105                         case 2: {
8106                                 uint32_t _ptr_info2;
8107                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8108                                 if (_ptr_info2) {
8109                                         NDR_PULL_ALLOC(ndr, r->info2);
8110                                 } else {
8111                                         r->info2 = NULL;
8112                                 }
8113                         break; }
8114 
8115                         default:
8116                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8117                 }
8118         }
8119         if (ndr_flags & NDR_BUFFERS) {
8120                 switch (level) {
8121                         case 1:
8122                                 if (r->info1) {
8123                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8124                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8125                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8126                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8127                                 }
8128                         break;
8129 
8130                         case 2:
8131                                 if (r->info2) {
8132                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8133                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8134                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8135                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8136                                 }
8137                         break;
8138 
8139                         default:
8140                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8141                 }
8142         }
8143         return NDR_ERR_SUCCESS;
8144 }
8145 
8146 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8147 {
8148         int level;
8149         level = ndr_print_get_switch_value(ndr, r);
8150         ndr_print_union(ndr, name, level, "netr_DomainInfo");
8151         switch (level) {
8152                 case 1:
8153                         ndr_print_ptr(ndr, "info1", r->info1);
8154                         ndr->depth++;
8155                         if (r->info1) {
8156                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
8157                         }
8158                         ndr->depth--;
8159                 break;
8160 
8161                 case 2:
8162                         ndr_print_ptr(ndr, "info2", r->info2);
8163                         ndr->depth++;
8164                         if (r->info2) {
8165                                 ndr_print_netr_DomainInfo1(ndr, "info2", r->info2);
8166                         }
8167                         ndr->depth--;
8168                 break;
8169 
8170                 default:
8171                         ndr_print_bad_level(ndr, name, level);
8172         }
8173 }
8174 
8175 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
     /* [<][>][^][v][top][bottom][index][help] */
8176 {
8177         {
8178                 uint32_t _flags_save_STRUCT = ndr->flags;
8179                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8180                 if (ndr_flags & NDR_SCALARS) {
8181                         NDR_CHECK(ndr_push_align(ndr, 4));
8182                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
8184                 }
8185                 if (ndr_flags & NDR_BUFFERS) {
8186                 }
8187                 ndr->flags = _flags_save_STRUCT;
8188         }
8189         return NDR_ERR_SUCCESS;
8190 }
8191 
8192 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
     /* [<][>][^][v][top][bottom][index][help] */
8193 {
8194         {
8195                 uint32_t _flags_save_STRUCT = ndr->flags;
8196                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8197                 if (ndr_flags & NDR_SCALARS) {
8198                         NDR_CHECK(ndr_pull_align(ndr, 4));
8199                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8200                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
8201                 }
8202                 if (ndr_flags & NDR_BUFFERS) {
8203                 }
8204                 ndr->flags = _flags_save_STRUCT;
8205         }
8206         return NDR_ERR_SUCCESS;
8207 }
8208 
8209 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
     /* [<][>][^][v][top][bottom][index][help] */
8210 {
8211         ndr_print_struct(ndr, name, "netr_CryptPassword");
8212         {
8213                 uint32_t _flags_save_STRUCT = ndr->flags;
8214                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8215                 ndr->depth++;
8216                 ndr_print_array_uint8(ndr, "data", r->data, 512);
8217                 ndr_print_uint32(ndr, "length", r->length);
8218                 ndr->depth--;
8219                 ndr->flags = _flags_save_STRUCT;
8220         }
8221 }
8222 
8223 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8224 {
8225         uint32_t cntr_sitename_1;
8226         if (ndr_flags & NDR_SCALARS) {
8227                 NDR_CHECK(ndr_push_align(ndr, 4));
8228                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8229                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8230         }
8231         if (ndr_flags & NDR_BUFFERS) {
8232                 if (r->sitename) {
8233                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8234                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8235                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8236                         }
8237                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8238                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8239                         }
8240                 }
8241         }
8242         return NDR_ERR_SUCCESS;
8243 }
8244 
8245 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8246 {
8247         uint32_t _ptr_sitename;
8248         uint32_t cntr_sitename_1;
8249         TALLOC_CTX *_mem_save_sitename_0;
8250         TALLOC_CTX *_mem_save_sitename_1;
8251         if (ndr_flags & NDR_SCALARS) {
8252                 NDR_CHECK(ndr_pull_align(ndr, 4));
8253                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8254                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8255                 if (_ptr_sitename) {
8256                         NDR_PULL_ALLOC(ndr, r->sitename);
8257                 } else {
8258                         r->sitename = NULL;
8259                 }
8260         }
8261         if (ndr_flags & NDR_BUFFERS) {
8262                 if (r->sitename) {
8263                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8264                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8265                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8266                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8267                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8268                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8269                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8270                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8271                         }
8272                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8273                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8274                         }
8275                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8276                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8277                 }
8278                 if (r->sitename) {
8279                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8280                 }
8281         }
8282         return NDR_ERR_SUCCESS;
8283 }
8284 
8285 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8286 {
8287         uint32_t cntr_sitename_1;
8288         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8289         ndr->depth++;
8290         ndr_print_uint32(ndr, "count", r->count);
8291         ndr_print_ptr(ndr, "sitename", r->sitename);
8292         ndr->depth++;
8293         if (r->sitename) {
8294                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8295                 ndr->depth++;
8296                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8297                         char *idx_1=NULL;
8298                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8299                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8300                                 free(idx_1);
8301                         }
8302                 }
8303                 ndr->depth--;
8304         }
8305         ndr->depth--;
8306         ndr->depth--;
8307 }
8308 
8309 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
     /* [<][>][^][v][top][bottom][index][help] */
8310 {
8311         if (ndr_flags & NDR_SCALARS) {
8312                 NDR_CHECK(ndr_push_align(ndr, 4));
8313                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8315         }
8316         if (ndr_flags & NDR_BUFFERS) {
8317                 if (r->buffer) {
8318                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8319                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8320                 }
8321         }
8322         return NDR_ERR_SUCCESS;
8323 }
8324 
8325 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
     /* [<][>][^][v][top][bottom][index][help] */
8326 {
8327         uint32_t _ptr_buffer;
8328         TALLOC_CTX *_mem_save_buffer_0;
8329         if (ndr_flags & NDR_SCALARS) {
8330                 NDR_CHECK(ndr_pull_align(ndr, 4));
8331                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8332                 if (_ptr_buffer) {
8333                         NDR_PULL_ALLOC(ndr, r->buffer);
8334                 } else {
8335                         r->buffer = NULL;
8336                 }
8337                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8338         }
8339         if (ndr_flags & NDR_BUFFERS) {
8340                 if (r->buffer) {
8341                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8342                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8343                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8344                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8345                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8346                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8347                 }
8348                 if (r->buffer) {
8349                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8350                 }
8351         }
8352         return NDR_ERR_SUCCESS;
8353 }
8354 
8355 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
     /* [<][>][^][v][top][bottom][index][help] */
8356 {
8357         ndr_print_struct(ndr, name, "netr_DsRAddress");
8358         ndr->depth++;
8359         ndr_print_ptr(ndr, "buffer", r->buffer);
8360         ndr->depth++;
8361         if (r->buffer) {
8362                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8363         }
8364         ndr->depth--;
8365         ndr_print_uint32(ndr, "size", r->size);
8366         ndr->depth--;
8367 }
8368 
8369 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
     /* [<][>][^][v][top][bottom][index][help] */
8370 {
8371         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8372         return NDR_ERR_SUCCESS;
8373 }
8374 
8375 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
     /* [<][>][^][v][top][bottom][index][help] */
8376 {
8377         uint32_t v;
8378         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8379         *r = v;
8380         return NDR_ERR_SUCCESS;
8381 }
8382 
8383 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
     /* [<][>][^][v][top][bottom][index][help] */
8384 {
8385         const char *val = NULL;
8386 
8387         switch (r) {
8388                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8389                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8390                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8391                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8392         }
8393         ndr_print_enum(ndr, name, "ENUM", val, r);
8394 }
8395 
8396 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
8397 {
8398         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8399         return NDR_ERR_SUCCESS;
8400 }
8401 
8402 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     /* [<][>][^][v][top][bottom][index][help] */
8403 {
8404         uint32_t v;
8405         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8406         *r = v;
8407         return NDR_ERR_SUCCESS;
8408 }
8409 
8410 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
     /* [<][>][^][v][top][bottom][index][help] */
8411 {
8412         ndr_print_uint32(ndr, name, r);
8413         ndr->depth++;
8414         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8415         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8416         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8417         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8418         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8419         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8420         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8421         ndr->depth--;
8422 }
8423 
8424 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
     /* [<][>][^][v][top][bottom][index][help] */
8425 {
8426         if (ndr_flags & NDR_SCALARS) {
8427                 NDR_CHECK(ndr_push_align(ndr, 4));
8428                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8429                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8430                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8432                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8433                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8434                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8435                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8436         }
8437         if (ndr_flags & NDR_BUFFERS) {
8438                 if (r->netbios_name) {
8439                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8440                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8441                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8442                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8443                 }
8444                 if (r->dns_name) {
8445                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8446                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8447                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8448                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8449                 }
8450                 if (r->sid) {
8451                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8452                 }
8453         }
8454         return NDR_ERR_SUCCESS;
8455 }
8456 
8457 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
     /* [<][>][^][v][top][bottom][index][help] */
8458 {
8459         uint32_t _ptr_netbios_name;
8460         TALLOC_CTX *_mem_save_netbios_name_0;
8461         uint32_t _ptr_dns_name;
8462         TALLOC_CTX *_mem_save_dns_name_0;
8463         uint32_t _ptr_sid;
8464         TALLOC_CTX *_mem_save_sid_0;
8465         if (ndr_flags & NDR_SCALARS) {
8466                 NDR_CHECK(ndr_pull_align(ndr, 4));
8467                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8468                 if (_ptr_netbios_name) {
8469                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8470                 } else {
8471                         r->netbios_name = NULL;
8472                 }
8473                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8474                 if (_ptr_dns_name) {
8475                         NDR_PULL_ALLOC(ndr, r->dns_name);
8476                 } else {
8477                         r->dns_name = NULL;
8478                 }
8479                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8480                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8481                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8482                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8483                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8484                 if (_ptr_sid) {
8485                         NDR_PULL_ALLOC(ndr, r->sid);
8486                 } else {
8487                         r->sid = NULL;
8488                 }
8489                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8490         }
8491         if (ndr_flags & NDR_BUFFERS) {
8492                 if (r->netbios_name) {
8493                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8494                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8495                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8496                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8497                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8498                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
8499                         }
8500                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8501                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8502                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8503                 }
8504                 if (r->dns_name) {
8505                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8506                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8507                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8508                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8509                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8510                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
8511                         }
8512                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8513                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8514                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8515                 }
8516                 if (r->sid) {
8517                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8518                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8519                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8520                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8521                 }
8522         }
8523         return NDR_ERR_SUCCESS;
8524 }
8525 
8526 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
     /* [<][>][^][v][top][bottom][index][help] */
8527 {
8528         ndr_print_struct(ndr, name, "netr_DomainTrust");
8529         ndr->depth++;
8530         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8531         ndr->depth++;
8532         if (r->netbios_name) {
8533                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8534         }
8535         ndr->depth--;
8536         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8537         ndr->depth++;
8538         if (r->dns_name) {
8539                 ndr_print_string(ndr, "dns_name", r->dns_name);
8540         }
8541         ndr->depth--;
8542         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8543         ndr_print_uint32(ndr, "parent_index", r->parent_index);
8544         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8545         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8546         ndr_print_ptr(ndr, "sid", r->sid);
8547         ndr->depth++;
8548         if (r->sid) {
8549                 ndr_print_dom_sid2(ndr, "sid", r->sid);
8550         }
8551         ndr->depth--;
8552         ndr_print_GUID(ndr, "guid", &r->guid);
8553         ndr->depth--;
8554 }
8555 
8556 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
     /* [<][>][^][v][top][bottom][index][help] */
8557 {
8558         uint32_t cntr_array_1;
8559         if (ndr_flags & NDR_SCALARS) {
8560                 NDR_CHECK(ndr_push_align(ndr, 4));
8561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8563         }
8564         if (ndr_flags & NDR_BUFFERS) {
8565                 if (r->array) {
8566                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8567                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8568                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8569                         }
8570                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8571                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8572                         }
8573                 }
8574         }
8575         return NDR_ERR_SUCCESS;
8576 }
8577 
8578 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
     /* [<][>][^][v][top][bottom][index][help] */
8579 {
8580         uint32_t _ptr_array;
8581         uint32_t cntr_array_1;
8582         TALLOC_CTX *_mem_save_array_0;
8583         TALLOC_CTX *_mem_save_array_1;
8584         if (ndr_flags & NDR_SCALARS) {
8585                 NDR_CHECK(ndr_pull_align(ndr, 4));
8586                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8587                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8588                 if (_ptr_array) {
8589                         NDR_PULL_ALLOC(ndr, r->array);
8590                 } else {
8591                         r->array = NULL;
8592                 }
8593         }
8594         if (ndr_flags & NDR_BUFFERS) {
8595                 if (r->array) {
8596                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8597                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8598                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8599                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8600                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8601                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8602                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8603                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8604                         }
8605                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8606                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8607                         }
8608                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8609                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8610                 }
8611                 if (r->array) {
8612                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8613                 }
8614         }
8615         return NDR_ERR_SUCCESS;
8616 }
8617 
8618 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
     /* [<][>][^][v][top][bottom][index][help] */
8619 {
8620         uint32_t cntr_array_1;
8621         ndr_print_struct(ndr, name, "netr_DomainTrustList");
8622         ndr->depth++;
8623         ndr_print_uint32(ndr, "count", r->count);
8624         ndr_print_ptr(ndr, "array", r->array);
8625         ndr->depth++;
8626         if (r->array) {
8627                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8628                 ndr->depth++;
8629                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8630                         char *idx_1=NULL;
8631                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8632                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8633                                 free(idx_1);
8634                         }
8635                 }
8636                 ndr->depth--;
8637         }
8638         ndr->depth--;
8639         ndr->depth--;
8640 }
8641 
8642 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8643 {
8644         uint32_t cntr_sitename_1;
8645         uint32_t cntr_subnetname_1;
8646         if (ndr_flags & NDR_SCALARS) {
8647                 NDR_CHECK(ndr_push_align(ndr, 4));
8648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8649                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8650                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8651         }
8652         if (ndr_flags & NDR_BUFFERS) {
8653                 if (r->sitename) {
8654                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8655                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8656                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8657                         }
8658                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8659                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8660                         }
8661                 }
8662                 if (r->subnetname) {
8663                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8664                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8665                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8666                         }
8667                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8668                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8669                         }
8670                 }
8671         }
8672         return NDR_ERR_SUCCESS;
8673 }
8674 
8675 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8676 {
8677         uint32_t _ptr_sitename;
8678         uint32_t cntr_sitename_1;
8679         TALLOC_CTX *_mem_save_sitename_0;
8680         TALLOC_CTX *_mem_save_sitename_1;
8681         uint32_t _ptr_subnetname;
8682         uint32_t cntr_subnetname_1;
8683         TALLOC_CTX *_mem_save_subnetname_0;
8684         TALLOC_CTX *_mem_save_subnetname_1;
8685         if (ndr_flags & NDR_SCALARS) {
8686                 NDR_CHECK(ndr_pull_align(ndr, 4));
8687                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8688                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8689                 if (_ptr_sitename) {
8690                         NDR_PULL_ALLOC(ndr, r->sitename);
8691                 } else {
8692                         r->sitename = NULL;
8693                 }
8694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8695                 if (_ptr_subnetname) {
8696                         NDR_PULL_ALLOC(ndr, r->subnetname);
8697                 } else {
8698                         r->subnetname = NULL;
8699                 }
8700         }
8701         if (ndr_flags & NDR_BUFFERS) {
8702                 if (r->sitename) {
8703                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8704                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8705                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8706                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8707                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8708                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8709                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8710                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8711                         }
8712                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8713                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8714                         }
8715                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8716                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8717                 }
8718                 if (r->subnetname) {
8719                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8720                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8721                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8722                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8723                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8724                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8725                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8726                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8727                         }
8728                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8729                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8730                         }
8731                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8732                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8733                 }
8734                 if (r->sitename) {
8735                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8736                 }
8737                 if (r->subnetname) {
8738                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8739                 }
8740         }
8741         return NDR_ERR_SUCCESS;
8742 }
8743 
8744 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8745 {
8746         uint32_t cntr_sitename_1;
8747         uint32_t cntr_subnetname_1;
8748         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8749         ndr->depth++;
8750         ndr_print_uint32(ndr, "count", r->count);
8751         ndr_print_ptr(ndr, "sitename", r->sitename);
8752         ndr->depth++;
8753         if (r->sitename) {
8754                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8755                 ndr->depth++;
8756                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8757                         char *idx_1=NULL;
8758                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8759                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8760                                 free(idx_1);
8761                         }
8762                 }
8763                 ndr->depth--;
8764         }
8765         ndr->depth--;
8766         ndr_print_ptr(ndr, "subnetname", r->subnetname);
8767         ndr->depth++;
8768         if (r->subnetname) {
8769                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8770                 ndr->depth++;
8771                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8772                         char *idx_1=NULL;
8773                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8774                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8775                                 free(idx_1);
8776                         }
8777                 }
8778                 ndr->depth--;
8779         }
8780         ndr->depth--;
8781         ndr->depth--;
8782 }
8783 
8784 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8785 {
8786         uint32_t cntr_sites_1;
8787         if (ndr_flags & NDR_SCALARS) {
8788                 NDR_CHECK(ndr_push_align(ndr, 4));
8789                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8790                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8791         }
8792         if (ndr_flags & NDR_BUFFERS) {
8793                 if (r->sites) {
8794                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8795                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8796                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8797                         }
8798                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8799                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8800                         }
8801                 }
8802         }
8803         return NDR_ERR_SUCCESS;
8804 }
8805 
8806 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8807 {
8808         uint32_t _ptr_sites;
8809         uint32_t cntr_sites_1;
8810         TALLOC_CTX *_mem_save_sites_0;
8811         TALLOC_CTX *_mem_save_sites_1;
8812         if (ndr_flags & NDR_SCALARS) {
8813                 NDR_CHECK(ndr_pull_align(ndr, 4));
8814                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
8815                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
8816                 if (_ptr_sites) {
8817                         NDR_PULL_ALLOC(ndr, r->sites);
8818                 } else {
8819                         r->sites = NULL;
8820                 }
8821         }
8822         if (ndr_flags & NDR_BUFFERS) {
8823                 if (r->sites) {
8824                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
8825                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8826                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
8827                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
8828                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
8829                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8830                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8831                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8832                         }
8833                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8834                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8835                         }
8836                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
8837                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
8838                 }
8839                 if (r->sites) {
8840                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
8841                 }
8842         }
8843         return NDR_ERR_SUCCESS;
8844 }
8845 
8846 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
     /* [<][>][^][v][top][bottom][index][help] */
8847 {
8848         uint32_t cntr_sites_1;
8849         ndr_print_struct(ndr, name, "DcSitesCtr");
8850         ndr->depth++;
8851         ndr_print_uint32(ndr, "num_sites", r->num_sites);
8852         ndr_print_ptr(ndr, "sites", r->sites);
8853         ndr->depth++;
8854         if (r->sites) {
8855                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
8856                 ndr->depth++;
8857                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
8858                         char *idx_1=NULL;
8859                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
8860                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
8861                                 free(idx_1);
8862                         }
8863                 }
8864                 ndr->depth--;
8865         }
8866         ndr->depth--;
8867         ndr->depth--;
8868 }
8869 
8870 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8871 {
8872         uint32_t cntr_data_1;
8873         uint32_t cntr_entries_1;
8874         if (ndr_flags & NDR_SCALARS) {
8875                 NDR_CHECK(ndr_push_align(ndr, 4));
8876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8877                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
8879                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
8880         }
8881         if (ndr_flags & NDR_BUFFERS) {
8882                 if (r->data) {
8883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8884                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8885                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
8886                         }
8887                 }
8888                 if (r->entries) {
8889                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8890                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8891                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8892                         }
8893                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8894                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8895                         }
8896                 }
8897         }
8898         return NDR_ERR_SUCCESS;
8899 }
8900 
8901 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8902 {
8903         uint32_t _ptr_data;
8904         uint32_t cntr_data_1;
8905         TALLOC_CTX *_mem_save_data_0;
8906         TALLOC_CTX *_mem_save_data_1;
8907         uint32_t _ptr_entries;
8908         uint32_t cntr_entries_1;
8909         TALLOC_CTX *_mem_save_entries_0;
8910         TALLOC_CTX *_mem_save_entries_1;
8911         if (ndr_flags & NDR_SCALARS) {
8912                 NDR_CHECK(ndr_pull_align(ndr, 4));
8913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8914                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8915                 if (_ptr_data) {
8916                         NDR_PULL_ALLOC(ndr, r->data);
8917                 } else {
8918                         r->data = NULL;
8919                 }
8920                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
8921                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
8922                 if (_ptr_entries) {
8923                         NDR_PULL_ALLOC(ndr, r->entries);
8924                 } else {
8925                         r->entries = NULL;
8926                 }
8927         }
8928         if (ndr_flags & NDR_BUFFERS) {
8929                 if (r->data) {
8930                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8931                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8932                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
8933                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
8934                         _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
8935                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8936                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8937                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
8938                         }
8939                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
8940                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8941                 }
8942                 if (r->entries) {
8943                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8944                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8945                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
8946                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
8947                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
8948                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8949                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8950                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8951                         }
8952                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8953                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8954                         }
8955                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
8956                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
8957                 }
8958                 if (r->data) {
8959                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
8960                 }
8961                 if (r->entries) {
8962                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
8963                 }
8964         }
8965         return NDR_ERR_SUCCESS;
8966 }
8967 
8968 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
8969 {
8970         uint32_t cntr_data_1;
8971         uint32_t cntr_entries_1;
8972         ndr_print_struct(ndr, name, "netr_TrustInfo");
8973         ndr->depth++;
8974         ndr_print_uint32(ndr, "count", r->count);
8975         ndr_print_ptr(ndr, "data", r->data);
8976         ndr->depth++;
8977         if (r->data) {
8978                 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
8979                 ndr->depth++;
8980                 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
8981                         char *idx_1=NULL;
8982                         if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
8983                                 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
8984                                 free(idx_1);
8985                         }
8986                 }
8987                 ndr->depth--;
8988         }
8989         ndr->depth--;
8990         ndr_print_uint32(ndr, "entry_count", r->entry_count);
8991         ndr_print_ptr(ndr, "entries", r->entries);
8992         ndr->depth++;
8993         if (r->entries) {
8994                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
8995                 ndr->depth++;
8996                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
8997                         char *idx_1=NULL;
8998                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
8999                                 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
9000                                 free(idx_1);
9001                         }
9002                 }
9003                 ndr->depth--;
9004         }
9005         ndr->depth--;
9006         ndr->depth--;
9007 }
9008 
9009 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9010 {
9011         if (flags & NDR_IN) {
9012                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9013                 if (r->in.server_name) {
9014                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9015                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9016                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9017                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9018                 }
9019                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9020                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9021                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9022                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9024                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9025                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9026                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9027         }
9028         if (flags & NDR_OUT) {
9029                 if (r->out.info == NULL) {
9030                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9031                 }
9032                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
9033                 if (*r->out.info) {
9034                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9035                 }
9036                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9037         }
9038         return NDR_ERR_SUCCESS;
9039 }
9040 
9041 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9042 {
9043         uint32_t _ptr_server_name;
9044         uint32_t _ptr_info;
9045         TALLOC_CTX *_mem_save_server_name_0;
9046         TALLOC_CTX *_mem_save_info_0;
9047         TALLOC_CTX *_mem_save_info_1;
9048         if (flags & NDR_IN) {
9049                 ZERO_STRUCT(r->out);
9050 
9051                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9052                 if (_ptr_server_name) {
9053                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9054                 } else {
9055                         r->in.server_name = NULL;
9056                 }
9057                 if (r->in.server_name) {
9058                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9059                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9060                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9061                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9062                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9063                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9064                         }
9065                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9066                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9067                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9068                 }
9069                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9070                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9071                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9072                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
9073                 }
9074                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9075                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
9076                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9077                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9078                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9079                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
9080                 }
9081                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9082                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9083                 NDR_PULL_ALLOC(ndr, r->out.info);
9084                 ZERO_STRUCTP(r->out.info);
9085         }
9086         if (flags & NDR_OUT) {
9087                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9088                         NDR_PULL_ALLOC(ndr, r->out.info);
9089                 }
9090                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9091                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9092                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9093                 if (_ptr_info) {
9094                         NDR_PULL_ALLOC(ndr, *r->out.info);
9095                 } else {
9096                         *r->out.info = NULL;
9097                 }
9098                 if (*r->out.info) {
9099                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9100                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9101                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9102                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9103                 }
9104                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9105                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9106         }
9107         return NDR_ERR_SUCCESS;
9108 }
9109 
9110 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9111 {
9112         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
9113         ndr->depth++;
9114         if (flags & NDR_SET_VALUES) {
9115                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9116         }
9117         if (flags & NDR_IN) {
9118                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
9119                 ndr->depth++;
9120                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9121                 ndr->depth++;
9122                 if (r->in.server_name) {
9123                         ndr_print_string(ndr, "server_name", r->in.server_name);
9124                 }
9125                 ndr->depth--;
9126                 ndr_print_string(ndr, "account_name", r->in.account_name);
9127                 ndr_print_string(ndr, "workstation", r->in.workstation);
9128                 ndr->depth--;
9129         }
9130         if (flags & NDR_OUT) {
9131                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
9132                 ndr->depth++;
9133                 ndr_print_ptr(ndr, "info", r->out.info);
9134                 ndr->depth++;
9135                 ndr_print_ptr(ndr, "info", *r->out.info);
9136                 ndr->depth++;
9137                 if (*r->out.info) {
9138                         ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
9139                 }
9140                 ndr->depth--;
9141                 ndr->depth--;
9142                 ndr_print_WERROR(ndr, "result", r->out.result);
9143                 ndr->depth--;
9144         }
9145         ndr->depth--;
9146 }
9147 
9148 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9149 {
9150         if (flags & NDR_IN) {
9151                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9152                 if (r->in.server_name) {
9153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9155                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9156                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9157                 }
9158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9161                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9165                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9166         }
9167         if (flags & NDR_OUT) {
9168                 if (r->out.info == NULL) {
9169                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9170                 }
9171                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9172                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9173         }
9174         return NDR_ERR_SUCCESS;
9175 }
9176 
9177 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9178 {
9179         uint32_t _ptr_server_name;
9180         TALLOC_CTX *_mem_save_server_name_0;
9181         TALLOC_CTX *_mem_save_info_0;
9182         if (flags & NDR_IN) {
9183                 ZERO_STRUCT(r->out);
9184 
9185                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9186                 if (_ptr_server_name) {
9187                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9188                 } else {
9189                         r->in.server_name = NULL;
9190                 }
9191                 if (r->in.server_name) {
9192                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9193                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9194                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9195                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9196                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9197                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9198                         }
9199                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9200                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9201                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9202                 }
9203                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9204                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9205                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9206                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
9207                 }
9208                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9209                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
9210                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9211                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9212                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9213                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
9214                 }
9215                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9216                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9217                 NDR_PULL_ALLOC(ndr, r->out.info);
9218                 ZERO_STRUCTP(r->out.info);
9219         }
9220         if (flags & NDR_OUT) {
9221                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9222                         NDR_PULL_ALLOC(ndr, r->out.info);
9223                 }
9224                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9225                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9226                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9227                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9228                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9229         }
9230         return NDR_ERR_SUCCESS;
9231 }
9232 
9233 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9234 {
9235         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
9236         ndr->depth++;
9237         if (flags & NDR_SET_VALUES) {
9238                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9239         }
9240         if (flags & NDR_IN) {
9241                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
9242                 ndr->depth++;
9243                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9244                 ndr->depth++;
9245                 if (r->in.server_name) {
9246                         ndr_print_string(ndr, "server_name", r->in.server_name);
9247                 }
9248                 ndr->depth--;
9249                 ndr_print_string(ndr, "account_name", r->in.account_name);
9250                 ndr_print_string(ndr, "workstation", r->in.workstation);
9251                 ndr->depth--;
9252         }
9253         if (flags & NDR_OUT) {
9254                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9255                 ndr->depth++;
9256                 ndr_print_ptr(ndr, "info", r->out.info);
9257                 ndr->depth++;
9258                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9259                 ndr->depth--;
9260                 ndr_print_WERROR(ndr, "result", r->out.result);
9261                 ndr->depth--;
9262         }
9263         ndr->depth--;
9264 }
9265 
9266 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9267 {
9268         if (flags & NDR_IN) {
9269                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9270                 if (r->in.server_name) {
9271                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9272                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9273                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9274                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9275                 }
9276                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9277                 if (r->in.computer_name) {
9278                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9279                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9280                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9281                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9282                 }
9283                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9284                 if (r->in.credential) {
9285                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9286                 }
9287                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9288                 if (r->in.return_authenticator) {
9289                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9290                 }
9291                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9292                 if (r->in.logon == NULL) {
9293                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9294                 }
9295                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9296                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9297                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9298         }
9299         if (flags & NDR_OUT) {
9300                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9301                 if (r->out.return_authenticator) {
9302                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9303                 }
9304                 if (r->out.validation == NULL) {
9305                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9306                 }
9307                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9308                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9309                 if (r->out.authoritative == NULL) {
9310                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9311                 }
9312                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9313                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9314         }
9315         return NDR_ERR_SUCCESS;
9316 }
9317 
9318 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9319 {
9320         uint32_t _ptr_server_name;
9321         uint32_t _ptr_computer_name;
9322         uint32_t _ptr_credential;
9323         uint32_t _ptr_return_authenticator;
9324         TALLOC_CTX *_mem_save_server_name_0;
9325         TALLOC_CTX *_mem_save_computer_name_0;
9326         TALLOC_CTX *_mem_save_credential_0;
9327         TALLOC_CTX *_mem_save_return_authenticator_0;
9328         TALLOC_CTX *_mem_save_logon_0;
9329         TALLOC_CTX *_mem_save_validation_0;
9330         TALLOC_CTX *_mem_save_authoritative_0;
9331         if (flags & NDR_IN) {
9332                 ZERO_STRUCT(r->out);
9333 
9334                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9335                 if (_ptr_server_name) {
9336                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9337                 } else {
9338                         r->in.server_name = NULL;
9339                 }
9340                 if (r->in.server_name) {
9341                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9342                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9343                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9344                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9345                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9346                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9347                         }
9348                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9349                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9350                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9351                 }
9352                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9353                 if (_ptr_computer_name) {
9354                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9355                 } else {
9356                         r->in.computer_name = NULL;
9357                 }
9358                 if (r->in.computer_name) {
9359                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9360                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9361                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9362                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9363                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9364                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
9365                         }
9366                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9367                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
9368                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9369                 }
9370                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9371                 if (_ptr_credential) {
9372                         NDR_PULL_ALLOC(ndr, r->in.credential);
9373                 } else {
9374                         r->in.credential = NULL;
9375                 }
9376                 if (r->in.credential) {
9377                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9378                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9379                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9380                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9381                 }
9382                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9383                 if (_ptr_return_authenticator) {
9384                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9385                 } else {
9386                         r->in.return_authenticator = NULL;
9387                 }
9388                 if (r->in.return_authenticator) {
9389                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9390                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9391                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9392                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9393                 }
9394                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9395                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9396                         NDR_PULL_ALLOC(ndr, r->in.logon);
9397                 }
9398                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9399                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9400                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9401                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9402                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9403                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9404                 NDR_PULL_ALLOC(ndr, r->out.validation);
9405                 ZERO_STRUCTP(r->out.validation);
9406                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9407                 ZERO_STRUCTP(r->out.authoritative);
9408         }
9409         if (flags & NDR_OUT) {
9410                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9411                 if (_ptr_return_authenticator) {
9412                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9413                 } else {
9414                         r->out.return_authenticator = NULL;
9415                 }
9416                 if (r->out.return_authenticator) {
9417                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9418                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9419                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9420                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9421                 }
9422                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9423                         NDR_PULL_ALLOC(ndr, r->out.validation);
9424                 }
9425                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9426                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9427                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9428                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9429                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9430                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9431                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
9432                 }
9433                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9434                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9435                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9436                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9437                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9438         }
9439         return NDR_ERR_SUCCESS;
9440 }
9441 
9442 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
     /* [<][>][^][v][top][bottom][index][help] */
9443 {
9444         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
9445         ndr->depth++;
9446         if (flags & NDR_SET_VALUES) {
9447                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9448         }
9449         if (flags & NDR_IN) {
9450                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
9451                 ndr->depth++;
9452                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9453                 ndr->depth++;
9454                 if (r->in.server_name) {
9455                         ndr_print_string(ndr, "server_name", r->in.server_name);
9456                 }
9457                 ndr->depth--;
9458                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9459                 ndr->depth++;
9460                 if (r->in.computer_name) {
9461                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9462                 }
9463                 ndr->depth--;
9464                 ndr_print_ptr(ndr, "credential", r->in.credential);
9465                 ndr->depth++;
9466                 if (r->in.credential) {
9467                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9468                 }
9469                 ndr->depth--;
9470                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9471                 ndr->depth++;
9472                 if (r->in.return_authenticator) {
9473                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9474                 }
9475                 ndr->depth--;
9476                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9477                 ndr_print_ptr(ndr, "logon", r->in.logon);
9478                 ndr->depth++;
9479                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9480                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9481                 ndr->depth--;
9482                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9483                 ndr->depth--;
9484         }
9485         if (flags & NDR_OUT) {
9486                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9487                 ndr->depth++;
9488                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9489                 ndr->depth++;
9490                 if (r->out.return_authenticator) {
9491                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9492                 }
9493                 ndr->depth--;
9494                 ndr_print_ptr(ndr, "validation", r->out.validation);
9495                 ndr->depth++;
9496                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9497                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9498                 ndr->depth--;
9499                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9500                 ndr->depth++;
9501                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9502                 ndr->depth--;
9503                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9504                 ndr->depth--;
9505         }
9506         ndr->depth--;
9507 }
9508 
9509 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9510 {
9511         if (flags & NDR_IN) {
9512                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9513                 if (r->in.server_name) {
9514                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9515                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9516                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9517                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9518                 }
9519                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9520                 if (r->in.computer_name) {
9521                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9522                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9524                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9525                 }
9526                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9527                 if (r->in.credential) {
9528                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9529                 }
9530                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9531                 if (r->in.return_authenticator) {
9532                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9533                 }
9534                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9535                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9536                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9537         }
9538         if (flags & NDR_OUT) {
9539                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9540                 if (r->out.return_authenticator) {
9541                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9542                 }
9543                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9544         }
9545         return NDR_ERR_SUCCESS;
9546 }
9547 
9548 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9549 {
9550         uint32_t _ptr_server_name;
9551         uint32_t _ptr_computer_name;
9552         uint32_t _ptr_credential;
9553         uint32_t _ptr_return_authenticator;
9554         TALLOC_CTX *_mem_save_server_name_0;
9555         TALLOC_CTX *_mem_save_computer_name_0;
9556         TALLOC_CTX *_mem_save_credential_0;
9557         TALLOC_CTX *_mem_save_return_authenticator_0;
9558         if (flags & NDR_IN) {
9559                 ZERO_STRUCT(r->out);
9560 
9561                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9562                 if (_ptr_server_name) {
9563                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9564                 } else {
9565                         r->in.server_name = NULL;
9566                 }
9567                 if (r->in.server_name) {
9568                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9569                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9570                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9571                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9572                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9573                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9574                         }
9575                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9576                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9577                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9578                 }
9579                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9580                 if (_ptr_computer_name) {
9581                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9582                 } else {
9583                         r->in.computer_name = NULL;
9584                 }
9585                 if (r->in.computer_name) {
9586                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9587                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9588                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9589                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9590                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9591                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
9592                         }
9593                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9594                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
9595                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9596                 }
9597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9598                 if (_ptr_credential) {
9599                         NDR_PULL_ALLOC(ndr, r->in.credential);
9600                 } else {
9601                         r->in.credential = NULL;
9602                 }
9603                 if (r->in.credential) {
9604                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9605                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9606                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9607                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9608                 }
9609                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9610                 if (_ptr_return_authenticator) {
9611                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9612                 } else {
9613                         r->in.return_authenticator = NULL;
9614                 }
9615                 if (r->in.return_authenticator) {
9616                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9617                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9618                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9619                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9620                 }
9621                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9622                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9623                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9624         }
9625         if (flags & NDR_OUT) {
9626                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9627                 if (_ptr_return_authenticator) {
9628                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9629                 } else {
9630                         r->out.return_authenticator = NULL;
9631                 }
9632                 if (r->out.return_authenticator) {
9633                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9634                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9635                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9636                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9637                 }
9638                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9639         }
9640         return NDR_ERR_SUCCESS;
9641 }
9642 
9643 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
     /* [<][>][^][v][top][bottom][index][help] */
9644 {
9645         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9646         ndr->depth++;
9647         if (flags & NDR_SET_VALUES) {
9648                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9649         }
9650         if (flags & NDR_IN) {
9651                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9652                 ndr->depth++;
9653                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9654                 ndr->depth++;
9655                 if (r->in.server_name) {
9656                         ndr_print_string(ndr, "server_name", r->in.server_name);
9657                 }
9658                 ndr->depth--;
9659                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9660                 ndr->depth++;
9661                 if (r->in.computer_name) {
9662                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9663                 }
9664                 ndr->depth--;
9665                 ndr_print_ptr(ndr, "credential", r->in.credential);
9666                 ndr->depth++;
9667                 if (r->in.credential) {
9668                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9669                 }
9670                 ndr->depth--;
9671                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9672                 ndr->depth++;
9673                 if (r->in.return_authenticator) {
9674                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9675                 }
9676                 ndr->depth--;
9677                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9678                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9679                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9680                 ndr->depth--;
9681         }
9682         if (flags & NDR_OUT) {
9683                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9684                 ndr->depth++;
9685                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9686                 ndr->depth++;
9687                 if (r->out.return_authenticator) {
9688                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9689                 }
9690                 ndr->depth--;
9691                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9692                 ndr->depth--;
9693         }
9694         ndr->depth--;
9695 }
9696 
9697 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
     /* [<][>][^][v][top][bottom][index][help] */
9698 {
9699         if (flags & NDR_IN) {
9700                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9701                 if (r->in.server_name) {
9702                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9703                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9704                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9705                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9706                 }
9707                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9709                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9710                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9711                 if (r->in.credentials == NULL) {
9712                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9713                 }
9714                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9715         }
9716         if (flags & NDR_OUT) {
9717                 if (r->out.return_credentials == NULL) {
9718                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9719                 }
9720                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9721                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9722         }
9723         return NDR_ERR_SUCCESS;
9724 }
9725 
9726 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
     /* [<][>][^][v][top][bottom][index][help] */
9727 {
9728         uint32_t _ptr_server_name;
9729         TALLOC_CTX *_mem_save_server_name_0;
9730         TALLOC_CTX *_mem_save_credentials_0;
9731         TALLOC_CTX *_mem_save_return_credentials_0;
9732         if (flags & NDR_IN) {
9733                 ZERO_STRUCT(r->out);
9734 
9735                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9736                 if (_ptr_server_name) {
9737                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9738                 } else {
9739                         r->in.server_name = NULL;
9740                 }
9741                 if (r->in.server_name) {
9742                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9743                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9744                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9745                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9746                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9747                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9748                         }
9749                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9750                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9751                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9752                 }
9753                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9754                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9755                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9756                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
9757                 }
9758                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9759                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
9760                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9761                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9762                 }
9763                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9764                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9765                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9766                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9767                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9768                 ZERO_STRUCTP(r->out.return_credentials);
9769         }
9770         if (flags & NDR_OUT) {
9771                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9772                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9773                 }
9774                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9775                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9776                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9777                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9778                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9779         }
9780         return NDR_ERR_SUCCESS;
9781 }
9782 
9783 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
     /* [<][>][^][v][top][bottom][index][help] */
9784 {
9785         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
9786         ndr->depth++;
9787         if (flags & NDR_SET_VALUES) {
9788                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9789         }
9790         if (flags & NDR_IN) {
9791                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
9792                 ndr->depth++;
9793                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9794                 ndr->depth++;
9795                 if (r->in.server_name) {
9796                         ndr_print_string(ndr, "server_name", r->in.server_name);
9797                 }
9798                 ndr->depth--;
9799                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9800                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9801                 ndr->depth++;
9802                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9803                 ndr->depth--;
9804                 ndr->depth--;
9805         }
9806         if (flags & NDR_OUT) {
9807                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
9808                 ndr->depth++;
9809                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9810                 ndr->depth++;
9811                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9812                 ndr->depth--;
9813                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9814                 ndr->depth--;
9815         }
9816         ndr->depth--;
9817 }
9818 
9819 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
     /* [<][>][^][v][top][bottom][index][help] */
9820 {
9821         if (flags & NDR_IN) {
9822                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9823                 if (r->in.server_name) {
9824                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9825                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9826                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9827                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9828                 }
9829                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9830                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9831                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9832                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9833                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9834                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9835                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9837                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9838                 if (r->in.credentials == NULL) {
9839                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9840                 }
9841                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9842         }
9843         if (flags & NDR_OUT) {
9844                 if (r->out.return_credentials == NULL) {
9845                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9846                 }
9847                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9848                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9849         }
9850         return NDR_ERR_SUCCESS;
9851 }
9852 
9853 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
     /* [<][>][^][v][top][bottom][index][help] */
9854 {
9855         uint32_t _ptr_server_name;
9856         TALLOC_CTX *_mem_save_server_name_0;
9857         TALLOC_CTX *_mem_save_credentials_0;
9858         TALLOC_CTX *_mem_save_return_credentials_0;
9859         if (flags & NDR_IN) {
9860                 ZERO_STRUCT(r->out);
9861 
9862                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9863                 if (_ptr_server_name) {
9864                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9865                 } else {
9866                         r->in.server_name = NULL;
9867                 }
9868                 if (r->in.server_name) {
9869                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9870                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9871                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9872                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9873                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9874                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9875                         }
9876                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9877                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9878                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9879                 }
9880                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9881                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9882                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9883                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
9884                 }
9885                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9886                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
9887                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9888                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9889                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9890                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9891                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
9892                 }
9893                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9894                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
9895                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9896                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9897                 }
9898                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9899                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9900                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9901                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9902                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9903                 ZERO_STRUCTP(r->out.return_credentials);
9904         }
9905         if (flags & NDR_OUT) {
9906                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9907                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9908                 }
9909                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9910                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9911                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9912                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9913                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9914         }
9915         return NDR_ERR_SUCCESS;
9916 }
9917 
9918 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
     /* [<][>][^][v][top][bottom][index][help] */
9919 {
9920         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
9921         ndr->depth++;
9922         if (flags & NDR_SET_VALUES) {
9923                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9924         }
9925         if (flags & NDR_IN) {
9926                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
9927                 ndr->depth++;
9928                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9929                 ndr->depth++;
9930                 if (r->in.server_name) {
9931                         ndr_print_string(ndr, "server_name", r->in.server_name);
9932                 }
9933                 ndr->depth--;
9934                 ndr_print_string(ndr, "account_name", r->in.account_name);
9935                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9936                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9937                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9938                 ndr->depth++;
9939                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9940                 ndr->depth--;
9941                 ndr->depth--;
9942         }
9943         if (flags & NDR_OUT) {
9944                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
9945                 ndr->depth++;
9946                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9947                 ndr->depth++;
9948                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9949                 ndr->depth--;
9950                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9951                 ndr->depth--;
9952         }
9953         ndr->depth--;
9954 }
9955 
9956 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
     /* [<][>][^][v][top][bottom][index][help] */
9957 {
9958         if (flags & NDR_IN) {
9959                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9960                 if (r->in.server_name) {
9961                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9964                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9965                 }
9966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9969                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9970                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9974                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9975                 if (r->in.credential == NULL) {
9976                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9977                 }
9978                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9979                 if (r->in.new_password == NULL) {
9980                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9981                 }
9982                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9983         }
9984         if (flags & NDR_OUT) {
9985                 if (r->out.return_authenticator == NULL) {
9986                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9987                 }
9988                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9989                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9990         }
9991         return NDR_ERR_SUCCESS;
9992 }
9993 
9994 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
     /* [<][>][^][v][top][bottom][index][help] */
9995 {
9996         uint32_t _ptr_server_name;
9997         TALLOC_CTX *_mem_save_server_name_0;
9998         TALLOC_CTX *_mem_save_credential_0;
9999         TALLOC_CTX *_mem_save_return_authenticator_0;
10000         TALLOC_CTX *_mem_save_new_password_0;
10001         if (flags & NDR_IN) {
10002                 ZERO_STRUCT(r->out);
10003 
10004                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10005                 if (_ptr_server_name) {
10006                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10007                 } else {
10008                         r->in.server_name = NULL;
10009                 }
10010                 if (r->in.server_name) {
10011                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10012                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10013                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10014                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10015                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10016                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
10017                         }
10018                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10019                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
10020                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10021                 }
10022                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10023                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10024                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10025                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
10026                 }
10027                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10028                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
10029                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10030                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10031                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10032                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10033                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
10034                 }
10035                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10036                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
10037                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10038                         NDR_PULL_ALLOC(ndr, r->in.credential);
10039                 }
10040                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10041                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10042                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10043                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10044                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10045                         NDR_PULL_ALLOC(ndr, r->in.new_password);
10046                 }
10047                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10048                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
10049                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
10050                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
10051                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10052                 ZERO_STRUCTP(r->out.return_authenticator);
10053         }
10054         if (flags & NDR_OUT) {
10055                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10056                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10057                 }
10058                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10059                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10060                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10061                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10062                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10063         }
10064         return NDR_ERR_SUCCESS;
10065 }
10066 
10067 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
     /* [<][>][^][v][top][bottom][index][help] */
10068 {
10069         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
10070         ndr->depth++;
10071         if (flags & NDR_SET_VALUES) {
10072                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10073         }
10074         if (flags & NDR_IN) {
10075                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
10076                 ndr->depth++;
10077                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10078                 ndr->depth++;
10079                 if (r->in.server_name) {
10080                         ndr_print_string(ndr, "server_name", r->in.server_name);
10081                 }
10082                 ndr->depth--;
10083                 ndr_print_string(ndr, "account_name", r->in.account_name);
10084                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10085                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10086                 ndr_print_ptr(ndr, "credential", r->in.credential);
10087                 ndr->depth++;
10088                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10089                 ndr->depth--;
10090                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
10091                 ndr->depth++;
10092                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
10093                 ndr->depth--;
10094                 ndr->depth--;
10095         }
10096         if (flags & NDR_OUT) {
10097                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
10098                 ndr->depth++;
10099                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10100                 ndr->depth++;
10101                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10102                 ndr->depth--;
10103                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10104                 ndr->depth--;
10105         }
10106         ndr->depth--;
10107 }
10108 
10109 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10110 {
10111         if (flags & NDR_IN) {
10112                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10113                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10114                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10115                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10116                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10117                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10119                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10120                 if (r->in.credential == NULL) {
10121                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10122                 }
10123                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10124                 if (r->in.return_authenticator == NULL) {
10125                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10126                 }
10127                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10128                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10129                 if (r->in.sequence_num == NULL) {
10130                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10131                 }
10132                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
10133                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10134         }
10135         if (flags & NDR_OUT) {
10136                 if (r->out.return_authenticator == NULL) {
10137                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10138                 }
10139                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10140                 if (r->out.sequence_num == NULL) {
10141                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10142                 }
10143                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
10144                 if (r->out.delta_enum_array == NULL) {
10145                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10146                 }
10147                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10148                 if (*r->out.delta_enum_array) {
10149                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10150                 }
10151                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10152         }
10153         return NDR_ERR_SUCCESS;
10154 }
10155 
10156 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10157 {
10158         uint32_t _ptr_delta_enum_array;
10159         TALLOC_CTX *_mem_save_credential_0;
10160         TALLOC_CTX *_mem_save_return_authenticator_0;
10161         TALLOC_CTX *_mem_save_sequence_num_0;
10162         TALLOC_CTX *_mem_save_delta_enum_array_0;
10163         TALLOC_CTX *_mem_save_delta_enum_array_1;
10164         if (flags & NDR_IN) {
10165                 ZERO_STRUCT(r->out);
10166 
10167                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10168                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10169                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10170                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10171                 }
10172                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10173                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10174                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10175                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10176                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10177                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10178                 }
10179                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10180                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10181                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10182                         NDR_PULL_ALLOC(ndr, r->in.credential);
10183                 }
10184                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10185                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10186                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10187                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10188                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10189                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10190                 }
10191                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10192                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10193                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10194                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10195                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10196                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10197                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
10198                 }
10199                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10200                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10201                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
10202                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10203                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10204                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10205                 *r->out.return_authenticator = *r->in.return_authenticator;
10206                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10207                 *r->out.sequence_num = *r->in.sequence_num;
10208                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10209                 ZERO_STRUCTP(r->out.delta_enum_array);
10210         }
10211         if (flags & NDR_OUT) {
10212                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10213                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10214                 }
10215                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10216                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10217                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10218                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10219                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10220                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10221                 }
10222                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10223                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10224                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
10225                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10226                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10227                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10228                 }
10229                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10230                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10231                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10232                 if (_ptr_delta_enum_array) {
10233                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10234                 } else {
10235                         *r->out.delta_enum_array = NULL;
10236                 }
10237                 if (*r->out.delta_enum_array) {
10238                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10239                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10240                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10241                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10242                 }
10243                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10244                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10245         }
10246         return NDR_ERR_SUCCESS;
10247 }
10248 
10249 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10250 {
10251         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10252         ndr->depth++;
10253         if (flags & NDR_SET_VALUES) {
10254                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10255         }
10256         if (flags & NDR_IN) {
10257                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10258                 ndr->depth++;
10259                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10260                 ndr_print_string(ndr, "computername", r->in.computername);
10261                 ndr_print_ptr(ndr, "credential", r->in.credential);
10262                 ndr->depth++;
10263                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10264                 ndr->depth--;
10265                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10266                 ndr->depth++;
10267                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10268                 ndr->depth--;
10269                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10270                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10271                 ndr->depth++;
10272                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10273                 ndr->depth--;
10274                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10275                 ndr->depth--;
10276         }
10277         if (flags & NDR_OUT) {
10278                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10279                 ndr->depth++;
10280                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10281                 ndr->depth++;
10282                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10283                 ndr->depth--;
10284                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10285                 ndr->depth++;
10286                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10287                 ndr->depth--;
10288                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10289                 ndr->depth++;
10290                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10291                 ndr->depth++;
10292                 if (*r->out.delta_enum_array) {
10293                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10294                 }
10295                 ndr->depth--;
10296                 ndr->depth--;
10297                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10298                 ndr->depth--;
10299         }
10300         ndr->depth--;
10301 }
10302 
10303 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10304 {
10305         if (flags & NDR_IN) {
10306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10307                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10308                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10309                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10313                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10314                 if (r->in.credential == NULL) {
10315                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10316                 }
10317                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10318                 if (r->in.return_authenticator == NULL) {
10319                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10320                 }
10321                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10322                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10323                 if (r->in.sync_context == NULL) {
10324                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10325                 }
10326                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10327                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10328         }
10329         if (flags & NDR_OUT) {
10330                 if (r->out.return_authenticator == NULL) {
10331                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10332                 }
10333                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10334                 if (r->out.sync_context == NULL) {
10335                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10336                 }
10337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10338                 if (r->out.delta_enum_array == NULL) {
10339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10340                 }
10341                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10342                 if (*r->out.delta_enum_array) {
10343                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10344                 }
10345                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10346         }
10347         return NDR_ERR_SUCCESS;
10348 }
10349 
10350 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10351 {
10352         uint32_t _ptr_delta_enum_array;
10353         TALLOC_CTX *_mem_save_credential_0;
10354         TALLOC_CTX *_mem_save_return_authenticator_0;
10355         TALLOC_CTX *_mem_save_sync_context_0;
10356         TALLOC_CTX *_mem_save_delta_enum_array_0;
10357         TALLOC_CTX *_mem_save_delta_enum_array_1;
10358         if (flags & NDR_IN) {
10359                 ZERO_STRUCT(r->out);
10360 
10361                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10362                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10363                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10364                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10365                 }
10366                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10367                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10368                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10369                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10370                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10371                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10372                 }
10373                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10374                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10375                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10376                         NDR_PULL_ALLOC(ndr, r->in.credential);
10377                 }
10378                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10379                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10380                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10381                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10382                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10383                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10384                 }
10385                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10386                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10387                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10388                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10389                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10390                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10391                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10392                 }
10393                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10394                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10395                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10396                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10397                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10398                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10399                 *r->out.return_authenticator = *r->in.return_authenticator;
10400                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10401                 *r->out.sync_context = *r->in.sync_context;
10402                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10403                 ZERO_STRUCTP(r->out.delta_enum_array);
10404         }
10405         if (flags & NDR_OUT) {
10406                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10407                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10408                 }
10409                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10410                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10411                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10412                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10413                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10414                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10415                 }
10416                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10417                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10418                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10419                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10420                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10421                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10422                 }
10423                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10424                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10425                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10426                 if (_ptr_delta_enum_array) {
10427                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10428                 } else {
10429                         *r->out.delta_enum_array = NULL;
10430                 }
10431                 if (*r->out.delta_enum_array) {
10432                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10433                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10434                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10435                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10436                 }
10437                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10438                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10439         }
10440         return NDR_ERR_SUCCESS;
10441 }
10442 
10443 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10444 {
10445         ndr_print_struct(ndr, name, "netr_DatabaseSync");
10446         ndr->depth++;
10447         if (flags & NDR_SET_VALUES) {
10448                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10449         }
10450         if (flags & NDR_IN) {
10451                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10452                 ndr->depth++;
10453                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10454                 ndr_print_string(ndr, "computername", r->in.computername);
10455                 ndr_print_ptr(ndr, "credential", r->in.credential);
10456                 ndr->depth++;
10457                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10458                 ndr->depth--;
10459                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10460                 ndr->depth++;
10461                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10462                 ndr->depth--;
10463                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10464                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10465                 ndr->depth++;
10466                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10467                 ndr->depth--;
10468                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10469                 ndr->depth--;
10470         }
10471         if (flags & NDR_OUT) {
10472                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10473                 ndr->depth++;
10474                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10475                 ndr->depth++;
10476                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10477                 ndr->depth--;
10478                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10479                 ndr->depth++;
10480                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10481                 ndr->depth--;
10482                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10483                 ndr->depth++;
10484                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10485                 ndr->depth++;
10486                 if (*r->out.delta_enum_array) {
10487                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10488                 }
10489                 ndr->depth--;
10490                 ndr->depth--;
10491                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10492                 ndr->depth--;
10493         }
10494         ndr->depth--;
10495 }
10496 
10497 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10498 {
10499         if (flags & NDR_IN) {
10500                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10501                 if (r->in.logon_server) {
10502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10505                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10506                 }
10507                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10508                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10509                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10510                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10511                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10512                 if (r->in.return_authenticator == NULL) {
10513                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10514                 }
10515                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10516                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10518                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10519                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10520         }
10521         if (flags & NDR_OUT) {
10522                 if (r->out.return_authenticator == NULL) {
10523                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10524                 }
10525                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10526                 if (r->out.buffer == NULL) {
10527                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10528                 }
10529                 {
10530                         struct ndr_push *_ndr_buffer;
10531                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10532                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10533                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10534                 }
10535                 if (r->out.count_returned == NULL) {
10536                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10537                 }
10538                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10539                 if (r->out.total_entries == NULL) {
10540                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10541                 }
10542                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10543                 if (r->out.recordid == NULL) {
10544                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10545                 }
10546                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10547                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10548         }
10549         return NDR_ERR_SUCCESS;
10550 }
10551 
10552 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10553 {
10554         uint32_t _ptr_logon_server;
10555         TALLOC_CTX *_mem_save_logon_server_0;
10556         TALLOC_CTX *_mem_save_return_authenticator_0;
10557         TALLOC_CTX *_mem_save_buffer_0;
10558         TALLOC_CTX *_mem_save_count_returned_0;
10559         TALLOC_CTX *_mem_save_total_entries_0;
10560         TALLOC_CTX *_mem_save_recordid_0;
10561         if (flags & NDR_IN) {
10562                 ZERO_STRUCT(r->out);
10563 
10564                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10565                 if (_ptr_logon_server) {
10566                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10567                 } else {
10568                         r->in.logon_server = NULL;
10569                 }
10570                 if (r->in.logon_server) {
10571                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10572                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10573                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10574                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10575                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10576                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10577                         }
10578                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10579                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10580                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10581                 }
10582                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10583                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10584                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10585                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10586                 }
10587                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10588                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10589                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10590                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10591                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10592                 }
10593                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10594                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10595                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10596                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10597                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10599                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10600                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10601                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10602                 *r->out.return_authenticator = *r->in.return_authenticator;
10603                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10604                 ZERO_STRUCTP(r->out.buffer);
10605                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10606                 ZERO_STRUCTP(r->out.count_returned);
10607                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10608                 ZERO_STRUCTP(r->out.total_entries);
10609                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10610                 ZERO_STRUCTP(r->out.recordid);
10611         }
10612         if (flags & NDR_OUT) {
10613                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10614                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10615                 }
10616                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10617                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10618                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10619                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10620                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10621                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10622                 }
10623                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10624                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10625                 {
10626                         struct ndr_pull *_ndr_buffer;
10627                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10628                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10629                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10630                 }
10631                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10632                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10633                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10634                 }
10635                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10636                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10638                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10639                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10640                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10641                 }
10642                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10643                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10644                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10645                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10646                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10647                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10648                 }
10649                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10650                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10651                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10652                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10653                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10654         }
10655         return NDR_ERR_SUCCESS;
10656 }
10657 
10658 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
     /* [<][>][^][v][top][bottom][index][help] */
10659 {
10660         ndr_print_struct(ndr, name, "netr_AccountDeltas");
10661         ndr->depth++;
10662         if (flags & NDR_SET_VALUES) {
10663                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10664         }
10665         if (flags & NDR_IN) {
10666                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
10667                 ndr->depth++;
10668                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10669                 ndr->depth++;
10670                 if (r->in.logon_server) {
10671                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10672                 }
10673                 ndr->depth--;
10674                 ndr_print_string(ndr, "computername", r->in.computername);
10675                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10676                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10677                 ndr->depth++;
10678                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10679                 ndr->depth--;
10680                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
10681                 ndr_print_uint32(ndr, "count", r->in.count);
10682                 ndr_print_uint32(ndr, "level", r->in.level);
10683                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10684                 ndr->depth--;
10685         }
10686         if (flags & NDR_OUT) {
10687                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
10688                 ndr->depth++;
10689                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10690                 ndr->depth++;
10691                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10692                 ndr->depth--;
10693                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10694                 ndr->depth++;
10695                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10696                 ndr->depth--;
10697                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10698                 ndr->depth++;
10699                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10700                 ndr->depth--;
10701                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10702                 ndr->depth++;
10703                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10704                 ndr->depth--;
10705                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10706                 ndr->depth++;
10707                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10708                 ndr->depth--;
10709                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10710                 ndr->depth--;
10711         }
10712         ndr->depth--;
10713 }
10714 
10715 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10716 {
10717         if (flags & NDR_IN) {
10718                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10719                 if (r->in.logon_server) {
10720                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10721                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10722                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10723                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10724                 }
10725                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10726                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10727                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10728                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10729                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10730                 if (r->in.return_authenticator == NULL) {
10731                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10732                 }
10733                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10734                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
10735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10736                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10737                 if (r->in.recordid == NULL) {
10738                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10739                 }
10740                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10741         }
10742         if (flags & NDR_OUT) {
10743                 if (r->out.return_authenticator == NULL) {
10744                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10745                 }
10746                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10747                 if (r->out.buffer == NULL) {
10748                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10749                 }
10750                 {
10751                         struct ndr_push *_ndr_buffer;
10752                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10753                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10754                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10755                 }
10756                 if (r->out.count_returned == NULL) {
10757                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10758                 }
10759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10760                 if (r->out.total_entries == NULL) {
10761                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10762                 }
10763                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10764                 if (r->out.next_reference == NULL) {
10765                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10766                 }
10767                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
10768                 if (r->out.recordid == NULL) {
10769                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10770                 }
10771                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10772                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10773         }
10774         return NDR_ERR_SUCCESS;
10775 }
10776 
10777 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10778 {
10779         uint32_t _ptr_logon_server;
10780         TALLOC_CTX *_mem_save_logon_server_0;
10781         TALLOC_CTX *_mem_save_return_authenticator_0;
10782         TALLOC_CTX *_mem_save_buffer_0;
10783         TALLOC_CTX *_mem_save_count_returned_0;
10784         TALLOC_CTX *_mem_save_total_entries_0;
10785         TALLOC_CTX *_mem_save_next_reference_0;
10786         TALLOC_CTX *_mem_save_recordid_0;
10787         if (flags & NDR_IN) {
10788                 ZERO_STRUCT(r->out);
10789 
10790                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10791                 if (_ptr_logon_server) {
10792                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10793                 } else {
10794                         r->in.logon_server = NULL;
10795                 }
10796                 if (r->in.logon_server) {
10797                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10798                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10799                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10800                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10801                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10802                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10803                         }
10804                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10805                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10806                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10807                 }
10808                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10809                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10810                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10811                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10812                 }
10813                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10814                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10815                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10816                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10817                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10818                 }
10819                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10820                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10821                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10822                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10823                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
10824                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10825                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10826                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10827                         NDR_PULL_ALLOC(ndr, r->in.recordid);
10828                 }
10829                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10830                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
10831                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10832                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10833                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10834                 *r->out.return_authenticator = *r->in.return_authenticator;
10835                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10836                 ZERO_STRUCTP(r->out.buffer);
10837                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10838                 ZERO_STRUCTP(r->out.count_returned);
10839                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10840                 ZERO_STRUCTP(r->out.total_entries);
10841                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
10842                 ZERO_STRUCTP(r->out.next_reference);
10843                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10844                 *r->out.recordid = *r->in.recordid;
10845         }
10846         if (flags & NDR_OUT) {
10847                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10848                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10849                 }
10850                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10851                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10852                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10853                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10854                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10855                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10856                 }
10857                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10858                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10859                 {
10860                         struct ndr_pull *_ndr_buffer;
10861                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10862                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10863                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10864                 }
10865                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10866                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10867                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10868                 }
10869                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10870                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10871                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10872                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10873                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10874                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10875                 }
10876                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10877                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10878                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10879                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10880                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10881                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
10882                 }
10883                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
10884                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
10885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
10886                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
10887                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10888                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10889                 }
10890                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10891                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10892                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10893                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10894                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10895         }
10896         return NDR_ERR_SUCCESS;
10897 }
10898 
10899 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
     /* [<][>][^][v][top][bottom][index][help] */
10900 {
10901         ndr_print_struct(ndr, name, "netr_AccountSync");
10902         ndr->depth++;
10903         if (flags & NDR_SET_VALUES) {
10904                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10905         }
10906         if (flags & NDR_IN) {
10907                 ndr_print_struct(ndr, "in", "netr_AccountSync");
10908                 ndr->depth++;
10909                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10910                 ndr->depth++;
10911                 if (r->in.logon_server) {
10912                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10913                 }
10914                 ndr->depth--;
10915                 ndr_print_string(ndr, "computername", r->in.computername);
10916                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10917                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10918                 ndr->depth++;
10919                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10920                 ndr->depth--;
10921                 ndr_print_uint32(ndr, "reference", r->in.reference);
10922                 ndr_print_uint32(ndr, "level", r->in.level);
10923                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10924                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
10925                 ndr->depth++;
10926                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
10927                 ndr->depth--;
10928                 ndr->depth--;
10929         }
10930         if (flags & NDR_OUT) {
10931                 ndr_print_struct(ndr, "out", "netr_AccountSync");
10932                 ndr->depth++;
10933                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10934                 ndr->depth++;
10935                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10936                 ndr->depth--;
10937                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10938                 ndr->depth++;
10939                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10940                 ndr->depth--;
10941                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10942                 ndr->depth++;
10943                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10944                 ndr->depth--;
10945                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10946                 ndr->depth++;
10947                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10948                 ndr->depth--;
10949                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
10950                 ndr->depth++;
10951                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
10952                 ndr->depth--;
10953                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10954                 ndr->depth++;
10955                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10956                 ndr->depth--;
10957                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10958                 ndr->depth--;
10959         }
10960         ndr->depth--;
10961 }
10962 
10963 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
     /* [<][>][^][v][top][bottom][index][help] */
10964 {
10965         if (flags & NDR_IN) {
10966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10969                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10970                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10971                 if (r->in.domainname) {
10972                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10975                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10976                 }
10977         }
10978         if (flags & NDR_OUT) {
10979                 if (r->out.dcname == NULL) {
10980                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10981                 }
10982                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10983                 if (*r->out.dcname) {
10984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10987                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10988                 }
10989                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10990         }
10991         return NDR_ERR_SUCCESS;
10992 }
10993 
10994 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
     /* [<][>][^][v][top][bottom][index][help] */
10995 {
10996         uint32_t _ptr_domainname;
10997         uint32_t _ptr_dcname;
10998         TALLOC_CTX *_mem_save_domainname_0;
10999         TALLOC_CTX *_mem_save_dcname_0;
11000         TALLOC_CTX *_mem_save_dcname_1;
11001         if (flags & NDR_IN) {
11002                 ZERO_STRUCT(r->out);
11003 
11004                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11005                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11006                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11007                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11008                 }
11009                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11010                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11011                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11012                 if (_ptr_domainname) {
11013                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11014                 } else {
11015                         r->in.domainname = NULL;
11016                 }
11017                 if (r->in.domainname) {
11018                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11019                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11020                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11021                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11022                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11023                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname));
11024                         }
11025                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11026                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11027                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11028                 }
11029                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11030                 ZERO_STRUCTP(r->out.dcname);
11031         }
11032         if (flags & NDR_OUT) {
11033                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11034                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11035                 }
11036                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11037                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11038                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11039                 if (_ptr_dcname) {
11040                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11041                 } else {
11042                         *r->out.dcname = NULL;
11043                 }
11044                 if (*r->out.dcname) {
11045                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11046                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11047                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11048                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11049                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11050                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
11051                         }
11052                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11053                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11054                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11055                 }
11056                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11057                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11058         }
11059         return NDR_ERR_SUCCESS;
11060 }
11061 
11062 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
     /* [<][>][^][v][top][bottom][index][help] */
11063 {
11064         ndr_print_struct(ndr, name, "netr_GetDcName");
11065         ndr->depth++;
11066         if (flags & NDR_SET_VALUES) {
11067                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11068         }
11069         if (flags & NDR_IN) {
11070                 ndr_print_struct(ndr, "in", "netr_GetDcName");
11071                 ndr->depth++;
11072                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11073                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11074                 ndr->depth++;
11075                 if (r->in.domainname) {
11076                         ndr_print_string(ndr, "domainname", r->in.domainname);
11077                 }
11078                 ndr->depth--;
11079                 ndr->depth--;
11080         }
11081         if (flags & NDR_OUT) {
11082                 ndr_print_struct(ndr, "out", "netr_GetDcName");
11083                 ndr->depth++;
11084                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11085                 ndr->depth++;
11086                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11087                 ndr->depth++;
11088                 if (*r->out.dcname) {
11089                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11090                 }
11091                 ndr->depth--;
11092                 ndr->depth--;
11093                 ndr_print_WERROR(ndr, "result", r->out.result);
11094                 ndr->depth--;
11095         }
11096         ndr->depth--;
11097 }
11098 
11099 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
     /* [<][>][^][v][top][bottom][index][help] */
11100 {
11101         if (flags & NDR_IN) {
11102                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11103                 if (r->in.logon_server) {
11104                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11105                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11106                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11107                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11108                 }
11109                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11111         }
11112         if (flags & NDR_OUT) {
11113                 if (r->out.info == NULL) {
11114                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11115                 }
11116                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11117                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11118                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11119         }
11120         return NDR_ERR_SUCCESS;
11121 }
11122 
11123 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
     /* [<][>][^][v][top][bottom][index][help] */
11124 {
11125         uint32_t _ptr_logon_server;
11126         TALLOC_CTX *_mem_save_logon_server_0;
11127         TALLOC_CTX *_mem_save_info_0;
11128         if (flags & NDR_IN) {
11129                 ZERO_STRUCT(r->out);
11130 
11131                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11132                 if (_ptr_logon_server) {
11133                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11134                 } else {
11135                         r->in.logon_server = NULL;
11136                 }
11137                 if (r->in.logon_server) {
11138                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11139                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11140                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11141                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11142                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11143                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11144                         }
11145                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11146                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11147                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11148                 }
11149                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11150                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11151                 NDR_PULL_ALLOC(ndr, r->out.info);
11152                 ZERO_STRUCTP(r->out.info);
11153         }
11154         if (flags & NDR_OUT) {
11155                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11156                         NDR_PULL_ALLOC(ndr, r->out.info);
11157                 }
11158                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11159                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11160                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11161                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11162                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11163                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11164         }
11165         return NDR_ERR_SUCCESS;
11166 }
11167 
11168 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
     /* [<][>][^][v][top][bottom][index][help] */
11169 {
11170         ndr_print_struct(ndr, name, "netr_LogonControl");
11171         ndr->depth++;
11172         if (flags & NDR_SET_VALUES) {
11173                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11174         }
11175         if (flags & NDR_IN) {
11176                 ndr_print_struct(ndr, "in", "netr_LogonControl");
11177                 ndr->depth++;
11178                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11179                 ndr->depth++;
11180                 if (r->in.logon_server) {
11181                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11182                 }
11183                 ndr->depth--;
11184                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11185                 ndr_print_uint32(ndr, "level", r->in.level);
11186                 ndr->depth--;
11187         }
11188         if (flags & NDR_OUT) {
11189                 ndr_print_struct(ndr, "out", "netr_LogonControl");
11190                 ndr->depth++;
11191                 ndr_print_ptr(ndr, "info", r->out.info);
11192                 ndr->depth++;
11193                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
11194                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
11195                 ndr->depth--;
11196                 ndr_print_WERROR(ndr, "result", r->out.result);
11197                 ndr->depth--;
11198         }
11199         ndr->depth--;
11200 }
11201 
11202 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
11203 {
11204         if (flags & NDR_IN) {
11205                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11206                 if (r->in.logon_server) {
11207                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11208                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11209                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11210                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11211                 }
11212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11213                 if (r->in.domainname) {
11214                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11215                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11216                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11217                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11218                 }
11219         }
11220         if (flags & NDR_OUT) {
11221                 if (r->out.dcname == NULL) {
11222                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11223                 }
11224                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11225                 if (*r->out.dcname) {
11226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11228                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11229                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11230                 }
11231                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11232         }
11233         return NDR_ERR_SUCCESS;
11234 }
11235 
11236 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
11237 {
11238         uint32_t _ptr_logon_server;
11239         uint32_t _ptr_domainname;
11240         uint32_t _ptr_dcname;
11241         TALLOC_CTX *_mem_save_logon_server_0;
11242         TALLOC_CTX *_mem_save_domainname_0;
11243         TALLOC_CTX *_mem_save_dcname_0;
11244         TALLOC_CTX *_mem_save_dcname_1;
11245         if (flags & NDR_IN) {
11246                 ZERO_STRUCT(r->out);
11247 
11248                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11249                 if (_ptr_logon_server) {
11250                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11251                 } else {
11252                         r->in.logon_server = NULL;
11253                 }
11254                 if (r->in.logon_server) {
11255                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11256                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11257                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11258                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11259                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11260                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11261                         }
11262                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11263                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11265                 }
11266                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11267                 if (_ptr_domainname) {
11268                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11269                 } else {
11270                         r->in.domainname = NULL;
11271                 }
11272                 if (r->in.domainname) {
11273                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11274                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11275                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11276                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11277                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11278                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname));
11279                         }
11280                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11281                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11282                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11283                 }
11284                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11285                 ZERO_STRUCTP(r->out.dcname);
11286         }
11287         if (flags & NDR_OUT) {
11288                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11289                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11290                 }
11291                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11292                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11293                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11294                 if (_ptr_dcname) {
11295                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11296                 } else {
11297                         *r->out.dcname = NULL;
11298                 }
11299                 if (*r->out.dcname) {
11300                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11301                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11302                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11303                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11304                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11305                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
11306                         }
11307                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11308                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11309                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11310                 }
11311                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11312                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11313         }
11314         return NDR_ERR_SUCCESS;
11315 }
11316 
11317 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
11318 {
11319         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11320         ndr->depth++;
11321         if (flags & NDR_SET_VALUES) {
11322                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11323         }
11324         if (flags & NDR_IN) {
11325                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11326                 ndr->depth++;
11327                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11328                 ndr->depth++;
11329                 if (r->in.logon_server) {
11330                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11331                 }
11332                 ndr->depth--;
11333                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11334                 ndr->depth++;
11335                 if (r->in.domainname) {
11336                         ndr_print_string(ndr, "domainname", r->in.domainname);
11337                 }
11338                 ndr->depth--;
11339                 ndr->depth--;
11340         }
11341         if (flags & NDR_OUT) {
11342                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11343                 ndr->depth++;
11344                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11345                 ndr->depth++;
11346                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11347                 ndr->depth++;
11348                 if (*r->out.dcname) {
11349                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11350                 }
11351                 ndr->depth--;
11352                 ndr->depth--;
11353                 ndr_print_WERROR(ndr, "result", r->out.result);
11354                 ndr->depth--;
11355         }
11356         ndr->depth--;
11357 }
11358 
11359 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11360 {
11361         if (flags & NDR_IN) {
11362                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11363                 if (r->in.logon_server) {
11364                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11367                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11368                 }
11369                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11370                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11371                 if (r->in.data == NULL) {
11372                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11373                 }
11374                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11375                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11376         }
11377         if (flags & NDR_OUT) {
11378                 if (r->out.query == NULL) {
11379                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11380                 }
11381                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11382                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11383                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11384         }
11385         return NDR_ERR_SUCCESS;
11386 }
11387 
11388 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11389 {
11390         uint32_t _ptr_logon_server;
11391         TALLOC_CTX *_mem_save_logon_server_0;
11392         TALLOC_CTX *_mem_save_data_0;
11393         TALLOC_CTX *_mem_save_query_0;
11394         if (flags & NDR_IN) {
11395                 ZERO_STRUCT(r->out);
11396 
11397                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11398                 if (_ptr_logon_server) {
11399                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11400                 } else {
11401                         r->in.logon_server = NULL;
11402                 }
11403                 if (r->in.logon_server) {
11404                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11405                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11406                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11407                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11408                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11409                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11410                         }
11411                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11412                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11413                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11414                 }
11415                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11417                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11418                         NDR_PULL_ALLOC(ndr, r->in.data);
11419                 }
11420                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11422                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11423                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11424                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11425                 NDR_PULL_ALLOC(ndr, r->out.query);
11426                 ZERO_STRUCTP(r->out.query);
11427         }
11428         if (flags & NDR_OUT) {
11429                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11430                         NDR_PULL_ALLOC(ndr, r->out.query);
11431                 }
11432                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11433                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11434                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11435                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11436                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11437                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11438         }
11439         return NDR_ERR_SUCCESS;
11440 }
11441 
11442 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11443 {
11444         ndr_print_struct(ndr, name, "netr_LogonControl2");
11445         ndr->depth++;
11446         if (flags & NDR_SET_VALUES) {
11447                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11448         }
11449         if (flags & NDR_IN) {
11450                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11451                 ndr->depth++;
11452                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11453                 ndr->depth++;
11454                 if (r->in.logon_server) {
11455                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11456                 }
11457                 ndr->depth--;
11458                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11459                 ndr_print_uint32(ndr, "level", r->in.level);
11460                 ndr_print_ptr(ndr, "data", r->in.data);
11461                 ndr->depth++;
11462                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11463                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11464                 ndr->depth--;
11465                 ndr->depth--;
11466         }
11467         if (flags & NDR_OUT) {
11468                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11469                 ndr->depth++;
11470                 ndr_print_ptr(ndr, "query", r->out.query);
11471                 ndr->depth++;
11472                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11473                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11474                 ndr->depth--;
11475                 ndr_print_WERROR(ndr, "result", r->out.result);
11476                 ndr->depth--;
11477         }
11478         ndr->depth--;
11479 }
11480 
11481 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11482 {
11483         if (flags & NDR_IN) {
11484                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11485                 if (r->in.server_name) {
11486                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11487                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11488                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11489                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11490                 }
11491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11493                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11494                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11495                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11496                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11497                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11498                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11499                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11500                 if (r->in.credentials == NULL) {
11501                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11502                 }
11503                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11504                 if (r->in.negotiate_flags == NULL) {
11505                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11506                 }
11507                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11508         }
11509         if (flags & NDR_OUT) {
11510                 if (r->out.return_credentials == NULL) {
11511                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11512                 }
11513                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11514                 if (r->out.negotiate_flags == NULL) {
11515                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11516                 }
11517                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11518                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11519         }
11520         return NDR_ERR_SUCCESS;
11521 }
11522 
11523 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11524 {
11525         uint32_t _ptr_server_name;
11526         TALLOC_CTX *_mem_save_server_name_0;
11527         TALLOC_CTX *_mem_save_credentials_0;
11528         TALLOC_CTX *_mem_save_return_credentials_0;
11529         TALLOC_CTX *_mem_save_negotiate_flags_0;
11530         if (flags & NDR_IN) {
11531                 ZERO_STRUCT(r->out);
11532 
11533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11534                 if (_ptr_server_name) {
11535                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11536                 } else {
11537                         r->in.server_name = NULL;
11538                 }
11539                 if (r->in.server_name) {
11540                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11541                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11542                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11543                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11544                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11545                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11546                         }
11547                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11548                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11549                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11550                 }
11551                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11552                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11553                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11554                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
11555                 }
11556                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11557                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
11558                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11559                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11560                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11561                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11562                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11563                 }
11564                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11565                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11566                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11567                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11568                 }
11569                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11570                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11571                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11573                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11574                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11575                 }
11576                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11577                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11578                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11579                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11580                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11581                 ZERO_STRUCTP(r->out.return_credentials);
11582                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11583                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11584         }
11585         if (flags & NDR_OUT) {
11586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11587                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11588                 }
11589                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11591                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11592                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11593                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11594                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11595                 }
11596                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11597                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11598                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11599                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11600                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11601         }
11602         return NDR_ERR_SUCCESS;
11603 }
11604 
11605 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11606 {
11607         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
11608         ndr->depth++;
11609         if (flags & NDR_SET_VALUES) {
11610                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11611         }
11612         if (flags & NDR_IN) {
11613                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
11614                 ndr->depth++;
11615                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11616                 ndr->depth++;
11617                 if (r->in.server_name) {
11618                         ndr_print_string(ndr, "server_name", r->in.server_name);
11619                 }
11620                 ndr->depth--;
11621                 ndr_print_string(ndr, "account_name", r->in.account_name);
11622                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11623                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11624                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11625                 ndr->depth++;
11626                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11627                 ndr->depth--;
11628                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11629                 ndr->depth++;
11630                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11631                 ndr->depth--;
11632                 ndr->depth--;
11633         }
11634         if (flags & NDR_OUT) {
11635                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
11636                 ndr->depth++;
11637                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
11638                 ndr->depth++;
11639                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
11640                 ndr->depth--;
11641                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11642                 ndr->depth++;
11643                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11644                 ndr->depth--;
11645                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11646                 ndr->depth--;
11647         }
11648         ndr->depth--;
11649 }
11650 
11651 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11652 {
11653         if (flags & NDR_IN) {
11654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11656                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11657                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11659                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11660                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11661                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11662                 if (r->in.credential == NULL) {
11663                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11664                 }
11665                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11666                 if (r->in.return_authenticator == NULL) {
11667                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11668                 }
11669                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11670                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
11671                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
11672                 if (r->in.sync_context == NULL) {
11673                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11674                 }
11675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
11676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
11677         }
11678         if (flags & NDR_OUT) {
11679                 if (r->out.return_authenticator == NULL) {
11680                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11681                 }
11682                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11683                 if (r->out.sync_context == NULL) {
11684                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11685                 }
11686                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
11687                 if (r->out.delta_enum_array == NULL) {
11688                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11689                 }
11690                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11691                 if (*r->out.delta_enum_array) {
11692                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11693                 }
11694                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11695         }
11696         return NDR_ERR_SUCCESS;
11697 }
11698 
11699 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11700 {
11701         uint32_t _ptr_delta_enum_array;
11702         TALLOC_CTX *_mem_save_credential_0;
11703         TALLOC_CTX *_mem_save_return_authenticator_0;
11704         TALLOC_CTX *_mem_save_sync_context_0;
11705         TALLOC_CTX *_mem_save_delta_enum_array_0;
11706         TALLOC_CTX *_mem_save_delta_enum_array_1;
11707         if (flags & NDR_IN) {
11708                 ZERO_STRUCT(r->out);
11709 
11710                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11711                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11712                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11713                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11714                 }
11715                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11716                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11717                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11718                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11719                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11720                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
11721                 }
11722                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11723                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11724                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11725                         NDR_PULL_ALLOC(ndr, r->in.credential);
11726                 }
11727                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11728                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11729                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11730                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11731                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11732                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11733                 }
11734                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11735                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11736                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11737                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11738                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
11739                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
11740                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11741                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
11742                 }
11743                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11744                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
11745                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
11746                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11747                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
11748                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11749                 *r->out.return_authenticator = *r->in.return_authenticator;
11750                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
11751                 *r->out.sync_context = *r->in.sync_context;
11752                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11753                 ZERO_STRUCTP(r->out.delta_enum_array);
11754         }
11755         if (flags & NDR_OUT) {
11756                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11757                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11758                 }
11759                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11760                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11761                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11762                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11763                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11764                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
11765                 }
11766                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11767                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
11768                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
11769                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11770                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11771                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11772                 }
11773                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11774                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11775                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11776                 if (_ptr_delta_enum_array) {
11777                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11778                 } else {
11779                         *r->out.delta_enum_array = NULL;
11780                 }
11781                 if (*r->out.delta_enum_array) {
11782                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11783                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11784                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11785                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11786                 }
11787                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11788                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11789         }
11790         return NDR_ERR_SUCCESS;
11791 }
11792 
11793 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
11794 {
11795         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
11796         ndr->depth++;
11797         if (flags & NDR_SET_VALUES) {
11798                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11799         }
11800         if (flags & NDR_IN) {
11801                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
11802                 ndr->depth++;
11803                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11804                 ndr_print_string(ndr, "computername", r->in.computername);
11805                 ndr_print_ptr(ndr, "credential", r->in.credential);
11806                 ndr->depth++;
11807                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11808                 ndr->depth--;
11809                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11810                 ndr->depth++;
11811                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11812                 ndr->depth--;
11813                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
11814                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
11815                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
11816                 ndr->depth++;
11817                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
11818                 ndr->depth--;
11819                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
11820                 ndr->depth--;
11821         }
11822         if (flags & NDR_OUT) {
11823                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
11824                 ndr->depth++;
11825                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11826                 ndr->depth++;
11827                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11828                 ndr->depth--;
11829                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
11830                 ndr->depth++;
11831                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
11832                 ndr->depth--;
11833                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11834                 ndr->depth++;
11835                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11836                 ndr->depth++;
11837                 if (*r->out.delta_enum_array) {
11838                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11839                 }
11840                 ndr->depth--;
11841                 ndr->depth--;
11842                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11843                 ndr->depth--;
11844         }
11845         ndr->depth--;
11846 }
11847 
11848 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
     /* [<][>][^][v][top][bottom][index][help] */
11849 {
11850         if (flags & NDR_IN) {
11851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11852                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11853                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11854                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11858                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11859                 if (r->in.credential == NULL) {
11860                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11861                 }
11862                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11863                 if (r->in.return_authenticator == NULL) {
11864                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11865                 }
11866                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11867                 {
11868                         struct ndr_push *_ndr_change_log_entry;
11869                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11870                         NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11871                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11872                 }
11873                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11874         }
11875         if (flags & NDR_OUT) {
11876                 if (r->out.return_authenticator == NULL) {
11877                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11878                 }
11879                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11880                 if (r->out.delta_enum_array == NULL) {
11881                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11882                 }
11883                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11884                 if (*r->out.delta_enum_array) {
11885                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11886                 }
11887                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11888         }
11889         return NDR_ERR_SUCCESS;
11890 }
11891 
11892 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
     /* [<][>][^][v][top][bottom][index][help] */
11893 {
11894         uint32_t _ptr_delta_enum_array;
11895         TALLOC_CTX *_mem_save_credential_0;
11896         TALLOC_CTX *_mem_save_return_authenticator_0;
11897         TALLOC_CTX *_mem_save_delta_enum_array_0;
11898         TALLOC_CTX *_mem_save_delta_enum_array_1;
11899         if (flags & NDR_IN) {
11900                 ZERO_STRUCT(r->out);
11901 
11902                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11903                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11904                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11905                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11906                 }
11907                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11908                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
11909                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11910                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11911                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11912                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
11913                 }
11914                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11915                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11916                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11917                         NDR_PULL_ALLOC(ndr, r->in.credential);
11918                 }
11919                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11920                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11921                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11922                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11923                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11924                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11925                 }
11926                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11927                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11928                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11929                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11930                 {
11931                         struct ndr_pull *_ndr_change_log_entry;
11932                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
11933                         NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11934                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
11935                 }
11936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
11937                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11938                 *r->out.return_authenticator = *r->in.return_authenticator;
11939                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11940                 ZERO_STRUCTP(r->out.delta_enum_array);
11941         }
11942         if (flags & NDR_OUT) {
11943                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11944                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11945                 }
11946                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11947                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11948                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11949                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11950                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11951                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11952                 }
11953                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11954                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11955                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11956                 if (_ptr_delta_enum_array) {
11957                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11958                 } else {
11959                         *r->out.delta_enum_array = NULL;
11960                 }
11961                 if (*r->out.delta_enum_array) {
11962                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11963                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11964                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11965                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11966                 }
11967                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11968                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11969         }
11970         return NDR_ERR_SUCCESS;
11971 }
11972 
11973 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
     /* [<][>][^][v][top][bottom][index][help] */
11974 {
11975         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
11976         ndr->depth++;
11977         if (flags & NDR_SET_VALUES) {
11978                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11979         }
11980         if (flags & NDR_IN) {
11981                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
11982                 ndr->depth++;
11983                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11984                 ndr_print_string(ndr, "computername", r->in.computername);
11985                 ndr_print_ptr(ndr, "credential", r->in.credential);
11986                 ndr->depth++;
11987                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11988                 ndr->depth--;
11989                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11990                 ndr->depth++;
11991                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11992                 ndr->depth--;
11993                 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
11994                 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags):r->in.change_log_entry_size);
11995                 ndr->depth--;
11996         }
11997         if (flags & NDR_OUT) {
11998                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
11999                 ndr->depth++;
12000                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12001                 ndr->depth++;
12002                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12003                 ndr->depth--;
12004                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
12005                 ndr->depth++;
12006                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
12007                 ndr->depth++;
12008                 if (*r->out.delta_enum_array) {
12009                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
12010                 }
12011                 ndr->depth--;
12012                 ndr->depth--;
12013                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12014                 ndr->depth--;
12015         }
12016         ndr->depth--;
12017 }
12018 
12019 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
     /* [<][>][^][v][top][bottom][index][help] */
12020 {
12021         if (flags & NDR_IN) {
12022                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
12023                 if (r->in.logon_server) {
12024                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12025                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12026                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12027                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12028                 }
12029                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
12030                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12031                 if (r->in.data == NULL) {
12032                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12033                 }
12034                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
12035                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12036         }
12037         if (flags & NDR_OUT) {
12038                 if (r->out.query == NULL) {
12039                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12040                 }
12041                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
12042                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12043                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12044         }
12045         return NDR_ERR_SUCCESS;
12046 }
12047 
12048 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
     /* [<][>][^][v][top][bottom][index][help] */
12049 {
12050         uint32_t _ptr_logon_server;
12051         TALLOC_CTX *_mem_save_logon_server_0;
12052         TALLOC_CTX *_mem_save_data_0;
12053         TALLOC_CTX *_mem_save_query_0;
12054         if (flags & NDR_IN) {
12055                 ZERO_STRUCT(r->out);
12056 
12057                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
12058                 if (_ptr_logon_server) {
12059                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
12060                 } else {
12061                         r->in.logon_server = NULL;
12062                 }
12063                 if (r->in.logon_server) {
12064                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
12065                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
12066                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12067                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12068                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12069                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
12070                         }
12071                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12072                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
12073                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
12074                 }
12075                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
12076                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12077                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12078                         NDR_PULL_ALLOC(ndr, r->in.data);
12079                 }
12080                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
12081                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
12082                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
12083                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12084                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
12085                 NDR_PULL_ALLOC(ndr, r->out.query);
12086                 ZERO_STRUCTP(r->out.query);
12087         }
12088         if (flags & NDR_OUT) {
12089                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12090                         NDR_PULL_ALLOC(ndr, r->out.query);
12091                 }
12092                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
12093                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
12094                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
12095                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12096                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
12097                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12098         }
12099         return NDR_ERR_SUCCESS;
12100 }
12101 
12102 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
     /* [<][>][^][v][top][bottom][index][help] */
12103 {
12104         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
12105         ndr->depth++;
12106         if (flags & NDR_SET_VALUES) {
12107                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12108         }
12109         if (flags & NDR_IN) {
12110                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
12111                 ndr->depth++;
12112                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12113                 ndr->depth++;
12114                 if (r->in.logon_server) {
12115                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
12116                 }
12117                 ndr->depth--;
12118                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
12119                 ndr_print_uint32(ndr, "level", r->in.level);
12120                 ndr_print_ptr(ndr, "data", r->in.data);
12121                 ndr->depth++;
12122                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
12123                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
12124                 ndr->depth--;
12125                 ndr->depth--;
12126         }
12127         if (flags & NDR_OUT) {
12128                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
12129                 ndr->depth++;
12130                 ndr_print_ptr(ndr, "query", r->out.query);
12131                 ndr->depth++;
12132                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
12133                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
12134                 ndr->depth--;
12135                 ndr_print_WERROR(ndr, "result", r->out.result);
12136                 ndr->depth--;
12137         }
12138         ndr->depth--;
12139 }
12140 
12141 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
     /* [<][>][^][v][top][bottom][index][help] */
12142 {
12143         if (flags & NDR_IN) {
12144                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12145                 if (r->in.server_name) {
12146                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12147                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12148                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12149                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12150                 }
12151         }
12152         if (flags & NDR_OUT) {
12153                 if (r->out.trusted_domains_blob == NULL) {
12154                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12155                 }
12156                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12157                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12158         }
12159         return NDR_ERR_SUCCESS;
12160 }
12161 
12162 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
     /* [<][>][^][v][top][bottom][index][help] */
12163 {
12164         uint32_t _ptr_server_name;
12165         TALLOC_CTX *_mem_save_server_name_0;
12166         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
12167         if (flags & NDR_IN) {
12168                 ZERO_STRUCT(r->out);
12169 
12170                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12171                 if (_ptr_server_name) {
12172                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12173                 } else {
12174                         r->in.server_name = NULL;
12175                 }
12176                 if (r->in.server_name) {
12177                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12178                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12179                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12180                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12181                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12182                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12183                         }
12184                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12185                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12186                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12187                 }
12188                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12189                 ZERO_STRUCTP(r->out.trusted_domains_blob);
12190         }
12191         if (flags & NDR_OUT) {
12192                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12193                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12194                 }
12195                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
12196                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
12197                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12198                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
12199                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12200         }
12201         return NDR_ERR_SUCCESS;
12202 }
12203 
12204 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
     /* [<][>][^][v][top][bottom][index][help] */
12205 {
12206         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
12207         ndr->depth++;
12208         if (flags & NDR_SET_VALUES) {
12209                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12210         }
12211         if (flags & NDR_IN) {
12212                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
12213                 ndr->depth++;
12214                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12215                 ndr->depth++;
12216                 if (r->in.server_name) {
12217                         ndr_print_string(ndr, "server_name", r->in.server_name);
12218                 }
12219                 ndr->depth--;
12220                 ndr->depth--;
12221         }
12222         if (flags & NDR_OUT) {
12223                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
12224                 ndr->depth++;
12225                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12226                 ndr->depth++;
12227                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12228                 ndr->depth--;
12229                 ndr_print_WERROR(ndr, "result", r->out.result);
12230                 ndr->depth--;
12231         }
12232         ndr->depth--;
12233 }
12234 
12235 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
12236 {
12237         if (flags & NDR_IN) {
12238                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12239                 if (r->in.server_unc) {
12240                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12241                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12242                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12243                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12244                 }
12245                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12246                 if (r->in.domain_name) {
12247                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12250                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12251                 }
12252                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12253                 if (r->in.domain_guid) {
12254                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12255                 }
12256                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
12257                 if (r->in.site_guid) {
12258                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12259                 }
12260                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12261         }
12262         if (flags & NDR_OUT) {
12263                 if (r->out.info == NULL) {
12264                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12265                 }
12266                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12267                 if (*r->out.info) {
12268                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12269                 }
12270                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12271         }
12272         return NDR_ERR_SUCCESS;
12273 }
12274 
12275 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
12276 {
12277         uint32_t _ptr_server_unc;
12278         uint32_t _ptr_domain_name;
12279         uint32_t _ptr_domain_guid;
12280         uint32_t _ptr_site_guid;
12281         uint32_t _ptr_info;
12282         TALLOC_CTX *_mem_save_server_unc_0;
12283         TALLOC_CTX *_mem_save_domain_name_0;
12284         TALLOC_CTX *_mem_save_domain_guid_0;
12285         TALLOC_CTX *_mem_save_site_guid_0;
12286         TALLOC_CTX *_mem_save_info_0;
12287         TALLOC_CTX *_mem_save_info_1;
12288         if (flags & NDR_IN) {
12289                 ZERO_STRUCT(r->out);
12290 
12291                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12292                 if (_ptr_server_unc) {
12293                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12294                 } else {
12295                         r->in.server_unc = NULL;
12296                 }
12297                 if (r->in.server_unc) {
12298                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12299                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12300                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12301                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12302                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12303                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
12304                         }
12305                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12306                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
12307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12308                 }
12309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12310                 if (_ptr_domain_name) {
12311                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12312                 } else {
12313                         r->in.domain_name = NULL;
12314                 }
12315                 if (r->in.domain_name) {
12316                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12317                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12318                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12319                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12320                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12321                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
12322                         }
12323                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12324                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
12325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12326                 }
12327                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12328                 if (_ptr_domain_guid) {
12329                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12330                 } else {
12331                         r->in.domain_guid = NULL;
12332                 }
12333                 if (r->in.domain_guid) {
12334                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12335                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12336                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12337                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12338                 }
12339                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12340                 if (_ptr_site_guid) {
12341                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
12342                 } else {
12343                         r->in.site_guid = NULL;
12344                 }
12345                 if (r->in.site_guid) {
12346                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12347                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12348                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12349                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12350                 }
12351                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12352                 NDR_PULL_ALLOC(ndr, r->out.info);
12353                 ZERO_STRUCTP(r->out.info);
12354         }
12355         if (flags & NDR_OUT) {
12356                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12357                         NDR_PULL_ALLOC(ndr, r->out.info);
12358                 }
12359                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12360                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12361                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12362                 if (_ptr_info) {
12363                         NDR_PULL_ALLOC(ndr, *r->out.info);
12364                 } else {
12365                         *r->out.info = NULL;
12366                 }
12367                 if (*r->out.info) {
12368                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12369                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12370                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12371                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12372                 }
12373                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12374                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12375         }
12376         return NDR_ERR_SUCCESS;
12377 }
12378 
12379 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
     /* [<][>][^][v][top][bottom][index][help] */
12380 {
12381         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12382         ndr->depth++;
12383         if (flags & NDR_SET_VALUES) {
12384                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12385         }
12386         if (flags & NDR_IN) {
12387                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12388                 ndr->depth++;
12389                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12390                 ndr->depth++;
12391                 if (r->in.server_unc) {
12392                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12393                 }
12394                 ndr->depth--;
12395                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12396                 ndr->depth++;
12397                 if (r->in.domain_name) {
12398                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12399                 }
12400                 ndr->depth--;
12401                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12402                 ndr->depth++;
12403                 if (r->in.domain_guid) {
12404                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12405                 }
12406                 ndr->depth--;
12407                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12408                 ndr->depth++;
12409                 if (r->in.site_guid) {
12410                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12411                 }
12412                 ndr->depth--;
12413                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12414                 ndr->depth--;
12415         }
12416         if (flags & NDR_OUT) {
12417                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12418                 ndr->depth++;
12419                 ndr_print_ptr(ndr, "info", r->out.info);
12420                 ndr->depth++;
12421                 ndr_print_ptr(ndr, "info", *r->out.info);
12422                 ndr->depth++;
12423                 if (*r->out.info) {
12424                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12425                 }
12426                 ndr->depth--;
12427                 ndr->depth--;
12428                 ndr_print_WERROR(ndr, "result", r->out.result);
12429                 ndr->depth--;
12430         }
12431         ndr->depth--;
12432 }
12433 
12434 static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr, int flags, const struct netr_LogonGetCapabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
12435 {
12436         if (flags & NDR_IN) {
12437                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12440                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12441                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12442                 if (r->in.computer_name) {
12443                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12444                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12445                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12446                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12447                 }
12448                 if (r->in.credential == NULL) {
12449                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12450                 }
12451                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12452                 if (r->in.return_authenticator == NULL) {
12453                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12454                 }
12455                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12456                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.query_level));
12457         }
12458         if (flags & NDR_OUT) {
12459                 if (r->out.return_authenticator == NULL) {
12460                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12461                 }
12462                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12463                 if (r->out.capabilities == NULL) {
12464                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12465                 }
12466                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12467                 NDR_CHECK(ndr_push_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12468                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12469         }
12470         return NDR_ERR_SUCCESS;
12471 }
12472 
12473 static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr, int flags, struct netr_LogonGetCapabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
12474 {
12475         uint32_t _ptr_computer_name;
12476         TALLOC_CTX *_mem_save_computer_name_0;
12477         TALLOC_CTX *_mem_save_credential_0;
12478         TALLOC_CTX *_mem_save_return_authenticator_0;
12479         TALLOC_CTX *_mem_save_capabilities_0;
12480         if (flags & NDR_IN) {
12481                 ZERO_STRUCT(r->out);
12482 
12483                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12484                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12485                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12486                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12487                 }
12488                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12489                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12490                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12491                 if (_ptr_computer_name) {
12492                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12493                 } else {
12494                         r->in.computer_name = NULL;
12495                 }
12496                 if (r->in.computer_name) {
12497                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12498                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12499                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12500                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12501                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12502                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12503                         }
12504                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12505                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12507                 }
12508                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12509                         NDR_PULL_ALLOC(ndr, r->in.credential);
12510                 }
12511                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12512                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12513                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12514                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12515                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12516                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12517                 }
12518                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12519                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12520                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12521                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12522                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.query_level));
12523                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12524                 *r->out.return_authenticator = *r->in.return_authenticator;
12525                 NDR_PULL_ALLOC(ndr, r->out.capabilities);
12526                 ZERO_STRUCTP(r->out.capabilities);
12527         }
12528         if (flags & NDR_OUT) {
12529                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12530                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12531                 }
12532                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12533                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12534                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12535                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12536                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12537                         NDR_PULL_ALLOC(ndr, r->out.capabilities);
12538                 }
12539                 _mem_save_capabilities_0 = NDR_PULL_GET_MEM_CTX(ndr);
12540                 NDR_PULL_SET_MEM_CTX(ndr, r->out.capabilities, LIBNDR_FLAG_REF_ALLOC);
12541                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12542                 NDR_CHECK(ndr_pull_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12543                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_capabilities_0, LIBNDR_FLAG_REF_ALLOC);
12544                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12545         }
12546         return NDR_ERR_SUCCESS;
12547 }
12548 
12549 _PUBLIC_ void ndr_print_netr_LogonGetCapabilities(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetCapabilities *r)
     /* [<][>][^][v][top][bottom][index][help] */
12550 {
12551         ndr_print_struct(ndr, name, "netr_LogonGetCapabilities");
12552         ndr->depth++;
12553         if (flags & NDR_SET_VALUES) {
12554                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12555         }
12556         if (flags & NDR_IN) {
12557                 ndr_print_struct(ndr, "in", "netr_LogonGetCapabilities");
12558                 ndr->depth++;
12559                 ndr_print_string(ndr, "server_name", r->in.server_name);
12560                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12561                 ndr->depth++;
12562                 if (r->in.computer_name) {
12563                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12564                 }
12565                 ndr->depth--;
12566                 ndr_print_ptr(ndr, "credential", r->in.credential);
12567                 ndr->depth++;
12568                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12569                 ndr->depth--;
12570                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12571                 ndr->depth++;
12572                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12573                 ndr->depth--;
12574                 ndr_print_uint32(ndr, "query_level", r->in.query_level);
12575                 ndr->depth--;
12576         }
12577         if (flags & NDR_OUT) {
12578                 ndr_print_struct(ndr, "out", "netr_LogonGetCapabilities");
12579                 ndr->depth++;
12580                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12581                 ndr->depth++;
12582                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12583                 ndr->depth--;
12584                 ndr_print_ptr(ndr, "capabilities", r->out.capabilities);
12585                 ndr->depth++;
12586                 ndr_print_set_switch_value(ndr, r->out.capabilities, r->in.query_level);
12587                 ndr_print_netr_Capabilities(ndr, "capabilities", r->out.capabilities);
12588                 ndr->depth--;
12589                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12590                 ndr->depth--;
12591         }
12592         ndr->depth--;
12593 }
12594 
12595 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
12596 {
12597         if (flags & NDR_IN) {
12598         }
12599         if (flags & NDR_OUT) {
12600                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12601         }
12602         return NDR_ERR_SUCCESS;
12603 }
12604 
12605 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
12606 {
12607         if (flags & NDR_IN) {
12608         }
12609         if (flags & NDR_OUT) {
12610                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12611         }
12612         return NDR_ERR_SUCCESS;
12613 }
12614 
12615 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
     /* [<][>][^][v][top][bottom][index][help] */
12616 {
12617         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
12618         ndr->depth++;
12619         if (flags & NDR_SET_VALUES) {
12620                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12621         }
12622         if (flags & NDR_IN) {
12623                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
12624                 ndr->depth++;
12625                 ndr->depth--;
12626         }
12627         if (flags & NDR_OUT) {
12628                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
12629                 ndr->depth++;
12630                 ndr_print_WERROR(ndr, "result", r->out.result);
12631                 ndr->depth--;
12632         }
12633         ndr->depth--;
12634 }
12635 
12636 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
     /* [<][>][^][v][top][bottom][index][help] */
12637 {
12638         if (flags & NDR_IN) {
12639                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12640                 if (r->in.server_name) {
12641                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12642                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12643                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12644                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12645                 }
12646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12647                 if (r->in.domain_name) {
12648                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12650                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12651                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12652                 }
12653         }
12654         if (flags & NDR_OUT) {
12655                 if (r->out.rid == NULL) {
12656                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12657                 }
12658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12659                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12660         }
12661         return NDR_ERR_SUCCESS;
12662 }
12663 
12664 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
     /* [<][>][^][v][top][bottom][index][help] */
12665 {
12666         uint32_t _ptr_server_name;
12667         uint32_t _ptr_domain_name;
12668         TALLOC_CTX *_mem_save_server_name_0;
12669         TALLOC_CTX *_mem_save_domain_name_0;
12670         TALLOC_CTX *_mem_save_rid_0;
12671         if (flags & NDR_IN) {
12672                 ZERO_STRUCT(r->out);
12673 
12674                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12675                 if (_ptr_server_name) {
12676                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12677                 } else {
12678                         r->in.server_name = NULL;
12679                 }
12680                 if (r->in.server_name) {
12681                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12682                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12683                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12684                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12685                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12686                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12687                         }
12688                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12689                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12690                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12691                 }
12692                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12693                 if (_ptr_domain_name) {
12694                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12695                 } else {
12696                         r->in.domain_name = NULL;
12697                 }
12698                 if (r->in.domain_name) {
12699                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12700                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12701                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12702                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12703                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12704                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
12705                         }
12706                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12707                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
12708                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12709                 }
12710                 NDR_PULL_ALLOC(ndr, r->out.rid);
12711                 ZERO_STRUCTP(r->out.rid);
12712         }
12713         if (flags & NDR_OUT) {
12714                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12715                         NDR_PULL_ALLOC(ndr, r->out.rid);
12716                 }
12717                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12718                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12719                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12720                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12721                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12722         }
12723         return NDR_ERR_SUCCESS;
12724 }
12725 
12726 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
     /* [<][>][^][v][top][bottom][index][help] */
12727 {
12728         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
12729         ndr->depth++;
12730         if (flags & NDR_SET_VALUES) {
12731                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12732         }
12733         if (flags & NDR_IN) {
12734                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
12735                 ndr->depth++;
12736                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12737                 ndr->depth++;
12738                 if (r->in.server_name) {
12739                         ndr_print_string(ndr, "server_name", r->in.server_name);
12740                 }
12741                 ndr->depth--;
12742                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12743                 ndr->depth++;
12744                 if (r->in.domain_name) {
12745                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12746                 }
12747                 ndr->depth--;
12748                 ndr->depth--;
12749         }
12750         if (flags & NDR_OUT) {
12751                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
12752                 ndr->depth++;
12753                 ndr_print_ptr(ndr, "rid", r->out.rid);
12754                 ndr->depth++;
12755                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12756                 ndr->depth--;
12757                 ndr_print_WERROR(ndr, "result", r->out.result);
12758                 ndr->depth--;
12759         }
12760         ndr->depth--;
12761 }
12762 
12763 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12764 {
12765         if (flags & NDR_IN) {
12766         }
12767         if (flags & NDR_OUT) {
12768                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12769         }
12770         return NDR_ERR_SUCCESS;
12771 }
12772 
12773 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12774 {
12775         if (flags & NDR_IN) {
12776         }
12777         if (flags & NDR_OUT) {
12778                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12779         }
12780         return NDR_ERR_SUCCESS;
12781 }
12782 
12783 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12784 {
12785         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
12786         ndr->depth++;
12787         if (flags & NDR_SET_VALUES) {
12788                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12789         }
12790         if (flags & NDR_IN) {
12791                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12792                 ndr->depth++;
12793                 ndr->depth--;
12794         }
12795         if (flags & NDR_OUT) {
12796                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12797                 ndr->depth++;
12798                 ndr_print_WERROR(ndr, "result", r->out.result);
12799                 ndr->depth--;
12800         }
12801         ndr->depth--;
12802 }
12803 
12804 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12805 {
12806         if (flags & NDR_IN) {
12807         }
12808         if (flags & NDR_OUT) {
12809                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12810         }
12811         return NDR_ERR_SUCCESS;
12812 }
12813 
12814 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12815 {
12816         if (flags & NDR_IN) {
12817         }
12818         if (flags & NDR_OUT) {
12819                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12820         }
12821         return NDR_ERR_SUCCESS;
12822 }
12823 
12824 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
     /* [<][>][^][v][top][bottom][index][help] */
12825 {
12826         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12827         ndr->depth++;
12828         if (flags & NDR_SET_VALUES) {
12829                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12830         }
12831         if (flags & NDR_IN) {
12832                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12833                 ndr->depth++;
12834                 ndr->depth--;
12835         }
12836         if (flags & NDR_OUT) {
12837                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12838                 ndr->depth++;
12839                 ndr_print_WERROR(ndr, "result", r->out.result);
12840                 ndr->depth--;
12841         }
12842         ndr->depth--;
12843 }
12844 
12845 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
12846 {
12847         if (flags & NDR_IN) {
12848                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12849                 if (r->in.server_name) {
12850                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12851                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12852                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12853                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12854                 }
12855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12858                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12859                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12863                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12864                 if (r->in.credentials == NULL) {
12865                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12866                 }
12867                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12868                 if (r->in.negotiate_flags == NULL) {
12869                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12870                 }
12871                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
12872         }
12873         if (flags & NDR_OUT) {
12874                 if (r->out.return_credentials == NULL) {
12875                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12876                 }
12877                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12878                 if (r->out.negotiate_flags == NULL) {
12879                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12880                 }
12881                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
12882                 if (r->out.rid == NULL) {
12883                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12884                 }
12885                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12886                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12887         }
12888         return NDR_ERR_SUCCESS;
12889 }
12890 
12891 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
12892 {
12893         uint32_t _ptr_server_name;
12894         TALLOC_CTX *_mem_save_server_name_0;
12895         TALLOC_CTX *_mem_save_credentials_0;
12896         TALLOC_CTX *_mem_save_return_credentials_0;
12897         TALLOC_CTX *_mem_save_negotiate_flags_0;
12898         TALLOC_CTX *_mem_save_rid_0;
12899         if (flags & NDR_IN) {
12900                 ZERO_STRUCT(r->out);
12901 
12902                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12903                 if (_ptr_server_name) {
12904                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12905                 } else {
12906                         r->in.server_name = NULL;
12907                 }
12908                 if (r->in.server_name) {
12909                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12910                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12911                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12912                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12913                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12914                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12915                         }
12916                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12917                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12918                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12919                 }
12920                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12921                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12922                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12923                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
12924                 }
12925                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12926                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
12927                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12928                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12929                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12930                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12931                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12932                 }
12933                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12934                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12935                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12936                         NDR_PULL_ALLOC(ndr, r->in.credentials);
12937                 }
12938                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12939                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
12940                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12941                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12942                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12943                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
12944                 }
12945                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12946                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12947                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
12948                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12949                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12950                 ZERO_STRUCTP(r->out.return_credentials);
12951                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12952                 *r->out.negotiate_flags = *r->in.negotiate_flags;
12953                 NDR_PULL_ALLOC(ndr, r->out.rid);
12954                 ZERO_STRUCTP(r->out.rid);
12955         }
12956         if (flags & NDR_OUT) {
12957                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12958                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12959                 }
12960                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12961                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
12962                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12963                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12964                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12965                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12966                 }
12967                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12968                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12969                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
12970                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12971                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12972                         NDR_PULL_ALLOC(ndr, r->out.rid);
12973                 }
12974                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12975                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12976                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12977                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12978                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12979         }
12980         return NDR_ERR_SUCCESS;
12981 }
12982 
12983 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
     /* [<][>][^][v][top][bottom][index][help] */
12984 {
12985         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
12986         ndr->depth++;
12987         if (flags & NDR_SET_VALUES) {
12988                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12989         }
12990         if (flags & NDR_IN) {
12991                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
12992                 ndr->depth++;
12993                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12994                 ndr->depth++;
12995                 if (r->in.server_name) {
12996                         ndr_print_string(ndr, "server_name", r->in.server_name);
12997                 }
12998                 ndr->depth--;
12999                 ndr_print_string(ndr, "account_name", r->in.account_name);
13000                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13001                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13002                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
13003                 ndr->depth++;
13004                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
13005                 ndr->depth--;
13006                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
13007                 ndr->depth++;
13008                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
13009                 ndr->depth--;
13010                 ndr->depth--;
13011         }
13012         if (flags & NDR_OUT) {
13013                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
13014                 ndr->depth++;
13015                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
13016                 ndr->depth++;
13017                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
13018                 ndr->depth--;
13019                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
13020                 ndr->depth++;
13021                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
13022                 ndr->depth--;
13023                 ndr_print_ptr(ndr, "rid", r->out.rid);
13024                 ndr->depth++;
13025                 ndr_print_uint32(ndr, "rid", *r->out.rid);
13026                 ndr->depth--;
13027                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13028                 ndr->depth--;
13029         }
13030         ndr->depth--;
13031 }
13032 
13033 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
13034 {
13035         if (flags & NDR_IN) {
13036                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13037                 if (r->in.server_unc) {
13038                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13039                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13040                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13041                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13042                 }
13043                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13044                 if (r->in.domain_name) {
13045                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13046                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13047                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13048                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13049                 }
13050                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13051                 if (r->in.domain_guid) {
13052                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13053                 }
13054                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13055                 if (r->in.site_name) {
13056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13057                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13058                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13059                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13060                 }
13061                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13062         }
13063         if (flags & NDR_OUT) {
13064                 if (r->out.info == NULL) {
13065                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13066                 }
13067                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13068                 if (*r->out.info) {
13069                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13070                 }
13071                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13072         }
13073         return NDR_ERR_SUCCESS;
13074 }
13075 
13076 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
13077 {
13078         uint32_t _ptr_server_unc;
13079         uint32_t _ptr_domain_name;
13080         uint32_t _ptr_domain_guid;
13081         uint32_t _ptr_site_name;
13082         uint32_t _ptr_info;
13083         TALLOC_CTX *_mem_save_server_unc_0;
13084         TALLOC_CTX *_mem_save_domain_name_0;
13085         TALLOC_CTX *_mem_save_domain_guid_0;
13086         TALLOC_CTX *_mem_save_site_name_0;
13087         TALLOC_CTX *_mem_save_info_0;
13088         TALLOC_CTX *_mem_save_info_1;
13089         if (flags & NDR_IN) {
13090                 ZERO_STRUCT(r->out);
13091 
13092                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13093                 if (_ptr_server_unc) {
13094                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
13095                 } else {
13096                         r->in.server_unc = NULL;
13097                 }
13098                 if (r->in.server_unc) {
13099                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13100                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13102                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13103                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13104                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
13105                         }
13106                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13107                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
13108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13109                 }
13110                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13111                 if (_ptr_domain_name) {
13112                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13113                 } else {
13114                         r->in.domain_name = NULL;
13115                 }
13116                 if (r->in.domain_name) {
13117                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13118                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13119                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13120                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13121                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13122                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
13123                         }
13124                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13125                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
13126                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13127                 }
13128                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13129                 if (_ptr_domain_guid) {
13130                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13131                 } else {
13132                         r->in.domain_guid = NULL;
13133                 }
13134                 if (r->in.domain_guid) {
13135                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13136                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13137                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13138                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13139                 }
13140                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13141                 if (_ptr_site_name) {
13142                         NDR_PULL_ALLOC(ndr, r->in.site_name);
13143                 } else {
13144                         r->in.site_name = NULL;
13145                 }
13146                 if (r->in.site_name) {
13147                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13148                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13149                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13150                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13151                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13152                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
13153                         }
13154                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13155                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
13156                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13157                 }
13158                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13159                 NDR_PULL_ALLOC(ndr, r->out.info);
13160                 ZERO_STRUCTP(r->out.info);
13161         }
13162         if (flags & NDR_OUT) {
13163                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13164                         NDR_PULL_ALLOC(ndr, r->out.info);
13165                 }
13166                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13167                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13168                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13169                 if (_ptr_info) {
13170                         NDR_PULL_ALLOC(ndr, *r->out.info);
13171                 } else {
13172                         *r->out.info = NULL;
13173                 }
13174                 if (*r->out.info) {
13175                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13176                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13177                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13178                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13179                 }
13180                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13181                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13182         }
13183         return NDR_ERR_SUCCESS;
13184 }
13185 
13186 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
13187 {
13188         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
13189         ndr->depth++;
13190         if (flags & NDR_SET_VALUES) {
13191                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13192         }
13193         if (flags & NDR_IN) {
13194                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
13195                 ndr->depth++;
13196                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13197                 ndr->depth++;
13198                 if (r->in.server_unc) {
13199                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13200                 }
13201                 ndr->depth--;
13202                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13203                 ndr->depth++;
13204                 if (r->in.domain_name) {
13205                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13206                 }
13207                 ndr->depth--;
13208                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13209                 ndr->depth++;
13210                 if (r->in.domain_guid) {
13211                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13212                 }
13213                 ndr->depth--;
13214                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13215                 ndr->depth++;
13216                 if (r->in.site_name) {
13217                         ndr_print_string(ndr, "site_name", r->in.site_name);
13218                 }
13219                 ndr->depth--;
13220                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13221                 ndr->depth--;
13222         }
13223         if (flags & NDR_OUT) {
13224                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
13225                 ndr->depth++;
13226                 ndr_print_ptr(ndr, "info", r->out.info);
13227                 ndr->depth++;
13228                 ndr_print_ptr(ndr, "info", *r->out.info);
13229                 ndr->depth++;
13230                 if (*r->out.info) {
13231                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13232                 }
13233                 ndr->depth--;
13234                 ndr->depth--;
13235                 ndr_print_WERROR(ndr, "result", r->out.result);
13236                 ndr->depth--;
13237         }
13238         ndr->depth--;
13239 }
13240 
13241 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
     /* [<][>][^][v][top][bottom][index][help] */
13242 {
13243         if (flags & NDR_IN) {
13244                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13245                 if (r->in.computer_name) {
13246                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13247                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13249                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13250                 }
13251         }
13252         if (flags & NDR_OUT) {
13253                 if (r->out.site == NULL) {
13254                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13255                 }
13256                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
13257                 if (*r->out.site) {
13258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13260                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13261                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13262                 }
13263                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13264         }
13265         return NDR_ERR_SUCCESS;
13266 }
13267 
13268 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
     /* [<][>][^][v][top][bottom][index][help] */
13269 {
13270         uint32_t _ptr_computer_name;
13271         uint32_t _ptr_site;
13272         TALLOC_CTX *_mem_save_computer_name_0;
13273         TALLOC_CTX *_mem_save_site_0;
13274         TALLOC_CTX *_mem_save_site_1;
13275         if (flags & NDR_IN) {
13276                 ZERO_STRUCT(r->out);
13277 
13278                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13279                 if (_ptr_computer_name) {
13280                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13281                 } else {
13282                         r->in.computer_name = NULL;
13283                 }
13284                 if (r->in.computer_name) {
13285                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13286                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13287                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13288                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13289                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13290                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13291                         }
13292                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13293                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13294                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13295                 }
13296                 NDR_PULL_ALLOC(ndr, r->out.site);
13297                 ZERO_STRUCTP(r->out.site);
13298         }
13299         if (flags & NDR_OUT) {
13300                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13301                         NDR_PULL_ALLOC(ndr, r->out.site);
13302                 }
13303                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
13304                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
13305                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
13306                 if (_ptr_site) {
13307                         NDR_PULL_ALLOC(ndr, *r->out.site);
13308                 } else {
13309                         *r->out.site = NULL;
13310                 }
13311                 if (*r->out.site) {
13312                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
13313                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
13314                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
13315                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
13316                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
13317                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site));
13318                         }
13319                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
13320                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
13321                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
13322                 }
13323                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
13324                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13325         }
13326         return NDR_ERR_SUCCESS;
13327 }
13328 
13329 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
     /* [<][>][^][v][top][bottom][index][help] */
13330 {
13331         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
13332         ndr->depth++;
13333         if (flags & NDR_SET_VALUES) {
13334                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13335         }
13336         if (flags & NDR_IN) {
13337                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
13338                 ndr->depth++;
13339                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13340                 ndr->depth++;
13341                 if (r->in.computer_name) {
13342                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13343                 }
13344                 ndr->depth--;
13345                 ndr->depth--;
13346         }
13347         if (flags & NDR_OUT) {
13348                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
13349                 ndr->depth++;
13350                 ndr_print_ptr(ndr, "site", r->out.site);
13351                 ndr->depth++;
13352                 ndr_print_ptr(ndr, "site", *r->out.site);
13353                 ndr->depth++;
13354                 if (*r->out.site) {
13355                         ndr_print_string(ndr, "site", *r->out.site);
13356                 }
13357                 ndr->depth--;
13358                 ndr->depth--;
13359                 ndr_print_WERROR(ndr, "result", r->out.result);
13360                 ndr->depth--;
13361         }
13362         ndr->depth--;
13363 }
13364 
13365 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
13366 {
13367         if (flags & NDR_IN) {
13368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13370                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13371                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13372                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13373                 if (r->in.computer_name) {
13374                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13375                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13376                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13377                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13378                 }
13379                 if (r->in.credential == NULL) {
13380                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13381                 }
13382                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13383                 if (r->in.return_authenticator == NULL) {
13384                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13385                 }
13386                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13388                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
13389                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13390         }
13391         if (flags & NDR_OUT) {
13392                 if (r->out.return_authenticator == NULL) {
13393                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13394                 }
13395                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13396                 if (r->out.info == NULL) {
13397                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13398                 }
13399                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13400                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13401                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13402         }
13403         return NDR_ERR_SUCCESS;
13404 }
13405 
13406 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
13407 {
13408         uint32_t _ptr_computer_name;
13409         TALLOC_CTX *_mem_save_computer_name_0;
13410         TALLOC_CTX *_mem_save_credential_0;
13411         TALLOC_CTX *_mem_save_return_authenticator_0;
13412         TALLOC_CTX *_mem_save_info_0;
13413         if (flags & NDR_IN) {
13414                 ZERO_STRUCT(r->out);
13415 
13416                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13417                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13418                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13419                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13420                 }
13421                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13422                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13423                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13424                 if (_ptr_computer_name) {
13425                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13426                 } else {
13427                         r->in.computer_name = NULL;
13428                 }
13429                 if (r->in.computer_name) {
13430                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13431                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13432                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13433                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13434                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13435                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13436                         }
13437                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13438                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13440                 }
13441                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13442                         NDR_PULL_ALLOC(ndr, r->in.credential);
13443                 }
13444                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13445                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13446                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13447                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13448                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13449                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13450                 }
13451                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13452                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13453                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13454                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13455                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13456                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
13457                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13458                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13459                 *r->out.return_authenticator = *r->in.return_authenticator;
13460                 NDR_PULL_ALLOC(ndr, r->out.info);
13461                 ZERO_STRUCTP(r->out.info);
13462         }
13463         if (flags & NDR_OUT) {
13464                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13465                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13466                 }
13467                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13468                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13469                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13470                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13471                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13472                         NDR_PULL_ALLOC(ndr, r->out.info);
13473                 }
13474                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13475                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13476                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13477                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13478                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13479                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13480         }
13481         return NDR_ERR_SUCCESS;
13482 }
13483 
13484 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
13485 {
13486         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
13487         ndr->depth++;
13488         if (flags & NDR_SET_VALUES) {
13489                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13490         }
13491         if (flags & NDR_IN) {
13492                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
13493                 ndr->depth++;
13494                 ndr_print_string(ndr, "server_name", r->in.server_name);
13495                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13496                 ndr->depth++;
13497                 if (r->in.computer_name) {
13498                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13499                 }
13500                 ndr->depth--;
13501                 ndr_print_ptr(ndr, "credential", r->in.credential);
13502                 ndr->depth++;
13503                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13504                 ndr->depth--;
13505                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13506                 ndr->depth++;
13507                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13508                 ndr->depth--;
13509                 ndr_print_uint32(ndr, "level", r->in.level);
13510                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
13511                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
13512                 ndr->depth--;
13513         }
13514         if (flags & NDR_OUT) {
13515                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13516                 ndr->depth++;
13517                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13518                 ndr->depth++;
13519                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13520                 ndr->depth--;
13521                 ndr_print_ptr(ndr, "info", r->out.info);
13522                 ndr->depth++;
13523                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13524                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13525                 ndr->depth--;
13526                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13527                 ndr->depth--;
13528         }
13529         ndr->depth--;
13530 }
13531 
13532 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
13533 {
13534         if (flags & NDR_IN) {
13535                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13536                 if (r->in.server_name) {
13537                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13538                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13539                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13540                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13541                 }
13542                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13543                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13545                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13546                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13550                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13551                 if (r->in.credential == NULL) {
13552                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13553                 }
13554                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13555                 if (r->in.new_password == NULL) {
13556                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13557                 }
13558                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13559         }
13560         if (flags & NDR_OUT) {
13561                 if (r->out.return_authenticator == NULL) {
13562                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13563                 }
13564                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13565                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13566         }
13567         return NDR_ERR_SUCCESS;
13568 }
13569 
13570 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
13571 {
13572         uint32_t _ptr_server_name;
13573         TALLOC_CTX *_mem_save_server_name_0;
13574         TALLOC_CTX *_mem_save_credential_0;
13575         TALLOC_CTX *_mem_save_return_authenticator_0;
13576         TALLOC_CTX *_mem_save_new_password_0;
13577         if (flags & NDR_IN) {
13578                 ZERO_STRUCT(r->out);
13579 
13580                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13581                 if (_ptr_server_name) {
13582                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13583                 } else {
13584                         r->in.server_name = NULL;
13585                 }
13586                 if (r->in.server_name) {
13587                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13588                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13589                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13590                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13591                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13592                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13593                         }
13594                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13595                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13596                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13597                 }
13598                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13599                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13600                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13601                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
13602                 }
13603                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13604                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
13605                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13606                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13607                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13608                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13609                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13610                 }
13611                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13612                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13613                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13614                         NDR_PULL_ALLOC(ndr, r->in.credential);
13615                 }
13616                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13617                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13618                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13619                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13620                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13621                         NDR_PULL_ALLOC(ndr, r->in.new_password);
13622                 }
13623                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13624                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
13625                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13626                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
13627                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13628                 ZERO_STRUCTP(r->out.return_authenticator);
13629         }
13630         if (flags & NDR_OUT) {
13631                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13632                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13633                 }
13634                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13635                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13636                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13637                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13638                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13639         }
13640         return NDR_ERR_SUCCESS;
13641 }
13642 
13643 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
13644 {
13645         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
13646         ndr->depth++;
13647         if (flags & NDR_SET_VALUES) {
13648                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13649         }
13650         if (flags & NDR_IN) {
13651                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
13652                 ndr->depth++;
13653                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13654                 ndr->depth++;
13655                 if (r->in.server_name) {
13656                         ndr_print_string(ndr, "server_name", r->in.server_name);
13657                 }
13658                 ndr->depth--;
13659                 ndr_print_string(ndr, "account_name", r->in.account_name);
13660                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13661                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13662                 ndr_print_ptr(ndr, "credential", r->in.credential);
13663                 ndr->depth++;
13664                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13665                 ndr->depth--;
13666                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
13667                 ndr->depth++;
13668                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
13669                 ndr->depth--;
13670                 ndr->depth--;
13671         }
13672         if (flags & NDR_OUT) {
13673                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
13674                 ndr->depth++;
13675                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13676                 ndr->depth++;
13677                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13678                 ndr->depth--;
13679                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13680                 ndr->depth--;
13681         }
13682         ndr->depth--;
13683 }
13684 
13685 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
13686 {
13687         if (flags & NDR_IN) {
13688                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13689                 if (r->in.server_name) {
13690                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13691                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13692                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13693                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13694                 }
13695                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13696                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13697                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13698                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13699                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13700                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13701                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13702                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13703                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13704                 if (r->in.credential == NULL) {
13705                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13706                 }
13707                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13708         }
13709         if (flags & NDR_OUT) {
13710                 if (r->out.return_authenticator == NULL) {
13711                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13712                 }
13713                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13714                 if (r->out.password == NULL) {
13715                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13716                 }
13717                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13718                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13719         }
13720         return NDR_ERR_SUCCESS;
13721 }
13722 
13723 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
13724 {
13725         uint32_t _ptr_server_name;
13726         TALLOC_CTX *_mem_save_server_name_0;
13727         TALLOC_CTX *_mem_save_credential_0;
13728         TALLOC_CTX *_mem_save_return_authenticator_0;
13729         TALLOC_CTX *_mem_save_password_0;
13730         if (flags & NDR_IN) {
13731                 ZERO_STRUCT(r->out);
13732 
13733                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13734                 if (_ptr_server_name) {
13735                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13736                 } else {
13737                         r->in.server_name = NULL;
13738                 }
13739                 if (r->in.server_name) {
13740                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13741                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13742                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13743                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13744                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13745                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13746                         }
13747                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13748                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13749                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13750                 }
13751                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13752                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13753                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13754                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
13755                 }
13756                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13757                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
13758                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13759                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13760                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13761                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13762                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13763                 }
13764                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13765                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13766                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13767                         NDR_PULL_ALLOC(ndr, r->in.credential);
13768                 }
13769                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13770                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13771                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13772                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13773                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13774                 ZERO_STRUCTP(r->out.return_authenticator);
13775                 NDR_PULL_ALLOC(ndr, r->out.password);
13776                 ZERO_STRUCTP(r->out.password);
13777         }
13778         if (flags & NDR_OUT) {
13779                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13780                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13781                 }
13782                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13783                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13784                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13785                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13786                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13787                         NDR_PULL_ALLOC(ndr, r->out.password);
13788                 }
13789                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13790                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13791                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
13792                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13793                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13794         }
13795         return NDR_ERR_SUCCESS;
13796 }
13797 
13798 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
13799 {
13800         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
13801         ndr->depth++;
13802         if (flags & NDR_SET_VALUES) {
13803                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13804         }
13805         if (flags & NDR_IN) {
13806                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
13807                 ndr->depth++;
13808                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13809                 ndr->depth++;
13810                 if (r->in.server_name) {
13811                         ndr_print_string(ndr, "server_name", r->in.server_name);
13812                 }
13813                 ndr->depth--;
13814                 ndr_print_string(ndr, "account_name", r->in.account_name);
13815                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13816                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13817                 ndr_print_ptr(ndr, "credential", r->in.credential);
13818                 ndr->depth++;
13819                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13820                 ndr->depth--;
13821                 ndr->depth--;
13822         }
13823         if (flags & NDR_OUT) {
13824                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
13825                 ndr->depth++;
13826                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13827                 ndr->depth++;
13828                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13829                 ndr->depth--;
13830                 ndr_print_ptr(ndr, "password", r->out.password);
13831                 ndr->depth++;
13832                 ndr_print_samr_Password(ndr, "password", r->out.password);
13833                 ndr->depth--;
13834                 ndr_print_WERROR(ndr, "result", r->out.result);
13835                 ndr->depth--;
13836         }
13837         ndr->depth--;
13838 }
13839 
13840 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
     /* [<][>][^][v][top][bottom][index][help] */
13841 {
13842         if (flags & NDR_IN) {
13843         }
13844         if (flags & NDR_OUT) {
13845                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13846         }
13847         return NDR_ERR_SUCCESS;
13848 }
13849 
13850 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
     /* [<][>][^][v][top][bottom][index][help] */
13851 {
13852         if (flags & NDR_IN) {
13853         }
13854         if (flags & NDR_OUT) {
13855                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13856         }
13857         return NDR_ERR_SUCCESS;
13858 }
13859 
13860 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
     /* [<][>][^][v][top][bottom][index][help] */
13861 {
13862         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
13863         ndr->depth++;
13864         if (flags & NDR_SET_VALUES) {
13865                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13866         }
13867         if (flags & NDR_IN) {
13868                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
13869                 ndr->depth++;
13870                 ndr->depth--;
13871         }
13872         if (flags & NDR_OUT) {
13873                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
13874                 ndr->depth++;
13875                 ndr_print_WERROR(ndr, "result", r->out.result);
13876                 ndr->depth--;
13877         }
13878         ndr->depth--;
13879 }
13880 
13881 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
     /* [<][>][^][v][top][bottom][index][help] */
13882 {
13883         uint32_t cntr_addresses_1;
13884         if (flags & NDR_IN) {
13885                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13886                 if (r->in.server_name) {
13887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13888                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13889                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13890                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13891                 }
13892                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13893                 if (r->in.addresses == NULL) {
13894                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13895                 }
13896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13897                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13898                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13899                 }
13900                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13901                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13902                 }
13903         }
13904         if (flags & NDR_OUT) {
13905                 if (r->out.ctr == NULL) {
13906                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13907                 }
13908                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13909                 if (*r->out.ctr) {
13910                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13911                 }
13912                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13913         }
13914         return NDR_ERR_SUCCESS;
13915 }
13916 
13917 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
     /* [<][>][^][v][top][bottom][index][help] */
13918 {
13919         uint32_t _ptr_server_name;
13920         uint32_t cntr_addresses_1;
13921         uint32_t _ptr_ctr;
13922         TALLOC_CTX *_mem_save_server_name_0;
13923         TALLOC_CTX *_mem_save_addresses_1;
13924         TALLOC_CTX *_mem_save_ctr_0;
13925         TALLOC_CTX *_mem_save_ctr_1;
13926         if (flags & NDR_IN) {
13927                 ZERO_STRUCT(r->out);
13928 
13929                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13930                 if (_ptr_server_name) {
13931                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13932                 } else {
13933                         r->in.server_name = NULL;
13934                 }
13935                 if (r->in.server_name) {
13936                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13937                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13938                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13939                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13940                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13941                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13942                         }
13943                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13944                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13945                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13946                 }
13947                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13948                 if (r->in.count > 32000) {
13949                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13950                 }
13951                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13952                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13953                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13954                 }
13955                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13956                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13957                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13958                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13959                 }
13960                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13961                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13962                 }
13963                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13964                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13965                 ZERO_STRUCTP(r->out.ctr);
13966                 if (r->in.addresses) {
13967                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13968                 }
13969         }
13970         if (flags & NDR_OUT) {
13971                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13972                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13973                 }
13974                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13975                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13976                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13977                 if (_ptr_ctr) {
13978                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13979                 } else {
13980                         *r->out.ctr = NULL;
13981                 }
13982                 if (*r->out.ctr) {
13983                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13984                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13985                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13986                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13987                 }
13988                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13989                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13990         }
13991         return NDR_ERR_SUCCESS;
13992 }
13993 
13994 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
     /* [<][>][^][v][top][bottom][index][help] */
13995 {
13996         uint32_t cntr_addresses_1;
13997         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
13998         ndr->depth++;
13999         if (flags & NDR_SET_VALUES) {
14000                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14001         }
14002         if (flags & NDR_IN) {
14003                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
14004                 ndr->depth++;
14005                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14006                 ndr->depth++;
14007                 if (r->in.server_name) {
14008                         ndr_print_string(ndr, "server_name", r->in.server_name);
14009                 }
14010                 ndr->depth--;
14011                 ndr_print_uint32(ndr, "count", r->in.count);
14012                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14013                 ndr->depth++;
14014                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14015                 ndr->depth++;
14016                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14017                         char *idx_1=NULL;
14018                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14019                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14020                                 free(idx_1);
14021                         }
14022                 }
14023                 ndr->depth--;
14024                 ndr->depth--;
14025                 ndr->depth--;
14026         }
14027         if (flags & NDR_OUT) {
14028                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
14029                 ndr->depth++;
14030                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14031                 ndr->depth++;
14032                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14033                 ndr->depth++;
14034                 if (*r->out.ctr) {
14035                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
14036                 }
14037                 ndr->depth--;
14038                 ndr->depth--;
14039                 ndr_print_WERROR(ndr, "result", r->out.result);
14040                 ndr->depth--;
14041         }
14042         ndr->depth--;
14043 }
14044 
14045 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
14046 {
14047         if (flags & NDR_IN) {
14048                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
14049                 if (r->in.server_unc) {
14050                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14051                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14052                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14053                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14054                 }
14055                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
14056                 if (r->in.client_account) {
14057                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14058                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14059                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14060                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_account, ndr_charset_length(r->in.client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14061                 }
14062                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
14063                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
14064                 if (r->in.domain_name) {
14065                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14066                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14067                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14068                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14069                 }
14070                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14071                 if (r->in.domain_guid) {
14072                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14073                 }
14074                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
14075                 if (r->in.site_name) {
14076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14079                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14080                 }
14081                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
14082         }
14083         if (flags & NDR_OUT) {
14084                 if (r->out.info == NULL) {
14085                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14086                 }
14087                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
14088                 if (*r->out.info) {
14089                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14090                 }
14091                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14092         }
14093         return NDR_ERR_SUCCESS;
14094 }
14095 
14096 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
14097 {
14098         uint32_t _ptr_server_unc;
14099         uint32_t _ptr_client_account;
14100         uint32_t _ptr_domain_name;
14101         uint32_t _ptr_domain_guid;
14102         uint32_t _ptr_site_name;
14103         uint32_t _ptr_info;
14104         TALLOC_CTX *_mem_save_server_unc_0;
14105         TALLOC_CTX *_mem_save_client_account_0;
14106         TALLOC_CTX *_mem_save_domain_name_0;
14107         TALLOC_CTX *_mem_save_domain_guid_0;
14108         TALLOC_CTX *_mem_save_site_name_0;
14109         TALLOC_CTX *_mem_save_info_0;
14110         TALLOC_CTX *_mem_save_info_1;
14111         if (flags & NDR_IN) {
14112                 ZERO_STRUCT(r->out);
14113 
14114                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
14115                 if (_ptr_server_unc) {
14116                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
14117                 } else {
14118                         r->in.server_unc = NULL;
14119                 }
14120                 if (r->in.server_unc) {
14121                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
14122                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
14123                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
14124                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
14125                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
14126                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
14127                         }
14128                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
14129                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
14130                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
14131                 }
14132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
14133                 if (_ptr_client_account) {
14134                         NDR_PULL_ALLOC(ndr, r->in.client_account);
14135                 } else {
14136                         r->in.client_account = NULL;
14137                 }
14138                 if (r->in.client_account) {
14139                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
14140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
14141                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
14142                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
14143                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
14144                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client_account), ndr_get_array_length(ndr, &r->in.client_account));
14145                         }
14146                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
14147                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t), CH_UTF16));
14148                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
14149                 }
14150                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
14151                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
14152                 if (_ptr_domain_name) {
14153                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
14154                 } else {
14155                         r->in.domain_name = NULL;
14156                 }
14157                 if (r->in.domain_name) {
14158                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14159                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
14160                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
14161                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
14162                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
14163                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
14164                         }
14165                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
14166                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
14167                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
14168                 }
14169                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14170                 if (_ptr_domain_guid) {
14171                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14172                 } else {
14173                         r->in.domain_guid = NULL;
14174                 }
14175                 if (r->in.domain_guid) {
14176                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14177                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14178                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14179                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14180                 }
14181                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
14182                 if (_ptr_site_name) {
14183                         NDR_PULL_ALLOC(ndr, r->in.site_name);
14184                 } else {
14185                         r->in.site_name = NULL;
14186                 }
14187                 if (r->in.site_name) {
14188                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14189                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
14190                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
14191                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
14192                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
14193                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
14194                         }
14195                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
14196                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
14197                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
14198                 }
14199                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
14200                 NDR_PULL_ALLOC(ndr, r->out.info);
14201                 ZERO_STRUCTP(r->out.info);
14202         }
14203         if (flags & NDR_OUT) {
14204                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14205                         NDR_PULL_ALLOC(ndr, r->out.info);
14206                 }
14207                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14208                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14209                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14210                 if (_ptr_info) {
14211                         NDR_PULL_ALLOC(ndr, *r->out.info);
14212                 } else {
14213                         *r->out.info = NULL;
14214                 }
14215                 if (*r->out.info) {
14216                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14217                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
14218                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14219                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14220                 }
14221                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14222                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14223         }
14224         return NDR_ERR_SUCCESS;
14225 }
14226 
14227 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
     /* [<][>][^][v][top][bottom][index][help] */
14228 {
14229         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
14230         ndr->depth++;
14231         if (flags & NDR_SET_VALUES) {
14232                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14233         }
14234         if (flags & NDR_IN) {
14235                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
14236                 ndr->depth++;
14237                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
14238                 ndr->depth++;
14239                 if (r->in.server_unc) {
14240                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
14241                 }
14242                 ndr->depth--;
14243                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
14244                 ndr->depth++;
14245                 if (r->in.client_account) {
14246                         ndr_print_string(ndr, "client_account", r->in.client_account);
14247                 }
14248                 ndr->depth--;
14249                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
14250                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
14251                 ndr->depth++;
14252                 if (r->in.domain_name) {
14253                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
14254                 }
14255                 ndr->depth--;
14256                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14257                 ndr->depth++;
14258                 if (r->in.domain_guid) {
14259                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14260                 }
14261                 ndr->depth--;
14262                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
14263                 ndr->depth++;
14264                 if (r->in.site_name) {
14265                         ndr_print_string(ndr, "site_name", r->in.site_name);
14266                 }
14267                 ndr->depth--;
14268                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
14269                 ndr->depth--;
14270         }
14271         if (flags & NDR_OUT) {
14272                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
14273                 ndr->depth++;
14274                 ndr_print_ptr(ndr, "info", r->out.info);
14275                 ndr->depth++;
14276                 ndr_print_ptr(ndr, "info", *r->out.info);
14277                 ndr->depth++;
14278                 if (*r->out.info) {
14279                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
14280                 }
14281                 ndr->depth--;
14282                 ndr->depth--;
14283                 ndr_print_WERROR(ndr, "result", r->out.result);
14284                 ndr->depth--;
14285         }
14286         ndr->depth--;
14287 }
14288 
14289 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
14290 {
14291         if (flags & NDR_IN) {
14292         }
14293         if (flags & NDR_OUT) {
14294                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14295         }
14296         return NDR_ERR_SUCCESS;
14297 }
14298 
14299 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
14300 {
14301         if (flags & NDR_IN) {
14302         }
14303         if (flags & NDR_OUT) {
14304                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14305         }
14306         return NDR_ERR_SUCCESS;
14307 }
14308 
14309 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
     /* [<][>][^][v][top][bottom][index][help] */
14310 {
14311         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14312         ndr->depth++;
14313         if (flags & NDR_SET_VALUES) {
14314                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14315         }
14316         if (flags & NDR_IN) {
14317                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14318                 ndr->depth++;
14319                 ndr->depth--;
14320         }
14321         if (flags & NDR_OUT) {
14322                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14323                 ndr->depth++;
14324                 ndr_print_WERROR(ndr, "result", r->out.result);
14325                 ndr->depth--;
14326         }
14327         ndr->depth--;
14328 }
14329 
14330 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14331 {
14332         if (flags & NDR_IN) {
14333                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14334                 if (r->in.server_name) {
14335                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14336                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14337                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14338                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14339                 }
14340         }
14341         if (flags & NDR_OUT) {
14342                 if (r->out.dom_trust_list == NULL) {
14343                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14344                 }
14345                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14346                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14347         }
14348         return NDR_ERR_SUCCESS;
14349 }
14350 
14351 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14352 {
14353         uint32_t _ptr_server_name;
14354         TALLOC_CTX *_mem_save_server_name_0;
14355         TALLOC_CTX *_mem_save_dom_trust_list_0;
14356         if (flags & NDR_IN) {
14357                 ZERO_STRUCT(r->out);
14358 
14359                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14360                 if (_ptr_server_name) {
14361                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14362                 } else {
14363                         r->in.server_name = NULL;
14364                 }
14365                 if (r->in.server_name) {
14366                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14367                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14368                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14369                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14370                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14371                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14372                         }
14373                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14374                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14375                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14376                 }
14377                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14378                 ZERO_STRUCTP(r->out.dom_trust_list);
14379         }
14380         if (flags & NDR_OUT) {
14381                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14382                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14383                 }
14384                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14385                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14386                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14387                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14388                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14389         }
14390         return NDR_ERR_SUCCESS;
14391 }
14392 
14393 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14394 {
14395         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14396         ndr->depth++;
14397         if (flags & NDR_SET_VALUES) {
14398                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14399         }
14400         if (flags & NDR_IN) {
14401                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14402                 ndr->depth++;
14403                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14404                 ndr->depth++;
14405                 if (r->in.server_name) {
14406                         ndr_print_string(ndr, "server_name", r->in.server_name);
14407                 }
14408                 ndr->depth--;
14409                 ndr->depth--;
14410         }
14411         if (flags & NDR_OUT) {
14412                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14413                 ndr->depth++;
14414                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14415                 ndr->depth++;
14416                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14417                 ndr->depth--;
14418                 ndr_print_WERROR(ndr, "result", r->out.result);
14419                 ndr->depth--;
14420         }
14421         ndr->depth--;
14422 }
14423 
14424 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14425 {
14426         uint32_t cntr_addresses_1;
14427         if (flags & NDR_IN) {
14428                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14429                 if (r->in.server_name) {
14430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14431                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14432                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14433                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14434                 }
14435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14436                 if (r->in.addresses == NULL) {
14437                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14438                 }
14439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14440                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14441                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14442                 }
14443                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14444                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14445                 }
14446         }
14447         if (flags & NDR_OUT) {
14448                 if (r->out.ctr == NULL) {
14449                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14450                 }
14451                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14452                 if (*r->out.ctr) {
14453                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14454                 }
14455                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14456         }
14457         return NDR_ERR_SUCCESS;
14458 }
14459 
14460 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14461 {
14462         uint32_t _ptr_server_name;
14463         uint32_t cntr_addresses_1;
14464         uint32_t _ptr_ctr;
14465         TALLOC_CTX *_mem_save_server_name_0;
14466         TALLOC_CTX *_mem_save_addresses_1;
14467         TALLOC_CTX *_mem_save_ctr_0;
14468         TALLOC_CTX *_mem_save_ctr_1;
14469         if (flags & NDR_IN) {
14470                 ZERO_STRUCT(r->out);
14471 
14472                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14473                 if (_ptr_server_name) {
14474                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14475                 } else {
14476                         r->in.server_name = NULL;
14477                 }
14478                 if (r->in.server_name) {
14479                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14480                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14481                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14482                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14483                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14484                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14485                         }
14486                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14487                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14488                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14489                 }
14490                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14491                 if (r->in.count > 32000) {
14492                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14493                 }
14494                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14495                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14496                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14497                 }
14498                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14499                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14500                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14501                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14502                 }
14503                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14504                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14505                 }
14506                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14507                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14508                 ZERO_STRUCTP(r->out.ctr);
14509                 if (r->in.addresses) {
14510                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14511                 }
14512         }
14513         if (flags & NDR_OUT) {
14514                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14515                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14516                 }
14517                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14518                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14519                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14520                 if (_ptr_ctr) {
14521                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14522                 } else {
14523                         *r->out.ctr = NULL;
14524                 }
14525                 if (*r->out.ctr) {
14526                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14527                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14528                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14529                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14530                 }
14531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14532                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14533         }
14534         return NDR_ERR_SUCCESS;
14535 }
14536 
14537 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14538 {
14539         uint32_t cntr_addresses_1;
14540         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
14541         ndr->depth++;
14542         if (flags & NDR_SET_VALUES) {
14543                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14544         }
14545         if (flags & NDR_IN) {
14546                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
14547                 ndr->depth++;
14548                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14549                 ndr->depth++;
14550                 if (r->in.server_name) {
14551                         ndr_print_string(ndr, "server_name", r->in.server_name);
14552                 }
14553                 ndr->depth--;
14554                 ndr_print_uint32(ndr, "count", r->in.count);
14555                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14556                 ndr->depth++;
14557                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14558                 ndr->depth++;
14559                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14560                         char *idx_1=NULL;
14561                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14562                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14563                                 free(idx_1);
14564                         }
14565                 }
14566                 ndr->depth--;
14567                 ndr->depth--;
14568                 ndr->depth--;
14569         }
14570         if (flags & NDR_OUT) {
14571                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
14572                 ndr->depth++;
14573                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14574                 ndr->depth++;
14575                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14576                 ndr->depth++;
14577                 if (*r->out.ctr) {
14578                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
14579                 }
14580                 ndr->depth--;
14581                 ndr->depth--;
14582                 ndr_print_WERROR(ndr, "result", r->out.result);
14583                 ndr->depth--;
14584         }
14585         ndr->depth--;
14586 }
14587 
14588 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14589 {
14590         if (flags & NDR_IN) {
14591                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14592                 if (r->in.server_name) {
14593                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14594                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14595                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14596                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14597                 }
14598         }
14599         if (flags & NDR_OUT) {
14600                 if (r->out.ctr == NULL) {
14601                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14602                 }
14603                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14604                 if (*r->out.ctr) {
14605                         NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14606                 }
14607                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14608         }
14609         return NDR_ERR_SUCCESS;
14610 }
14611 
14612 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14613 {
14614         uint32_t _ptr_server_name;
14615         uint32_t _ptr_ctr;
14616         TALLOC_CTX *_mem_save_server_name_0;
14617         TALLOC_CTX *_mem_save_ctr_0;
14618         TALLOC_CTX *_mem_save_ctr_1;
14619         if (flags & NDR_IN) {
14620                 ZERO_STRUCT(r->out);
14621 
14622                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14623                 if (_ptr_server_name) {
14624                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14625                 } else {
14626                         r->in.server_name = NULL;
14627                 }
14628                 if (r->in.server_name) {
14629                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14630                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14631                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14632                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14633                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14634                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14635                         }
14636                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14637                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14638                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14639                 }
14640                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14641                 ZERO_STRUCTP(r->out.ctr);
14642         }
14643         if (flags & NDR_OUT) {
14644                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14645                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14646                 }
14647                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14648                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14649                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14650                 if (_ptr_ctr) {
14651                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14652                 } else {
14653                         *r->out.ctr = NULL;
14654                 }
14655                 if (*r->out.ctr) {
14656                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14657                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14658                         NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14659                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14660                 }
14661                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14662                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14663         }
14664         return NDR_ERR_SUCCESS;
14665 }
14666 
14667 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
     /* [<][>][^][v][top][bottom][index][help] */
14668 {
14669         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
14670         ndr->depth++;
14671         if (flags & NDR_SET_VALUES) {
14672                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14673         }
14674         if (flags & NDR_IN) {
14675                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
14676                 ndr->depth++;
14677                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14678                 ndr->depth++;
14679                 if (r->in.server_name) {
14680                         ndr_print_string(ndr, "server_name", r->in.server_name);
14681                 }
14682                 ndr->depth--;
14683                 ndr->depth--;
14684         }
14685         if (flags & NDR_OUT) {
14686                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
14687                 ndr->depth++;
14688                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14689                 ndr->depth++;
14690                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14691                 ndr->depth++;
14692                 if (*r->out.ctr) {
14693                         ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
14694                 }
14695                 ndr->depth--;
14696                 ndr->depth--;
14697                 ndr_print_WERROR(ndr, "result", r->out.result);
14698                 ndr->depth--;
14699         }
14700         ndr->depth--;
14701 }
14702 
14703 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14704 {
14705         if (flags & NDR_IN) {
14706                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14707                 if (r->in.server_name) {
14708                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14709                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14710                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14711                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14712                 }
14713                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14714                 if (r->in.computer_name) {
14715                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14716                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14717                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14718                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14719                 }
14720                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
14721                 if (r->in.logon == NULL) {
14722                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14723                 }
14724                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14725                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14726                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14727                 if (r->in.flags == NULL) {
14728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14729                 }
14730                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14731         }
14732         if (flags & NDR_OUT) {
14733                 if (r->out.validation == NULL) {
14734                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14735                 }
14736                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14737                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14738                 if (r->out.authoritative == NULL) {
14739                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14740                 }
14741                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14742                 if (r->out.flags == NULL) {
14743                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14744                 }
14745                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14746                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14747         }
14748         return NDR_ERR_SUCCESS;
14749 }
14750 
14751 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14752 {
14753         uint32_t _ptr_server_name;
14754         uint32_t _ptr_computer_name;
14755         TALLOC_CTX *_mem_save_server_name_0;
14756         TALLOC_CTX *_mem_save_computer_name_0;
14757         TALLOC_CTX *_mem_save_logon_0;
14758         TALLOC_CTX *_mem_save_validation_0;
14759         TALLOC_CTX *_mem_save_authoritative_0;
14760         TALLOC_CTX *_mem_save_flags_0;
14761         if (flags & NDR_IN) {
14762                 ZERO_STRUCT(r->out);
14763 
14764                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14765                 if (_ptr_server_name) {
14766                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14767                 } else {
14768                         r->in.server_name = NULL;
14769                 }
14770                 if (r->in.server_name) {
14771                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14772                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14773                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14774                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14775                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14776                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14777                         }
14778                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14779                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14781                 }
14782                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14783                 if (_ptr_computer_name) {
14784                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14785                 } else {
14786                         r->in.computer_name = NULL;
14787                 }
14788                 if (r->in.computer_name) {
14789                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14790                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14791                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14792                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14793                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14794                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
14795                         }
14796                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14797                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
14798                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14799                 }
14800                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
14801                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14802                         NDR_PULL_ALLOC(ndr, r->in.logon);
14803                 }
14804                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
14805                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
14806                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14807                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14808                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
14809                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14810                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14811                         NDR_PULL_ALLOC(ndr, r->in.flags);
14812                 }
14813                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14814                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14815                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14816                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14817                 NDR_PULL_ALLOC(ndr, r->out.validation);
14818                 ZERO_STRUCTP(r->out.validation);
14819                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14820                 ZERO_STRUCTP(r->out.authoritative);
14821                 NDR_PULL_ALLOC(ndr, r->out.flags);
14822                 *r->out.flags = *r->in.flags;
14823         }
14824         if (flags & NDR_OUT) {
14825                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14826                         NDR_PULL_ALLOC(ndr, r->out.validation);
14827                 }
14828                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14829                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14830                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14831                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14832                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14833                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14834                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14835                 }
14836                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14837                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14838                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14839                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14840                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14841                         NDR_PULL_ALLOC(ndr, r->out.flags);
14842                 }
14843                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14844                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14845                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14846                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14847                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14848         }
14849         return NDR_ERR_SUCCESS;
14850 }
14851 
14852 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
     /* [<][>][^][v][top][bottom][index][help] */
14853 {
14854         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
14855         ndr->depth++;
14856         if (flags & NDR_SET_VALUES) {
14857                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14858         }
14859         if (flags & NDR_IN) {
14860                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
14861                 ndr->depth++;
14862                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14863                 ndr->depth++;
14864                 if (r->in.server_name) {
14865                         ndr_print_string(ndr, "server_name", r->in.server_name);
14866                 }
14867                 ndr->depth--;
14868                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14869                 ndr->depth++;
14870                 if (r->in.computer_name) {
14871                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14872                 }
14873                 ndr->depth--;
14874                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
14875                 ndr_print_ptr(ndr, "logon", r->in.logon);
14876                 ndr->depth++;
14877                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
14878                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
14879                 ndr->depth--;
14880                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14881                 ndr_print_ptr(ndr, "flags", r->in.flags);
14882                 ndr->depth++;
14883                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14884                 ndr->depth--;
14885                 ndr->depth--;
14886         }
14887         if (flags & NDR_OUT) {
14888                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
14889                 ndr->depth++;
14890                 ndr_print_ptr(ndr, "validation", r->out.validation);
14891                 ndr->depth++;
14892                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14893                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14894                 ndr->depth--;
14895                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14896                 ndr->depth++;
14897                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14898                 ndr->depth--;
14899                 ndr_print_ptr(ndr, "flags", r->out.flags);
14900                 ndr->depth++;
14901                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14902                 ndr->depth--;
14903                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14904                 ndr->depth--;
14905         }
14906         ndr->depth--;
14907 }
14908 
14909 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
     /* [<][>][^][v][top][bottom][index][help] */
14910 {
14911         if (flags & NDR_IN) {
14912                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14913                 if (r->in.server_name) {
14914                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14915                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14916                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14917                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14918                 }
14919                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
14920         }
14921         if (flags & NDR_OUT) {
14922                 if (r->out.trusts == NULL) {
14923                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14924                 }
14925                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14926                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14927         }
14928         return NDR_ERR_SUCCESS;
14929 }
14930 
14931 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
     /* [<][>][^][v][top][bottom][index][help] */
14932 {
14933         uint32_t _ptr_server_name;
14934         TALLOC_CTX *_mem_save_server_name_0;
14935         TALLOC_CTX *_mem_save_trusts_0;
14936         if (flags & NDR_IN) {
14937                 ZERO_STRUCT(r->out);
14938 
14939                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14940                 if (_ptr_server_name) {
14941                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14942                 } else {
14943                         r->in.server_name = NULL;
14944                 }
14945                 if (r->in.server_name) {
14946                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14947                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14948                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14949                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14950                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14951                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14952                         }
14953                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14954                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14955                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14956                 }
14957                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
14958                 NDR_PULL_ALLOC(ndr, r->out.trusts);
14959                 ZERO_STRUCTP(r->out.trusts);
14960         }
14961         if (flags & NDR_OUT) {
14962                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14963                         NDR_PULL_ALLOC(ndr, r->out.trusts);
14964                 }
14965                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
14966                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
14967                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
14969                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14970         }
14971         return NDR_ERR_SUCCESS;
14972 }
14973 
14974 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
     /* [<][>][^][v][top][bottom][index][help] */
14975 {
14976         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
14977         ndr->depth++;
14978         if (flags & NDR_SET_VALUES) {
14979                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14980         }
14981         if (flags & NDR_IN) {
14982                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
14983                 ndr->depth++;
14984                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14985                 ndr->depth++;
14986                 if (r->in.server_name) {
14987                         ndr_print_string(ndr, "server_name", r->in.server_name);
14988                 }
14989                 ndr->depth--;
14990                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
14991                 ndr->depth--;
14992         }
14993         if (flags & NDR_OUT) {
14994                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
14995                 ndr->depth++;
14996                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
14997                 ndr->depth++;
14998                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
14999                 ndr->depth--;
15000                 ndr_print_WERROR(ndr, "result", r->out.result);
15001                 ndr->depth--;
15002         }
15003         ndr->depth--;
15004 }
15005 
15006 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
     /* [<][>][^][v][top][bottom][index][help] */
15007 {
15008         if (flags & NDR_IN) {
15009                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15010                 if (r->in.server_name) {
15011                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15012                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15013                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15014                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15015                 }
15016                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
15017                 if (r->in.domain) {
15018                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15020                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15021                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15022                 }
15023                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
15024                 if (r->in.domain_guid) {
15025                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15026                 }
15027                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
15028                 if (r->in.dsa_guid) {
15029                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15030                 }
15031                 if (r->in.dns_host == NULL) {
15032                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15033                 }
15034                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15035                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15036                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15037                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dns_host, ndr_charset_length(r->in.dns_host, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15038         }
15039         if (flags & NDR_OUT) {
15040                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15041         }
15042         return NDR_ERR_SUCCESS;
15043 }
15044 
15045 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
     /* [<][>][^][v][top][bottom][index][help] */
15046 {
15047         uint32_t _ptr_server_name;
15048         uint32_t _ptr_domain;
15049         uint32_t _ptr_domain_guid;
15050         uint32_t _ptr_dsa_guid;
15051         TALLOC_CTX *_mem_save_server_name_0;
15052         TALLOC_CTX *_mem_save_domain_0;
15053         TALLOC_CTX *_mem_save_domain_guid_0;
15054         TALLOC_CTX *_mem_save_dsa_guid_0;
15055         if (flags & NDR_IN) {
15056                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15057                 if (_ptr_server_name) {
15058                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15059                 } else {
15060                         r->in.server_name = NULL;
15061                 }
15062                 if (r->in.server_name) {
15063                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15064                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15065                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15066                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15067                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15068                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15069                         }
15070                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15071                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15072                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15073                 }
15074                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
15075                 if (_ptr_domain) {
15076                         NDR_PULL_ALLOC(ndr, r->in.domain);
15077                 } else {
15078                         r->in.domain = NULL;
15079                 }
15080                 if (r->in.domain) {
15081                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
15082                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
15083                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
15084                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
15085                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
15086                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
15087                         }
15088                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
15089                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
15090                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
15091                 }
15092                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
15093                 if (_ptr_domain_guid) {
15094                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
15095                 } else {
15096                         r->in.domain_guid = NULL;
15097                 }
15098                 if (r->in.domain_guid) {
15099                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15100                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
15101                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15102                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
15103                 }
15104                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
15105                 if (_ptr_dsa_guid) {
15106                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
15107                 } else {
15108                         r->in.dsa_guid = NULL;
15109                 }
15110                 if (r->in.dsa_guid) {
15111                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15112                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
15113                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15114                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
15115                 }
15116                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
15117                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
15118                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
15119                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dns_host), ndr_get_array_length(ndr, &r->in.dns_host));
15120                 }
15121                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
15122                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_host, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t), CH_UTF16));
15123         }
15124         if (flags & NDR_OUT) {
15125                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15126         }
15127         return NDR_ERR_SUCCESS;
15128 }
15129 
15130 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
     /* [<][>][^][v][top][bottom][index][help] */
15131 {
15132         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
15133         ndr->depth++;
15134         if (flags & NDR_SET_VALUES) {
15135                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15136         }
15137         if (flags & NDR_IN) {
15138                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
15139                 ndr->depth++;
15140                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15141                 ndr->depth++;
15142                 if (r->in.server_name) {
15143                         ndr_print_string(ndr, "server_name", r->in.server_name);
15144                 }
15145                 ndr->depth--;
15146                 ndr_print_ptr(ndr, "domain", r->in.domain);
15147                 ndr->depth++;
15148                 if (r->in.domain) {
15149                         ndr_print_string(ndr, "domain", r->in.domain);
15150                 }
15151                 ndr->depth--;
15152                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
15153                 ndr->depth++;
15154                 if (r->in.domain_guid) {
15155                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
15156                 }
15157                 ndr->depth--;
15158                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
15159                 ndr->depth++;
15160                 if (r->in.dsa_guid) {
15161                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
15162                 }
15163                 ndr->depth--;
15164                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
15165                 ndr->depth++;
15166                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
15167                 ndr->depth--;
15168                 ndr->depth--;
15169         }
15170         if (flags & NDR_OUT) {
15171                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
15172                 ndr->depth++;
15173                 ndr_print_WERROR(ndr, "result", r->out.result);
15174                 ndr->depth--;
15175         }
15176         ndr->depth--;
15177 }
15178 
15179 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
15180 {
15181         if (flags & NDR_IN) {
15182                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15183                 if (r->in.server_name) {
15184                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15185                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15186                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15187                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15188                 }
15189                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15190                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15191                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15192                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15193                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15195                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15196                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15197                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15198                 if (r->in.credential == NULL) {
15199                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15200                 }
15201                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15202         }
15203         if (flags & NDR_OUT) {
15204                 if (r->out.return_authenticator == NULL) {
15205                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15206                 }
15207                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15208                 if (r->out.password == NULL) {
15209                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15210                 }
15211                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
15212                 if (r->out.password2 == NULL) {
15213                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15214                 }
15215                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15216                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15217         }
15218         return NDR_ERR_SUCCESS;
15219 }
15220 
15221 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
15222 {
15223         uint32_t _ptr_server_name;
15224         TALLOC_CTX *_mem_save_server_name_0;
15225         TALLOC_CTX *_mem_save_credential_0;
15226         TALLOC_CTX *_mem_save_return_authenticator_0;
15227         TALLOC_CTX *_mem_save_password_0;
15228         TALLOC_CTX *_mem_save_password2_0;
15229         if (flags & NDR_IN) {
15230                 ZERO_STRUCT(r->out);
15231 
15232                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15233                 if (_ptr_server_name) {
15234                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15235                 } else {
15236                         r->in.server_name = NULL;
15237                 }
15238                 if (r->in.server_name) {
15239                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15240                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15241                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15242                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15243                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15244                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15245                         }
15246                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15247                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15248                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15249                 }
15250                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15251                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15252                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15253                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
15254                 }
15255                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15256                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
15257                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15258                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15259                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15260                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15261                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
15262                 }
15263                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15264                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
15265                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15266                         NDR_PULL_ALLOC(ndr, r->in.credential);
15267                 }
15268                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15269                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15270                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15271                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15272                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15273                 ZERO_STRUCTP(r->out.return_authenticator);
15274                 NDR_PULL_ALLOC(ndr, r->out.password);
15275                 ZERO_STRUCTP(r->out.password);
15276                 NDR_PULL_ALLOC(ndr, r->out.password2);
15277                 ZERO_STRUCTP(r->out.password2);
15278         }
15279         if (flags & NDR_OUT) {
15280                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15281                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15282                 }
15283                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15284                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15285                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15286                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15287                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15288                         NDR_PULL_ALLOC(ndr, r->out.password);
15289                 }
15290                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15291                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
15292                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
15293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
15294                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15295                         NDR_PULL_ALLOC(ndr, r->out.password2);
15296                 }
15297                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15298                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
15299                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15300                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
15301                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15302         }
15303         return NDR_ERR_SUCCESS;
15304 }
15305 
15306 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
     /* [<][>][^][v][top][bottom][index][help] */
15307 {
15308         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
15309         ndr->depth++;
15310         if (flags & NDR_SET_VALUES) {
15311                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15312         }
15313         if (flags & NDR_IN) {
15314                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
15315                 ndr->depth++;
15316                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15317                 ndr->depth++;
15318                 if (r->in.server_name) {
15319                         ndr_print_string(ndr, "server_name", r->in.server_name);
15320                 }
15321                 ndr->depth--;
15322                 ndr_print_string(ndr, "account_name", r->in.account_name);
15323                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15324                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15325                 ndr_print_ptr(ndr, "credential", r->in.credential);
15326                 ndr->depth++;
15327                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15328                 ndr->depth--;
15329                 ndr->depth--;
15330         }
15331         if (flags & NDR_OUT) {
15332                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
15333                 ndr->depth++;
15334                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15335                 ndr->depth++;
15336                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15337                 ndr->depth--;
15338                 ndr_print_ptr(ndr, "password", r->out.password);
15339                 ndr->depth++;
15340                 ndr_print_samr_Password(ndr, "password", r->out.password);
15341                 ndr->depth--;
15342                 ndr_print_ptr(ndr, "password2", r->out.password2);
15343                 ndr->depth++;
15344                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
15345                 ndr->depth--;
15346                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15347                 ndr->depth--;
15348         }
15349         ndr->depth--;
15350 }
15351 
15352 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15353 {
15354         if (flags & NDR_IN) {
15355                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15356                 if (r->in.server_name) {
15357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15358                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15359                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15360                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15361                 }
15362                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
15363                 if (r->in.trusted_domain_name) {
15364                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15367                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15368                 }
15369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15370         }
15371         if (flags & NDR_OUT) {
15372                 if (r->out.forest_trust_info == NULL) {
15373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15374                 }
15375                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15376                 if (*r->out.forest_trust_info) {
15377                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15378                 }
15379                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15380         }
15381         return NDR_ERR_SUCCESS;
15382 }
15383 
15384 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15385 {
15386         uint32_t _ptr_server_name;
15387         uint32_t _ptr_trusted_domain_name;
15388         uint32_t _ptr_forest_trust_info;
15389         TALLOC_CTX *_mem_save_server_name_0;
15390         TALLOC_CTX *_mem_save_trusted_domain_name_0;
15391         TALLOC_CTX *_mem_save_forest_trust_info_0;
15392         TALLOC_CTX *_mem_save_forest_trust_info_1;
15393         if (flags & NDR_IN) {
15394                 ZERO_STRUCT(r->out);
15395 
15396                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15397                 if (_ptr_server_name) {
15398                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15399                 } else {
15400                         r->in.server_name = NULL;
15401                 }
15402                 if (r->in.server_name) {
15403                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15404                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15405                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15406                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15407                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15408                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15409                         }
15410                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15411                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15412                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15413                 }
15414                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15415                 if (_ptr_trusted_domain_name) {
15416                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15417                 } else {
15418                         r->in.trusted_domain_name = NULL;
15419                 }
15420                 if (r->in.trusted_domain_name) {
15421                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15422                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15423                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15424                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15425                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15426                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
15427                         }
15428                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15429                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
15430                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15431                 }
15432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15433                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15434                 ZERO_STRUCTP(r->out.forest_trust_info);
15435         }
15436         if (flags & NDR_OUT) {
15437                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15438                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15439                 }
15440                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15441                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15442                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15443                 if (_ptr_forest_trust_info) {
15444                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15445                 } else {
15446                         *r->out.forest_trust_info = NULL;
15447                 }
15448                 if (*r->out.forest_trust_info) {
15449                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15450                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15451                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15452                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15453                 }
15454                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15455                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15456         }
15457         return NDR_ERR_SUCCESS;
15458 }
15459 
15460 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15461 {
15462         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15463         ndr->depth++;
15464         if (flags & NDR_SET_VALUES) {
15465                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15466         }
15467         if (flags & NDR_IN) {
15468                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15469                 ndr->depth++;
15470                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15471                 ndr->depth++;
15472                 if (r->in.server_name) {
15473                         ndr_print_string(ndr, "server_name", r->in.server_name);
15474                 }
15475                 ndr->depth--;
15476                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15477                 ndr->depth++;
15478                 if (r->in.trusted_domain_name) {
15479                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15480                 }
15481                 ndr->depth--;
15482                 ndr_print_uint32(ndr, "flags", r->in.flags);
15483                 ndr->depth--;
15484         }
15485         if (flags & NDR_OUT) {
15486                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15487                 ndr->depth++;
15488                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15489                 ndr->depth++;
15490                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15491                 ndr->depth++;
15492                 if (*r->out.forest_trust_info) {
15493                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15494                 }
15495                 ndr->depth--;
15496                 ndr->depth--;
15497                 ndr_print_WERROR(ndr, "result", r->out.result);
15498                 ndr->depth--;
15499         }
15500         ndr->depth--;
15501 }
15502 
15503 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15504 {
15505         if (flags & NDR_IN) {
15506                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15507                 if (r->in.server_name) {
15508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15509                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15510                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15511                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15512                 }
15513                 if (r->in.trusted_domain_name == NULL) {
15514                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15515                 }
15516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15518                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15519                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15520                 if (r->in.credential == NULL) {
15521                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15522                 }
15523                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15524                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15525         }
15526         if (flags & NDR_OUT) {
15527                 if (r->out.return_authenticator == NULL) {
15528                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15529                 }
15530                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15531                 if (r->out.forest_trust_info == NULL) {
15532                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15533                 }
15534                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15535                 if (*r->out.forest_trust_info) {
15536                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15537                 }
15538                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15539         }
15540         return NDR_ERR_SUCCESS;
15541 }
15542 
15543 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15544 {
15545         uint32_t _ptr_server_name;
15546         uint32_t _ptr_forest_trust_info;
15547         TALLOC_CTX *_mem_save_server_name_0;
15548         TALLOC_CTX *_mem_save_credential_0;
15549         TALLOC_CTX *_mem_save_return_authenticator_0;
15550         TALLOC_CTX *_mem_save_forest_trust_info_0;
15551         TALLOC_CTX *_mem_save_forest_trust_info_1;
15552         if (flags & NDR_IN) {
15553                 ZERO_STRUCT(r->out);
15554 
15555                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15556                 if (_ptr_server_name) {
15557                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15558                 } else {
15559                         r->in.server_name = NULL;
15560                 }
15561                 if (r->in.server_name) {
15562                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15563                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15564                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15565                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15566                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15567                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15568                         }
15569                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15570                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15571                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15572                 }
15573                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15574                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15575                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15576                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
15577                 }
15578                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15579                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
15580                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15581                         NDR_PULL_ALLOC(ndr, r->in.credential);
15582                 }
15583                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15584                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15585                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15586                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15587                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15588                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15589                 ZERO_STRUCTP(r->out.return_authenticator);
15590                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15591                 ZERO_STRUCTP(r->out.forest_trust_info);
15592         }
15593         if (flags & NDR_OUT) {
15594                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15595                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15596                 }
15597                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15598                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15599                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15600                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15601                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15602                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15603                 }
15604                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15605                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15606                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15607                 if (_ptr_forest_trust_info) {
15608                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15609                 } else {
15610                         *r->out.forest_trust_info = NULL;
15611                 }
15612                 if (*r->out.forest_trust_info) {
15613                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15614                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15615                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15616                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15617                 }
15618                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15619                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15620         }
15621         return NDR_ERR_SUCCESS;
15622 }
15623 
15624 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
     /* [<][>][^][v][top][bottom][index][help] */
15625 {
15626         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
15627         ndr->depth++;
15628         if (flags & NDR_SET_VALUES) {
15629                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15630         }
15631         if (flags & NDR_IN) {
15632                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
15633                 ndr->depth++;
15634                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15635                 ndr->depth++;
15636                 if (r->in.server_name) {
15637                         ndr_print_string(ndr, "server_name", r->in.server_name);
15638                 }
15639                 ndr->depth--;
15640                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15641                 ndr->depth++;
15642                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15643                 ndr->depth--;
15644                 ndr_print_ptr(ndr, "credential", r->in.credential);
15645                 ndr->depth++;
15646                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15647                 ndr->depth--;
15648                 ndr_print_uint32(ndr, "flags", r->in.flags);
15649                 ndr->depth--;
15650         }
15651         if (flags & NDR_OUT) {
15652                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
15653                 ndr->depth++;
15654                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15655                 ndr->depth++;
15656                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15657                 ndr->depth--;
15658                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15659                 ndr->depth++;
15660                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15661                 ndr->depth++;
15662                 if (*r->out.forest_trust_info) {
15663                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15664                 }
15665                 ndr->depth--;
15666                 ndr->depth--;
15667                 ndr_print_WERROR(ndr, "result", r->out.result);
15668                 ndr->depth--;
15669         }
15670         ndr->depth--;
15671 }
15672 
15673 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
     /* [<][>][^][v][top][bottom][index][help] */
15674 {
15675         if (flags & NDR_IN) {
15676                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15677                 if (r->in.server_name) {
15678                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15679                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15680                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15681                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15682                 }
15683                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15684                 if (r->in.computer_name) {
15685                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15686                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15687                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15688                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15689                 }
15690                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
15691                 if (r->in.credential) {
15692                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15693                 }
15694                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
15695                 if (r->in.return_authenticator) {
15696                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15697                 }
15698                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15699                 if (r->in.logon == NULL) {
15700                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15701                 }
15702                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15703                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15704                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15705                 if (r->in.flags == NULL) {
15706                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15707                 }
15708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15709         }
15710         if (flags & NDR_OUT) {
15711                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
15712                 if (r->out.return_authenticator) {
15713                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15714                 }
15715                 if (r->out.validation == NULL) {
15716                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15717                 }
15718                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15719                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15720                 if (r->out.authoritative == NULL) {
15721                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15722                 }
15723                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15724                 if (r->out.flags == NULL) {
15725                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15726                 }
15727                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15728                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15729         }
15730         return NDR_ERR_SUCCESS;
15731 }
15732 
15733 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
     /* [<][>][^][v][top][bottom][index][help] */
15734 {
15735         uint32_t _ptr_server_name;
15736         uint32_t _ptr_computer_name;
15737         uint32_t _ptr_credential;
15738         uint32_t _ptr_return_authenticator;
15739         TALLOC_CTX *_mem_save_server_name_0;
15740         TALLOC_CTX *_mem_save_computer_name_0;
15741         TALLOC_CTX *_mem_save_credential_0;
15742         TALLOC_CTX *_mem_save_return_authenticator_0;
15743         TALLOC_CTX *_mem_save_logon_0;
15744         TALLOC_CTX *_mem_save_validation_0;
15745         TALLOC_CTX *_mem_save_authoritative_0;
15746         TALLOC_CTX *_mem_save_flags_0;
15747         if (flags & NDR_IN) {
15748                 ZERO_STRUCT(r->out);
15749 
15750                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15751                 if (_ptr_server_name) {
15752                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15753                 } else {
15754                         r->in.server_name = NULL;
15755                 }
15756                 if (r->in.server_name) {
15757                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15758                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15759                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15760                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15761                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15762                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15763                         }
15764                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15765                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15766                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15767                 }
15768                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15769                 if (_ptr_computer_name) {
15770                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
15771                 } else {
15772                         r->in.computer_name = NULL;
15773                 }
15774                 if (r->in.computer_name) {
15775                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15776                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15777                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15778                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15779                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15780                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
15781                         }
15782                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15783                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
15784                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15785                 }
15786                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
15787                 if (_ptr_credential) {
15788                         NDR_PULL_ALLOC(ndr, r->in.credential);
15789                 } else {
15790                         r->in.credential = NULL;
15791                 }
15792                 if (r->in.credential) {
15793                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15794                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
15795                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
15797                 }
15798                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15799                 if (_ptr_return_authenticator) {
15800                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
15801                 } else {
15802                         r->in.return_authenticator = NULL;
15803                 }
15804                 if (r->in.return_authenticator) {
15805                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15806                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
15807                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15808                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15809                 }
15810                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15811                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15812                         NDR_PULL_ALLOC(ndr, r->in.logon);
15813                 }
15814                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15815                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15816                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15817                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15818                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15819                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15820                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15821                         NDR_PULL_ALLOC(ndr, r->in.flags);
15822                 }
15823                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15824                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15825                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15826                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15827                 NDR_PULL_ALLOC(ndr, r->out.validation);
15828                 ZERO_STRUCTP(r->out.validation);
15829                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15830                 ZERO_STRUCTP(r->out.authoritative);
15831                 NDR_PULL_ALLOC(ndr, r->out.flags);
15832                 *r->out.flags = *r->in.flags;
15833         }
15834         if (flags & NDR_OUT) {
15835                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15836                 if (_ptr_return_authenticator) {
15837                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15838                 } else {
15839                         r->out.return_authenticator = NULL;
15840                 }
15841                 if (r->out.return_authenticator) {
15842                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15843                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
15844                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15845                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15846                 }
15847                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15848                         NDR_PULL_ALLOC(ndr, r->out.validation);
15849                 }
15850                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15851                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15852                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15853                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15854                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15855                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15856                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
15857                 }
15858                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15859                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15860                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15861                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15862                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15863                         NDR_PULL_ALLOC(ndr, r->out.flags);
15864                 }
15865                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15866                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15867                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15868                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15869                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15870         }
15871         return NDR_ERR_SUCCESS;
15872 }
15873 
15874 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
     /* [<][>][^][v][top][bottom][index][help] */
15875 {
15876         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
15877         ndr->depth++;
15878         if (flags & NDR_SET_VALUES) {
15879                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15880         }
15881         if (flags & NDR_IN) {
15882                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
15883                 ndr->depth++;
15884                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15885                 ndr->depth++;
15886                 if (r->in.server_name) {
15887                         ndr_print_string(ndr, "server_name", r->in.server_name);
15888                 }
15889                 ndr->depth--;
15890                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15891                 ndr->depth++;
15892                 if (r->in.computer_name) {
15893                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
15894                 }
15895                 ndr->depth--;
15896                 ndr_print_ptr(ndr, "credential", r->in.credential);
15897                 ndr->depth++;
15898                 if (r->in.credential) {
15899                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15900                 }
15901                 ndr->depth--;
15902                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
15903                 ndr->depth++;
15904                 if (r->in.return_authenticator) {
15905                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
15906                 }
15907                 ndr->depth--;
15908                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15909                 ndr_print_ptr(ndr, "logon", r->in.logon);
15910                 ndr->depth++;
15911                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15912                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15913                 ndr->depth--;
15914                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15915                 ndr_print_ptr(ndr, "flags", r->in.flags);
15916                 ndr->depth++;
15917                 ndr_print_uint32(ndr, "flags", *r->in.flags);
15918                 ndr->depth--;
15919                 ndr->depth--;
15920         }
15921         if (flags & NDR_OUT) {
15922                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
15923                 ndr->depth++;
15924                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15925                 ndr->depth++;
15926                 if (r->out.return_authenticator) {
15927                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15928                 }
15929                 ndr->depth--;
15930                 ndr_print_ptr(ndr, "validation", r->out.validation);
15931                 ndr->depth++;
15932                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15933                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15934                 ndr->depth--;
15935                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15936                 ndr->depth++;
15937                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15938                 ndr->depth--;
15939                 ndr_print_ptr(ndr, "flags", r->out.flags);
15940                 ndr->depth++;
15941                 ndr_print_uint32(ndr, "flags", *r->out.flags);
15942                 ndr->depth--;
15943                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15944                 ndr->depth--;
15945         }
15946         ndr->depth--;
15947 }
15948 
15949 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
15950 {
15951         if (flags & NDR_IN) {
15952                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15953                 if (r->in.server_name) {
15954                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15955                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15956                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15957                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15958                 }
15959                 if (r->in.account_name == NULL) {
15960                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15961                 }
15962                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15965                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15966                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15967                 if (r->in.computer_name == NULL) {
15968                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15969                 }
15970                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15973                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15974                 if (r->in.credential == NULL) {
15975                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15976                 }
15977                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15978         }
15979         if (flags & NDR_OUT) {
15980                 if (r->out.return_authenticator == NULL) {
15981                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15982                 }
15983                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15984                 if (r->out.new_owf_password == NULL) {
15985                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15986                 }
15987                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15988                 if (r->out.old_owf_password == NULL) {
15989                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15990                 }
15991                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15992                 if (r->out.trust_info == NULL) {
15993                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15994                 }
15995                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
15996                 if (*r->out.trust_info) {
15997                         NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15998                 }
15999                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
16000         }
16001         return NDR_ERR_SUCCESS;
16002 }
16003 
16004 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
16005 {
16006         uint32_t _ptr_server_name;
16007         uint32_t _ptr_trust_info;
16008         TALLOC_CTX *_mem_save_server_name_0;
16009         TALLOC_CTX *_mem_save_credential_0;
16010         TALLOC_CTX *_mem_save_return_authenticator_0;
16011         TALLOC_CTX *_mem_save_new_owf_password_0;
16012         TALLOC_CTX *_mem_save_old_owf_password_0;
16013         TALLOC_CTX *_mem_save_trust_info_0;
16014         TALLOC_CTX *_mem_save_trust_info_1;
16015         if (flags & NDR_IN) {
16016                 ZERO_STRUCT(r->out);
16017 
16018                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16019                 if (_ptr_server_name) {
16020                         NDR_PULL_ALLOC(ndr, r->in.server_name);
16021                 } else {
16022                         r->in.server_name = NULL;
16023                 }
16024                 if (r->in.server_name) {
16025                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16026                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16027                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16028                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16029                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16030                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
16031                         }
16032                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16033                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
16034                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16035                 }
16036                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
16037                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
16038                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
16039                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
16040                 }
16041                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
16042                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
16043                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
16044                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
16045                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
16046                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
16047                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
16048                 }
16049                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
16050                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
16051                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16052                         NDR_PULL_ALLOC(ndr, r->in.credential);
16053                 }
16054                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16055                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
16056                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16057                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
16058                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16059                 ZERO_STRUCTP(r->out.return_authenticator);
16060                 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16061                 ZERO_STRUCTP(r->out.new_owf_password);
16062                 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16063                 ZERO_STRUCTP(r->out.old_owf_password);
16064                 NDR_PULL_ALLOC(ndr, r->out.trust_info);
16065                 ZERO_STRUCTP(r->out.trust_info);
16066         }
16067         if (flags & NDR_OUT) {
16068                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16069                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16070                 }
16071                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16072                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
16073                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16074                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
16075                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16076                         NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16077                 }
16078                 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16079                 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
16080                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
16081                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16082                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16083                         NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16084                 }
16085                 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16086                 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
16087                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
16088                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16089                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16090                         NDR_PULL_ALLOC(ndr, r->out.trust_info);
16091                 }
16092                 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16093                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
16094                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
16095                 if (_ptr_trust_info) {
16096                         NDR_PULL_ALLOC(ndr, *r->out.trust_info);
16097                 } else {
16098                         *r->out.trust_info = NULL;
16099                 }
16100                 if (*r->out.trust_info) {
16101                         _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
16102                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
16103                         NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
16104                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
16105                 }
16106                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
16107                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
16108         }
16109         return NDR_ERR_SUCCESS;
16110 }
16111 
16112 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
     /* [<][>][^][v][top][bottom][index][help] */
16113 {
16114         ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
16115         ndr->depth++;
16116         if (flags & NDR_SET_VALUES) {
16117                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16118         }
16119         if (flags & NDR_IN) {
16120                 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
16121                 ndr->depth++;
16122                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16123                 ndr->depth++;
16124                 if (r->in.server_name) {
16125                         ndr_print_string(ndr, "server_name", r->in.server_name);
16126                 }
16127                 ndr->depth--;
16128                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
16129                 ndr->depth++;
16130                 ndr_print_string(ndr, "account_name", r->in.account_name);
16131                 ndr->depth--;
16132                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
16133                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
16134                 ndr->depth++;
16135                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
16136                 ndr->depth--;
16137                 ndr_print_ptr(ndr, "credential", r->in.credential);
16138                 ndr->depth++;
16139                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16140                 ndr->depth--;
16141                 ndr->depth--;
16142         }
16143         if (flags & NDR_OUT) {
16144                 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
16145                 ndr->depth++;
16146                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16147                 ndr->depth++;
16148                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16149                 ndr->depth--;
16150                 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
16151                 ndr->depth++;
16152                 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
16153                 ndr->depth--;
16154                 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
16155                 ndr->depth++;
16156                 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
16157                 ndr->depth--;
16158                 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
16159                 ndr->depth++;
16160                 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
16161                 ndr->depth++;
16162                 if (*r->out.trust_info) {
16163                         ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
16164                 }
16165                 ndr->depth--;
16166                 ndr->depth--;
16167                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
16168                 ndr->depth--;
16169         }
16170         ndr->depth--;
16171 }
16172 
16173 static const struct ndr_interface_call netlogon_calls[] = {
16174         {
16175                 "netr_LogonUasLogon",
16176                 sizeof(struct netr_LogonUasLogon),
16177                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
16178                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
16179                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
16180                 false,
16181         },
16182         {
16183                 "netr_LogonUasLogoff",
16184                 sizeof(struct netr_LogonUasLogoff),
16185                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
16186                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
16187                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
16188                 false,
16189         },
16190         {
16191                 "netr_LogonSamLogon",
16192                 sizeof(struct netr_LogonSamLogon),
16193                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
16194                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
16195                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
16196                 false,
16197         },
16198         {
16199                 "netr_LogonSamLogoff",
16200                 sizeof(struct netr_LogonSamLogoff),
16201                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
16202                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
16203                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
16204                 false,
16205         },
16206         {
16207                 "netr_ServerReqChallenge",
16208                 sizeof(struct netr_ServerReqChallenge),
16209                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
16210                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
16211                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
16212                 false,
16213         },
16214         {
16215                 "netr_ServerAuthenticate",
16216                 sizeof(struct netr_ServerAuthenticate),
16217                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
16218                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
16219                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
16220                 false,
16221         },
16222         {
16223                 "netr_ServerPasswordSet",
16224                 sizeof(struct netr_ServerPasswordSet),
16225                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
16226                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
16227                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
16228                 false,
16229         },
16230         {
16231                 "netr_DatabaseDeltas",
16232                 sizeof(struct netr_DatabaseDeltas),
16233                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
16234                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
16235                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
16236                 false,
16237         },
16238         {
16239                 "netr_DatabaseSync",
16240                 sizeof(struct netr_DatabaseSync),
16241                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
16242                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
16243                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
16244                 false,
16245         },
16246         {
16247                 "netr_AccountDeltas",
16248                 sizeof(struct netr_AccountDeltas),
16249                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
16250                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
16251                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
16252                 false,
16253         },
16254         {
16255                 "netr_AccountSync",
16256                 sizeof(struct netr_AccountSync),
16257                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
16258                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
16259                 (ndr_print_function_t) ndr_print_netr_AccountSync,
16260                 false,
16261         },
16262         {
16263                 "netr_GetDcName",
16264                 sizeof(struct netr_GetDcName),
16265                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
16266                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
16267                 (ndr_print_function_t) ndr_print_netr_GetDcName,
16268                 false,
16269         },
16270         {
16271                 "netr_LogonControl",
16272                 sizeof(struct netr_LogonControl),
16273                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
16274                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
16275                 (ndr_print_function_t) ndr_print_netr_LogonControl,
16276                 false,
16277         },
16278         {
16279                 "netr_GetAnyDCName",
16280                 sizeof(struct netr_GetAnyDCName),
16281                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
16282                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
16283                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
16284                 false,
16285         },
16286         {
16287                 "netr_LogonControl2",
16288                 sizeof(struct netr_LogonControl2),
16289                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
16290                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
16291                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
16292                 false,
16293         },
16294         {
16295                 "netr_ServerAuthenticate2",
16296                 sizeof(struct netr_ServerAuthenticate2),
16297                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
16298                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
16299                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
16300                 false,
16301         },
16302         {
16303                 "netr_DatabaseSync2",
16304                 sizeof(struct netr_DatabaseSync2),
16305                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
16306                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
16307                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
16308                 false,
16309         },
16310         {
16311                 "netr_DatabaseRedo",
16312                 sizeof(struct netr_DatabaseRedo),
16313                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
16314                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
16315                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
16316                 false,
16317         },
16318         {
16319                 "netr_LogonControl2Ex",
16320                 sizeof(struct netr_LogonControl2Ex),
16321                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
16322                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
16323                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
16324                 false,
16325         },
16326         {
16327                 "netr_NetrEnumerateTrustedDomains",
16328                 sizeof(struct netr_NetrEnumerateTrustedDomains),
16329                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
16330                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
16331                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
16332                 false,
16333         },
16334         {
16335                 "netr_DsRGetDCName",
16336                 sizeof(struct netr_DsRGetDCName),
16337                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
16338                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
16339                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
16340                 false,
16341         },
16342         {
16343                 "netr_LogonGetCapabilities",
16344                 sizeof(struct netr_LogonGetCapabilities),
16345                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetCapabilities,
16346                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetCapabilities,
16347                 (ndr_print_function_t) ndr_print_netr_LogonGetCapabilities,
16348                 false,
16349         },
16350         {
16351                 "netr_NETRLOGONSETSERVICEBITS",
16352                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
16353                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
16354                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
16355                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
16356                 false,
16357         },
16358         {
16359                 "netr_LogonGetTrustRid",
16360                 sizeof(struct netr_LogonGetTrustRid),
16361                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
16362                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
16363                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
16364                 false,
16365         },
16366         {
16367                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16368                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
16369                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
16370                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
16371                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
16372                 false,
16373         },
16374         {
16375                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16376                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
16377                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16378                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16379                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16380                 false,
16381         },
16382         {
16383                 "netr_ServerAuthenticate3",
16384                 sizeof(struct netr_ServerAuthenticate3),
16385                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16386                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16387                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16388                 false,
16389         },
16390         {
16391                 "netr_DsRGetDCNameEx",
16392                 sizeof(struct netr_DsRGetDCNameEx),
16393                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16394                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16395                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16396                 false,
16397         },
16398         {
16399                 "netr_DsRGetSiteName",
16400                 sizeof(struct netr_DsRGetSiteName),
16401                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16402                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16403                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16404                 false,
16405         },
16406         {
16407                 "netr_LogonGetDomainInfo",
16408                 sizeof(struct netr_LogonGetDomainInfo),
16409                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16410                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16411                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16412                 false,
16413         },
16414         {
16415                 "netr_ServerPasswordSet2",
16416                 sizeof(struct netr_ServerPasswordSet2),
16417                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16418                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16419                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16420                 false,
16421         },
16422         {
16423                 "netr_ServerPasswordGet",
16424                 sizeof(struct netr_ServerPasswordGet),
16425                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16426                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16427                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16428                 false,
16429         },
16430         {
16431                 "netr_NETRLOGONSENDTOSAM",
16432                 sizeof(struct netr_NETRLOGONSENDTOSAM),
16433                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16434                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16435                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16436                 false,
16437         },
16438         {
16439                 "netr_DsRAddressToSitenamesW",
16440                 sizeof(struct netr_DsRAddressToSitenamesW),
16441                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16442                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16443                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16444                 false,
16445         },
16446         {
16447                 "netr_DsRGetDCNameEx2",
16448                 sizeof(struct netr_DsRGetDCNameEx2),
16449                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16450                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16451                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16452                 false,
16453         },
16454         {
16455                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16456                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16457                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16458                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16459                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16460                 false,
16461         },
16462         {
16463                 "netr_NetrEnumerateTrustedDomainsEx",
16464                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16465                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16466                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16467                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16468                 false,
16469         },
16470         {
16471                 "netr_DsRAddressToSitenamesExW",
16472                 sizeof(struct netr_DsRAddressToSitenamesExW),
16473                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16474                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16475                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16476                 false,
16477         },
16478         {
16479                 "netr_DsrGetDcSiteCoverageW",
16480                 sizeof(struct netr_DsrGetDcSiteCoverageW),
16481                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16482                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16483                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16484                 false,
16485         },
16486         {
16487                 "netr_LogonSamLogonEx",
16488                 sizeof(struct netr_LogonSamLogonEx),
16489                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16490                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16491                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16492                 false,
16493         },
16494         {
16495                 "netr_DsrEnumerateDomainTrusts",
16496                 sizeof(struct netr_DsrEnumerateDomainTrusts),
16497                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16498                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16499                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16500                 false,
16501         },
16502         {
16503                 "netr_DsrDeregisterDNSHostRecords",
16504                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16505                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16506                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16507                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16508                 false,
16509         },
16510         {
16511                 "netr_ServerTrustPasswordsGet",
16512                 sizeof(struct netr_ServerTrustPasswordsGet),
16513                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16514                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16515                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16516                 false,
16517         },
16518         {
16519                 "netr_DsRGetForestTrustInformation",
16520                 sizeof(struct netr_DsRGetForestTrustInformation),
16521                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
16522                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
16523                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
16524                 false,
16525         },
16526         {
16527                 "netr_GetForestTrustInformation",
16528                 sizeof(struct netr_GetForestTrustInformation),
16529                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
16530                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
16531                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
16532                 false,
16533         },
16534         {
16535                 "netr_LogonSamLogonWithFlags",
16536                 sizeof(struct netr_LogonSamLogonWithFlags),
16537                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
16538                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
16539                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
16540                 false,
16541         },
16542         {
16543                 "netr_ServerGetTrustInfo",
16544                 sizeof(struct netr_ServerGetTrustInfo),
16545                 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
16546                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
16547                 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
16548                 false,
16549         },
16550         { NULL, 0, NULL, NULL, NULL, false }
16551 };
16552 
16553 static const char * const netlogon_endpoint_strings[] = {
16554         "ncacn_np:[\\pipe\\netlogon]", 
16555         "ncacn_ip_tcp:", 
16556         "ncalrpc:", 
16557 };
16558 
16559 static const struct ndr_interface_string_array netlogon_endpoints = {
16560         .count  = 3,
16561         .names  = netlogon_endpoint_strings
16562 };
16563 
16564 static const char * const netlogon_authservice_strings[] = {
16565         "host", 
16566 };
16567 
16568 static const struct ndr_interface_string_array netlogon_authservices = {
16569         .count  = 1,
16570         .names  = netlogon_authservice_strings
16571 };
16572 
16573 
16574 const struct ndr_interface_table ndr_table_netlogon = {
16575         .name           = "netlogon",
16576         .syntax_id      = {
16577                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16578                 NDR_NETLOGON_VERSION
16579         },
16580         .helpstring     = NDR_NETLOGON_HELPSTRING,
16581         .num_calls      = 47,
16582         .calls          = netlogon_calls,
16583         .endpoints      = &netlogon_endpoints,
16584         .authservices   = &netlogon_authservices
16585 };
16586 

/* [<][>][^][v][top][bottom][index][help] */