64a9b1cd4b9c3e0607c39d8f5f2fc04fbae94354
[ira/wip.git] / librpc / gen_ndr / netlogon.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "libcli/util/ntstatus.h"
6
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/lsa.h"
9 #include "librpc/gen_ndr/samr.h"
10 #include "librpc/gen_ndr/security.h"
11 #include "librpc/gen_ndr/nbt.h"
12 #define netr_DeltaEnum8Bit netr_DeltaEnum
13 #define netr_SamDatabaseID8Bit netr_SamDatabaseID
14 #ifndef _HEADER_netlogon
15 #define _HEADER_netlogon
16
17 #define NETLOGON_NEG_128BIT     ( NETLOGON_NEG_STRONG_KEYS )
18 #define NETLOGON_NEG_SCHANNEL   ( NETLOGON_NEG_AUTHENTICATED_RPC )
19 #define DSGETDC_VALID_FLAGS     ( (DS_FORCE_REDISCOVERY|DS_DIRECTORY_SERVICE_REQUIRED|DS_DIRECTORY_SERVICE_PREFERRED|DS_GC_SERVER_REQUIRED|DS_PDC_REQUIRED|DS_BACKGROUND_ONLY|DS_IP_REQUIRED|DS_KDC_REQUIRED|DS_TIMESERV_REQUIRED|DS_WRITABLE_REQUIRED|DS_GOOD_TIMESERV_PREFERRED|DS_AVOID_SELF|DS_ONLY_LDAP_NEEDED|DS_IS_FLAT_NAME|DS_IS_DNS_NAME|DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME) )
20 #define DS_GFTI_UPDATE_TDO      ( 0x1 )
21 struct netr_UasInfo {
22         const char *account_name;/* [unique,charset(UTF16)] */
23         uint32_t priv;
24         uint32_t auth_flags;
25         uint32_t logon_count;
26         uint32_t bad_pw_count;
27         time_t last_logon;
28         time_t last_logoff;
29         time_t logoff_time;
30         time_t kickoff_time;
31         uint32_t password_age;
32         time_t pw_can_change;
33         time_t pw_must_change;
34         const char *computer;/* [unique,charset(UTF16)] */
35         const char *domain;/* [unique,charset(UTF16)] */
36         const char *script_path;/* [unique,charset(UTF16)] */
37         uint32_t unknown;
38 };
39
40 struct netr_UasLogoffInfo {
41         uint32_t duration;
42         uint16_t logon_count;
43 };
44
45 struct netr_AcctLockStr {
46         int64_t lockout_duration;
47         uint64_t reset_count;
48         uint32_t bad_attempt_lockout;
49         uint32_t dummy;
50 }/* [public] */;
51
52 /* bitmap netr_LogonParameterControl */
53 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED ( 0x00000002 )
54 #define MSV1_0_UPDATE_LOGON_STATISTICS ( 0x00000004 )
55 #define MSV1_0_RETURN_USER_PARAMETERS ( 0x00000008 )
56 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT ( 0x00000010 )
57 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT ( 0x00000020 )
58 #define MSV1_0_RETURN_PASSWORD_EXPIRY ( 0x00000040 )
59 #define MSV1_0_USE_CLIENT_CHALLENGE ( 0x00000080 )
60 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY ( 0x00000100 )
61 #define MSV1_0_RETURN_PROFILE_PATH ( 0x00000200 )
62 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY ( 0x00000400 )
63 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT ( 0x00000800 )
64 #define MSV1_0_DISABLE_PERSONAL_FALLBACK ( 0x00001000 )
65 #define MSV1_0_ALLOW_FORCE_GUEST ( 0x00002000 )
66 #define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED ( 0x00004000 )
67 #define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY ( 0x00008000 )
68 #define MSV1_0_ALLOW_MSVCHAPV2 ( 0x00010000 )
69 #define MSV1_0_S4U2SELF ( 0x00020000 )
70 #define MSV1_0_CHECK_LOGONHOURS_FOR_S4U ( 0x00040000 )
71 #define MSV1_0_SUBAUTHENTICATION_DLL_EX ( 0x00100000 )
72
73 struct netr_IdentityInfo {
74         struct lsa_String domain_name;
75         uint32_t parameter_control;
76         uint32_t logon_id_low;
77         uint32_t logon_id_high;
78         struct lsa_String account_name;
79         struct lsa_String workstation;
80 };
81
82 struct netr_PasswordInfo {
83         struct netr_IdentityInfo identity_info;
84         struct samr_Password lmpassword;
85         struct samr_Password ntpassword;
86 };
87
88 struct netr_ChallengeResponse {
89         uint16_t length;
90         uint16_t size;/* [value(length)] */
91         uint8_t *data;/* [unique,length_is(length),size_is(length)] */
92 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
93
94 struct netr_NetworkInfo {
95         struct netr_IdentityInfo identity_info;
96         uint8_t challenge[8];
97         struct netr_ChallengeResponse nt;
98         struct netr_ChallengeResponse lm;
99 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
100
101 struct netr_GenericInfo {
102         struct netr_IdentityInfo identity_info;
103         struct lsa_String package_name;
104         uint32_t length;
105         uint8_t *data;/* [unique,size_is(length)] */
106 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
107
108 enum netr_LogonInfoClass
109 #ifndef USE_UINT_ENUMS
110  {
111         NetlogonInteractiveInformation=1,
112         NetlogonNetworkInformation=2,
113         NetlogonServiceInformation=3,
114         NetlogonGenericInformation=4,
115         NetlogonInteractiveTransitiveInformation=5,
116         NetlogonNetworkTransitiveInformation=6,
117         NetlogonServiceTransitiveInformation=7
118 }
119 #else
120  { __donnot_use_enum_netr_LogonInfoClass=0x7FFFFFFF}
121 #define NetlogonInteractiveInformation ( 1 )
122 #define NetlogonNetworkInformation ( 2 )
123 #define NetlogonServiceInformation ( 3 )
124 #define NetlogonGenericInformation ( 4 )
125 #define NetlogonInteractiveTransitiveInformation ( 5 )
126 #define NetlogonNetworkTransitiveInformation ( 6 )
127 #define NetlogonServiceTransitiveInformation ( 7 )
128 #endif
129 ;
130
131 union netr_LogonLevel {
132         struct netr_PasswordInfo *password;/* [unique,case(NetlogonInteractiveInformation)] */
133         struct netr_NetworkInfo *network;/* [unique,case(NetlogonNetworkInformation)] */
134         struct netr_GenericInfo *generic;/* [unique,case(NetlogonGenericInformation)] */
135 }/* [public,switch_type(netr_LogonInfoClass)] */;
136
137 struct netr_UserSessionKey {
138         uint8_t key[16];
139 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
140
141 struct netr_LMSessionKey {
142         uint8_t key[8];
143 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
144
145 /* bitmap netr_UserFlags */
146 #define NETLOGON_GUEST ( 0x00000001 )
147 #define NETLOGON_NOENCRYPTION ( 0x00000002 )
148 #define NETLOGON_CACHED_ACCOUNT ( 0x00000004 )
149 #define NETLOGON_USED_LM_PASSWORD ( 0x00000008 )
150 #define NETLOGON_EXTRA_SIDS ( 0x00000020 )
151 #define NETLOGON_SUBAUTH_SESSION_KEY ( 0x00000040 )
152 #define NETLOGON_SERVER_TRUST_ACCOUNT ( 0x00000080 )
153 #define NETLOGON_NTLMV2_ENABLED ( 0x00000100 )
154 #define NETLOGON_RESOURCE_GROUPS ( 0x00000200 )
155 #define NETLOGON_PROFILE_PATH_RETURNED ( 0x00000400 )
156 #define NETLOGON_GRACE_LOGON ( 0x01000000 )
157
158 struct netr_SamBaseInfo {
159         NTTIME last_logon;
160         NTTIME last_logoff;
161         NTTIME acct_expiry;
162         NTTIME last_password_change;
163         NTTIME allow_password_change;
164         NTTIME force_password_change;
165         struct lsa_String account_name;
166         struct lsa_String full_name;
167         struct lsa_String logon_script;
168         struct lsa_String profile_path;
169         struct lsa_String home_directory;
170         struct lsa_String home_drive;
171         uint16_t logon_count;
172         uint16_t bad_password_count;
173         uint32_t rid;
174         uint32_t primary_gid;
175         struct samr_RidWithAttributeArray groups;
176         uint32_t user_flags;
177         struct netr_UserSessionKey key;
178         struct lsa_StringLarge logon_server;
179         struct lsa_StringLarge domain;
180         struct dom_sid2 *domain_sid;/* [unique] */
181         struct netr_LMSessionKey LMSessKey;
182         uint32_t acct_flags;
183         uint32_t unknown[7];
184 };
185
186 struct netr_SamInfo2 {
187         struct netr_SamBaseInfo base;
188 };
189
190 struct netr_SidAttr {
191         struct dom_sid2 *sid;/* [unique] */
192         uint32_t attributes;
193 };
194
195 struct netr_SamInfo3 {
196         struct netr_SamBaseInfo base;
197         uint32_t sidcount;
198         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
199 }/* [public] */;
200
201 struct netr_SamInfo6 {
202         struct netr_SamBaseInfo base;
203         uint32_t sidcount;
204         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
205         struct lsa_String forest;
206         struct lsa_String principle;
207         uint32_t unknown4[20];
208 };
209
210 struct netr_PacInfo {
211         uint32_t pac_size;
212         uint8_t *pac;/* [unique,size_is(pac_size)] */
213         struct lsa_String logon_domain;
214         struct lsa_String logon_server;
215         struct lsa_String principal_name;
216         uint32_t auth_size;
217         uint8_t *auth;/* [unique,size_is(auth_size)] */
218         struct netr_UserSessionKey user_session_key;
219         uint32_t expansionroom[10];
220         struct lsa_String unknown1;
221         struct lsa_String unknown2;
222         struct lsa_String unknown3;
223         struct lsa_String unknown4;
224 };
225
226 struct netr_GenericInfo2 {
227         uint32_t length;
228         uint8_t *data;/* [unique,size_is(length)] */
229 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
230
231 enum netr_ValidationInfoClass
232 #ifndef USE_UINT_ENUMS
233  {
234         NetlogonValidationUasInfo=1,
235         NetlogonValidationSamInfo=2,
236         NetlogonValidationSamInfo2=3,
237         NetlogonValidationGenericInfo2=5,
238         NetlogonValidationSamInfo4=6
239 }
240 #else
241  { __donnot_use_enum_netr_ValidationInfoClass=0x7FFFFFFF}
242 #define NetlogonValidationUasInfo ( 1 )
243 #define NetlogonValidationSamInfo ( 2 )
244 #define NetlogonValidationSamInfo2 ( 3 )
245 #define NetlogonValidationGenericInfo2 ( 5 )
246 #define NetlogonValidationSamInfo4 ( 6 )
247 #endif
248 ;
249
250 union netr_Validation {
251         struct netr_SamInfo2 *sam2;/* [unique,case(NetlogonValidationSamInfo)] */
252         struct netr_SamInfo3 *sam3;/* [unique,case(NetlogonValidationSamInfo2)] */
253         struct netr_PacInfo *pac;/* [unique,case(4)] */
254         struct netr_GenericInfo2 *generic;/* [unique,case(NetlogonValidationGenericInfo2)] */
255         struct netr_SamInfo6 *sam6;/* [unique,case(NetlogonValidationSamInfo4)] */
256 }/* [public,switch_type(uint16)] */;
257
258 struct netr_Credential {
259         uint8_t data[8];
260 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
261
262 struct netr_Authenticator {
263         struct netr_Credential cred;
264         time_t timestamp;
265 }/* [public] */;
266
267 struct netr_DELTA_DELETE_USER {
268         const char *account_name;/* [unique,charset(UTF16)] */
269         struct lsa_String unknown1;
270         struct lsa_String unknown2;
271         struct lsa_String unknown3;
272         struct lsa_String unknown4;
273         uint32_t unknown5;
274         uint32_t unknown6;
275         uint32_t unknown7;
276         uint32_t unknown8;
277 };
278
279 struct netr_USER_KEY16 {
280         uint16_t length;
281         uint16_t size;/* [value(length)] */
282         uint32_t flags;
283         struct samr_Password pwd;
284 };
285
286 struct netr_PasswordHistory {
287         uint16_t nt_length;
288         uint16_t nt_size;/* [value(nt_length)] */
289         uint32_t nt_flags;
290         uint16_t lm_length;
291         uint16_t lm_size;/* [value(lm_length)] */
292         uint32_t lm_flags;
293         uint8_t *nt_history;
294         uint8_t *lm_history;
295 };
296
297 struct netr_USER_KEYS2 {
298         struct netr_USER_KEY16 lmpassword;
299         struct netr_USER_KEY16 ntpassword;
300         struct netr_PasswordHistory history;
301 };
302
303 struct netr_USER_KEY_UNION {
304         struct netr_USER_KEYS2 keys2;
305 };
306
307 struct netr_USER_KEYS {
308         uint32_t version;
309         struct netr_USER_KEY_UNION keys;
310 }/* [public] */;
311
312 struct netr_USER_PRIVATE_INFO {
313         uint8_t SensitiveDataFlag;
314         uint32_t DataLength;
315         uint8_t *SensitiveData;/* [unique,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(DataLength)] */
316 };
317
318 struct netr_DELTA_USER {
319         struct lsa_String account_name;
320         struct lsa_String full_name;
321         uint32_t rid;
322         uint32_t primary_gid;
323         struct lsa_String home_directory;
324         struct lsa_String home_drive;
325         struct lsa_String logon_script;
326         struct lsa_String description;
327         struct lsa_String workstations;
328         NTTIME last_logon;
329         NTTIME last_logoff;
330         struct samr_LogonHours logon_hours;
331         uint16_t bad_password_count;
332         uint16_t logon_count;
333         NTTIME last_password_change;
334         NTTIME acct_expiry;
335         uint32_t acct_flags;
336         struct samr_Password lmpassword;
337         struct samr_Password ntpassword;
338         uint8_t nt_password_present;
339         uint8_t lm_password_present;
340         uint8_t password_expired;
341         struct lsa_String comment;
342         struct lsa_BinaryString parameters;
343         uint16_t country_code;
344         uint16_t code_page;
345         struct netr_USER_PRIVATE_INFO user_private_info;
346         uint32_t SecurityInformation;
347         struct sec_desc_buf sdbuf;
348         struct lsa_String profile_path;
349         struct lsa_String unknown2;
350         struct lsa_String unknown3;
351         struct lsa_String unknown4;
352         uint32_t unknown5;
353         uint32_t unknown6;
354         uint32_t unknown7;
355         uint32_t unknown8;
356 };
357
358 struct netr_DELTA_DOMAIN {
359         struct lsa_String domain_name;
360         struct lsa_String oem_information;
361         int64_t force_logoff_time;
362         uint16_t min_password_length;
363         uint16_t password_history_length;
364         int64_t max_password_age;
365         int64_t min_password_age;
366         uint64_t sequence_num;
367         NTTIME domain_create_time;
368         uint32_t SecurityInformation;
369         struct sec_desc_buf sdbuf;
370         struct lsa_BinaryString account_lockout;
371         struct lsa_String unknown2;
372         struct lsa_String unknown3;
373         struct lsa_String unknown4;
374         uint32_t logon_to_chgpass;
375         uint32_t unknown6;
376         uint32_t unknown7;
377         uint32_t unknown8;
378 };
379
380 struct netr_DELTA_GROUP {
381         struct lsa_String group_name;
382         uint32_t rid;
383         uint32_t attributes;
384         struct lsa_String description;
385         uint32_t SecurityInformation;
386         struct sec_desc_buf sdbuf;
387         struct lsa_String unknown1;
388         struct lsa_String unknown2;
389         struct lsa_String unknown3;
390         struct lsa_String unknown4;
391         uint32_t unknown5;
392         uint32_t unknown6;
393         uint32_t unknown7;
394         uint32_t unknown8;
395 };
396
397 struct netr_DELTA_RENAME {
398         struct lsa_String OldName;
399         struct lsa_String NewName;
400         struct lsa_String unknown1;
401         struct lsa_String unknown2;
402         struct lsa_String unknown3;
403         struct lsa_String unknown4;
404         uint32_t unknown5;
405         uint32_t unknown6;
406         uint32_t unknown7;
407         uint32_t unknown8;
408 };
409
410 struct netr_DELTA_GROUP_MEMBER {
411         uint32_t *rids;/* [unique,size_is(num_rids)] */
412         uint32_t *attribs;/* [unique,size_is(num_rids)] */
413         uint32_t num_rids;
414         uint32_t unknown1;
415         uint32_t unknown2;
416         uint32_t unknown3;
417         uint32_t unknown4;
418 };
419
420 struct netr_DELTA_ALIAS {
421         struct lsa_String alias_name;
422         uint32_t rid;
423         uint32_t SecurityInformation;
424         struct sec_desc_buf sdbuf;
425         struct lsa_String description;
426         struct lsa_String unknown2;
427         struct lsa_String unknown3;
428         struct lsa_String unknown4;
429         uint32_t unknown5;
430         uint32_t unknown6;
431         uint32_t unknown7;
432         uint32_t unknown8;
433 };
434
435 struct netr_DELTA_ALIAS_MEMBER {
436         struct lsa_SidArray sids;
437         uint32_t unknown1;
438         uint32_t unknown2;
439         uint32_t unknown3;
440         uint32_t unknown4;
441 };
442
443 struct netr_QUOTA_LIMITS {
444         uint32_t pagedpoollimit;
445         uint32_t nonpagedpoollimit;
446         uint32_t minimumworkingsetsize;
447         uint32_t maximumworkingsetsize;
448         uint32_t pagefilelimit;
449         NTTIME timelimit;
450 };
451
452 struct netr_DELTA_POLICY {
453         uint32_t maxlogsize;
454         NTTIME auditretentionperiod;
455         uint8_t auditingmode;
456         uint32_t maxauditeventcount;
457         uint32_t *eventauditoptions;/* [unique,size_is(maxauditeventcount+1)] */
458         struct lsa_String primary_domain_name;
459         struct dom_sid2 *sid;/* [unique] */
460         struct netr_QUOTA_LIMITS quota_limits;
461         uint64_t sequence_num;
462         NTTIME db_create_time;
463         uint32_t SecurityInformation;
464         struct sec_desc_buf sdbuf;
465         struct lsa_String unknown1;
466         struct lsa_String unknown2;
467         struct lsa_String unknown3;
468         struct lsa_String unknown4;
469         uint32_t unknown5;
470         uint32_t unknown6;
471         uint32_t unknown7;
472         uint32_t unknown8;
473 };
474
475 struct netr_DELTA_TRUSTED_DOMAIN {
476         struct lsa_String domain_name;
477         uint32_t num_controllers;
478         struct lsa_String *controller_names;/* [unique,size_is(num_controllers)] */
479         uint32_t SecurityInformation;
480         struct sec_desc_buf sdbuf;
481         struct lsa_String unknown1;
482         struct lsa_String unknown2;
483         struct lsa_String unknown3;
484         struct lsa_String unknown4;
485         uint32_t posix_offset;
486         uint32_t unknown6;
487         uint32_t unknown7;
488         uint32_t unknown8;
489 };
490
491 struct netr_DELTA_DELETE_TRUST {
492         uint16_t unknown;
493 };
494
495 struct netr_DELTA_ACCOUNT {
496         uint32_t privilege_entries;
497         uint32_t privilege_control;
498         uint32_t *privilege_attrib;/* [unique,size_is(privilege_entries)] */
499         struct lsa_String *privilege_name;/* [unique,size_is(privilege_entries)] */
500         struct netr_QUOTA_LIMITS quotalimits;
501         uint32_t system_flags;
502         uint32_t SecurityInformation;
503         struct sec_desc_buf sdbuf;
504         struct lsa_String unknown1;
505         struct lsa_String unknown2;
506         struct lsa_String unknown3;
507         struct lsa_String unknown4;
508         uint32_t unknown5;
509         uint32_t unknown6;
510         uint32_t unknown7;
511         uint32_t unknown8;
512 };
513
514 struct netr_DELTA_DELETE_ACCOUNT {
515         uint16_t unknown;
516 };
517
518 struct netr_DELTA_DELETE_SECRET {
519         uint16_t unknown;
520 };
521
522 struct netr_CIPHER_VALUE {
523         uint32_t len;
524         uint32_t maxlen;
525         uint8_t *cipher_data;/* [unique,length_is(len),size_is(maxlen)] */
526 };
527
528 struct netr_DELTA_SECRET {
529         struct netr_CIPHER_VALUE current_cipher;
530         NTTIME current_cipher_set_time;
531         struct netr_CIPHER_VALUE old_cipher;
532         NTTIME old_cipher_set_time;
533         uint32_t SecurityInformation;
534         struct sec_desc_buf sdbuf;
535         struct lsa_String unknown1;
536         struct lsa_String unknown2;
537         struct lsa_String unknown3;
538         struct lsa_String unknown4;
539         uint32_t unknown5;
540         uint32_t unknown6;
541         uint32_t unknown7;
542         uint32_t unknown8;
543 };
544
545 enum netr_DeltaEnum
546 #ifndef USE_UINT_ENUMS
547  {
548         NETR_DELTA_DOMAIN=1,
549         NETR_DELTA_GROUP=2,
550         NETR_DELTA_DELETE_GROUP=3,
551         NETR_DELTA_RENAME_GROUP=4,
552         NETR_DELTA_USER=5,
553         NETR_DELTA_DELETE_USER=6,
554         NETR_DELTA_RENAME_USER=7,
555         NETR_DELTA_GROUP_MEMBER=8,
556         NETR_DELTA_ALIAS=9,
557         NETR_DELTA_DELETE_ALIAS=10,
558         NETR_DELTA_RENAME_ALIAS=11,
559         NETR_DELTA_ALIAS_MEMBER=12,
560         NETR_DELTA_POLICY=13,
561         NETR_DELTA_TRUSTED_DOMAIN=14,
562         NETR_DELTA_DELETE_TRUST=15,
563         NETR_DELTA_ACCOUNT=16,
564         NETR_DELTA_DELETE_ACCOUNT=17,
565         NETR_DELTA_SECRET=18,
566         NETR_DELTA_DELETE_SECRET=19,
567         NETR_DELTA_DELETE_GROUP2=20,
568         NETR_DELTA_DELETE_USER2=21,
569         NETR_DELTA_MODIFY_COUNT=22
570 }
571 #else
572  { __donnot_use_enum_netr_DeltaEnum=0x7FFFFFFF}
573 #define NETR_DELTA_DOMAIN ( 1 )
574 #define NETR_DELTA_GROUP ( 2 )
575 #define NETR_DELTA_DELETE_GROUP ( 3 )
576 #define NETR_DELTA_RENAME_GROUP ( 4 )
577 #define NETR_DELTA_USER ( 5 )
578 #define NETR_DELTA_DELETE_USER ( 6 )
579 #define NETR_DELTA_RENAME_USER ( 7 )
580 #define NETR_DELTA_GROUP_MEMBER ( 8 )
581 #define NETR_DELTA_ALIAS ( 9 )
582 #define NETR_DELTA_DELETE_ALIAS ( 10 )
583 #define NETR_DELTA_RENAME_ALIAS ( 11 )
584 #define NETR_DELTA_ALIAS_MEMBER ( 12 )
585 #define NETR_DELTA_POLICY ( 13 )
586 #define NETR_DELTA_TRUSTED_DOMAIN ( 14 )
587 #define NETR_DELTA_DELETE_TRUST ( 15 )
588 #define NETR_DELTA_ACCOUNT ( 16 )
589 #define NETR_DELTA_DELETE_ACCOUNT ( 17 )
590 #define NETR_DELTA_SECRET ( 18 )
591 #define NETR_DELTA_DELETE_SECRET ( 19 )
592 #define NETR_DELTA_DELETE_GROUP2 ( 20 )
593 #define NETR_DELTA_DELETE_USER2 ( 21 )
594 #define NETR_DELTA_MODIFY_COUNT ( 22 )
595 #endif
596 ;
597
598 union netr_DELTA_UNION {
599         struct netr_DELTA_DOMAIN *domain;/* [unique,case(NETR_DELTA_DOMAIN)] */
600         struct netr_DELTA_GROUP *group;/* [unique,case(NETR_DELTA_GROUP)] */
601         struct netr_DELTA_RENAME *rename_group;/* [unique,case(NETR_DELTA_RENAME_GROUP)] */
602         struct netr_DELTA_USER *user;/* [unique,case(NETR_DELTA_USER)] */
603         struct netr_DELTA_RENAME *rename_user;/* [unique,case(NETR_DELTA_RENAME_USER)] */
604         struct netr_DELTA_GROUP_MEMBER *group_member;/* [unique,case(NETR_DELTA_GROUP_MEMBER)] */
605         struct netr_DELTA_ALIAS *alias;/* [unique,case(NETR_DELTA_ALIAS)] */
606         struct netr_DELTA_RENAME *rename_alias;/* [unique,case(NETR_DELTA_RENAME_ALIAS)] */
607         struct netr_DELTA_ALIAS_MEMBER *alias_member;/* [unique,case(NETR_DELTA_ALIAS_MEMBER)] */
608         struct netr_DELTA_POLICY *policy;/* [unique,case(NETR_DELTA_POLICY)] */
609         struct netr_DELTA_TRUSTED_DOMAIN *trusted_domain;/* [unique,case(NETR_DELTA_TRUSTED_DOMAIN)] */
610         struct netr_DELTA_DELETE_TRUST delete_trust;/* [case(NETR_DELTA_DELETE_TRUST)] */
611         struct netr_DELTA_ACCOUNT *account;/* [unique,case(NETR_DELTA_ACCOUNT)] */
612         struct netr_DELTA_DELETE_ACCOUNT delete_account;/* [case(NETR_DELTA_DELETE_ACCOUNT)] */
613         struct netr_DELTA_SECRET *secret;/* [unique,case(NETR_DELTA_SECRET)] */
614         struct netr_DELTA_DELETE_SECRET delete_secret;/* [case(NETR_DELTA_DELETE_SECRET)] */
615         struct netr_DELTA_DELETE_USER *delete_group;/* [unique,case(NETR_DELTA_DELETE_GROUP2)] */
616         struct netr_DELTA_DELETE_USER *delete_user;/* [unique,case(NETR_DELTA_DELETE_USER2)] */
617         uint64_t *modified_count;/* [unique,case(NETR_DELTA_MODIFY_COUNT)] */
618 }/* [switch_type(netr_DeltaEnum)] */;
619
620 union netr_DELTA_ID_UNION {
621         uint32_t rid;/* [case(NETR_DELTA_DOMAIN)] */
622         struct dom_sid2 *sid;/* [unique,case(NETR_DELTA_POLICY)] */
623         const char *name;/* [unique,charset(UTF16),case(NETR_DELTA_SECRET)] */
624 }/* [switch_type(netr_DeltaEnum)] */;
625
626 struct netr_DELTA_ENUM {
627         enum netr_DeltaEnum delta_type;
628         union netr_DELTA_ID_UNION delta_id_union;/* [switch_is(delta_type)] */
629         union netr_DELTA_UNION delta_union;/* [switch_is(delta_type)] */
630 };
631
632 struct netr_DELTA_ENUM_ARRAY {
633         uint32_t num_deltas;
634         struct netr_DELTA_ENUM *delta_enum;/* [unique,size_is(num_deltas)] */
635 };
636
637 struct netr_UAS_INFO_0 {
638         uint8_t computer_name[16];
639         uint32_t timecreated;
640         uint32_t serial_number;
641 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
642
643 struct netr_AccountBuffer {
644         DATA_BLOB blob;/* [flag(LIBNDR_FLAG_REMAINING)] */
645 };
646
647 /* bitmap netr_InfoFlags */
648 #define NETLOGON_CTRL_REPL_NEEDED ( 0x0001 )
649 #define NETLOGON_CTRL_REPL_IN_PROGRESS ( 0x0002 )
650 #define NETLOGON_CTRL_REPL_FULL_SYNC ( 0x0004 )
651
652 struct netr_NETLOGON_INFO_1 {
653         uint32_t flags;
654         uint32_t pdc_connection_status;
655 };
656
657 struct netr_NETLOGON_INFO_2 {
658         uint32_t flags;
659         uint32_t pdc_connection_status;
660         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
661         uint32_t tc_connection_status;
662 };
663
664 struct netr_NETLOGON_INFO_3 {
665         uint32_t flags;
666         uint32_t logon_attempts;
667         uint32_t unknown1;
668         uint32_t unknown2;
669         uint32_t unknown3;
670         uint32_t unknown4;
671         uint32_t unknown5;
672 };
673
674 struct netr_NETLOGON_INFO_4 {
675         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
676         const char *trusted_domain_name;/* [unique,charset(UTF16)] */
677 };
678
679 union netr_CONTROL_QUERY_INFORMATION {
680         struct netr_NETLOGON_INFO_1 *info1;/* [unique,case] */
681         struct netr_NETLOGON_INFO_2 *info2;/* [unique,case(2)] */
682         struct netr_NETLOGON_INFO_3 *info3;/* [unique,case(3)] */
683         struct netr_NETLOGON_INFO_4 *info4;/* [unique,case(4)] */
684 };
685
686 enum netr_LogonControlCode
687 #ifndef USE_UINT_ENUMS
688  {
689         NETLOGON_CONTROL_QUERY=0x00000001,
690         NETLOGON_CONTROL_REPLICATE=0x00000002,
691         NETLOGON_CONTROL_SYNCHRONIZE=0x00000003,
692         NETLOGON_CONTROL_PDC_REPLICATE=0x00000004,
693         NETLOGON_CONTROL_REDISCOVER=0x00000005,
694         NETLOGON_CONTROL_TC_QUERY=0x00000006,
695         NETLOGON_CONTROL_TRANSPORT_NOTIFY=0x00000007,
696         NETLOGON_CONTROL_FIND_USER=0x00000008,
697         NETLOGON_CONTROL_CHANGE_PASSWORD=0x00000009,
698         NETLOGON_CONTROL_TC_VERIFY=0x0000000A,
699         NETLOGON_CONTROL_FORCE_DNS_REG=0x0000000B,
700         NETLOGON_CONTROL_QUERY_DNS_REG=0x0000000C,
701         NETLOGON_CONTROL_BACKUP_CHANGE_LOG=0x0000FFFC,
702         NETLOGON_CONTROL_TRUNCATE_LOG=0x0000FFFD,
703         NETLOGON_CONTROL_SET_DBFLAG=0x0000FFFE,
704         NETLOGON_CONTROL_BREAKPOINT=0x0000FFFF
705 }
706 #else
707  { __donnot_use_enum_netr_LogonControlCode=0x7FFFFFFF}
708 #define NETLOGON_CONTROL_QUERY ( 0x00000001 )
709 #define NETLOGON_CONTROL_REPLICATE ( 0x00000002 )
710 #define NETLOGON_CONTROL_SYNCHRONIZE ( 0x00000003 )
711 #define NETLOGON_CONTROL_PDC_REPLICATE ( 0x00000004 )
712 #define NETLOGON_CONTROL_REDISCOVER ( 0x00000005 )
713 #define NETLOGON_CONTROL_TC_QUERY ( 0x00000006 )
714 #define NETLOGON_CONTROL_TRANSPORT_NOTIFY ( 0x00000007 )
715 #define NETLOGON_CONTROL_FIND_USER ( 0x00000008 )
716 #define NETLOGON_CONTROL_CHANGE_PASSWORD ( 0x00000009 )
717 #define NETLOGON_CONTROL_TC_VERIFY ( 0x0000000A )
718 #define NETLOGON_CONTROL_FORCE_DNS_REG ( 0x0000000B )
719 #define NETLOGON_CONTROL_QUERY_DNS_REG ( 0x0000000C )
720 #define NETLOGON_CONTROL_BACKUP_CHANGE_LOG ( 0x0000FFFC )
721 #define NETLOGON_CONTROL_TRUNCATE_LOG ( 0x0000FFFD )
722 #define NETLOGON_CONTROL_SET_DBFLAG ( 0x0000FFFE )
723 #define NETLOGON_CONTROL_BREAKPOINT ( 0x0000FFFF )
724 #endif
725 ;
726
727 union netr_CONTROL_DATA_INFORMATION {
728         const char *domain;/* [unique,charset(UTF16),case(NETLOGON_CONTROL_REDISCOVER)] */
729         const char *user;/* [unique,charset(UTF16),case(NETLOGON_CONTROL_FIND_USER)] */
730         uint32_t debug_level;/* [case(NETLOGON_CONTROL_SET_DBFLAG)] */
731 };
732
733 /* bitmap netr_NegotiateFlags */
734 #define NETLOGON_NEG_ACCOUNT_LOCKOUT ( 0x00000001 )
735 #define NETLOGON_NEG_PERSISTENT_SAMREPL ( 0x00000002 )
736 #define NETLOGON_NEG_ARCFOUR ( 0x00000004 )
737 #define NETLOGON_NEG_PROMOTION_COUNT ( 0x00000008 )
738 #define NETLOGON_NEG_CHANGELOG_BDC ( 0x00000010 )
739 #define NETLOGON_NEG_FULL_SYNC_REPL ( 0x00000020 )
740 #define NETLOGON_NEG_MULTIPLE_SIDS ( 0x00000040 )
741 #define NETLOGON_NEG_REDO ( 0x00000080 )
742 #define NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL ( 0x00000100 )
743 #define NETLOGON_NEG_SEND_PASSWORD_INFO_PDC ( 0x00000200 )
744 #define NETLOGON_NEG_GENERIC_PASSTHROUGH ( 0x00000400 )
745 #define NETLOGON_NEG_CONCURRENT_RPC ( 0x00000800 )
746 #define NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL ( 0x00001000 )
747 #define NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL ( 0x00002000 )
748 #define NETLOGON_NEG_STRONG_KEYS ( 0x00004000 )
749 #define NETLOGON_NEG_TRANSITIVE_TRUSTS ( 0x00008000 )
750 #define NETLOGON_NEG_DNS_DOMAIN_TRUSTS ( 0x00010000 )
751 #define NETLOGON_NEG_PASSWORD_SET2 ( 0x00020000 )
752 #define NETLOGON_NEG_GETDOMAININFO ( 0x00040000 )
753 #define NETLOGON_NEG_CROSS_FOREST_TRUSTS ( 0x00080000 )
754 #define NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION ( 0x00100000 )
755 #define NETLOGON_NEG_RODC_PASSTHROUGH ( 0x00200000 )
756 #define NETLOGON_NEG_SUPPORTS_AES_SHA2 ( 0x00400000 )
757 #define NETLOGON_NEG_SUPPORTS_AES ( 0x01000000 )
758 #define NETLOGON_NEG_AUTHENTICATED_RPC_LSASS ( 0x20000000 )
759 #define NETLOGON_NEG_AUTHENTICATED_RPC ( 0x40000000 )
760
761 enum SyncStateEnum
762 #ifndef USE_UINT_ENUMS
763  {
764         SYNCSTATE_NORMAL_STATE=0,
765         SYNCSTATE_DOMAIN_STATE=1,
766         SYNCSTATE_GROUP_STATE=2,
767         SYNCSTATE_UAS_BUILT_IN_GROUP_STATE=3,
768         SYNCSTATE_USER_STATE=4,
769         SYNCSTATE_GROUP_MEMBER_STATE=5,
770         SYNCSTATE_ALIAS_STATE=6,
771         SYNCSTATE_ALIAS_MEMBER_STATE=7,
772         SYNCSTATE_SAM_DONE_STATE=8
773 }
774 #else
775  { __donnot_use_enum_SyncStateEnum=0x7FFFFFFF}
776 #define SYNCSTATE_NORMAL_STATE ( 0 )
777 #define SYNCSTATE_DOMAIN_STATE ( 1 )
778 #define SYNCSTATE_GROUP_STATE ( 2 )
779 #define SYNCSTATE_UAS_BUILT_IN_GROUP_STATE ( 3 )
780 #define SYNCSTATE_USER_STATE ( 4 )
781 #define SYNCSTATE_GROUP_MEMBER_STATE ( 5 )
782 #define SYNCSTATE_ALIAS_STATE ( 6 )
783 #define SYNCSTATE_ALIAS_MEMBER_STATE ( 7 )
784 #define SYNCSTATE_SAM_DONE_STATE ( 8 )
785 #endif
786 ;
787
788 /* bitmap netr_ChangeLogFlags */
789 #define NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED ( 0x0001 )
790 #define NETR_CHANGELOG_CHANGED_PASSWORD ( 0x0002 )
791 #define NETR_CHANGELOG_SID_INCLUDED ( 0x0004 )
792 #define NETR_CHANGELOG_NAME_INCLUDED ( 0x0008 )
793 #define NETR_CHANGELOG_FIRST_PROMOTION_OBJ ( 0x0010 )
794
795 union netr_ChangeLogObject {
796         struct dom_sid object_sid;/* [case(NETR_CHANGELOG_SID_INCLUDED)] */
797         const char * object_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(NETR_CHANGELOG_NAME_INCLUDED)] */
798 }/* [nodiscriminant] */;
799
800 struct netr_ChangeLogEntry {
801         uint32_t serial_number1;
802         uint32_t serial_number2;
803         uint32_t object_rid;
804         uint16_t flags;
805         enum netr_SamDatabaseID8Bit db_index;
806         enum netr_DeltaEnum8Bit delta_type;
807         union netr_ChangeLogObject object;/* [switch_is(flags&(NETR_CHANGELOG_SID_INCLUDED|NETR_CHANGELOG_NAME_INCLUDED))] */
808 }/* [gensize,public] */;
809
810 struct netr_Blob {
811         uint32_t length;
812         uint8_t *data;/* [unique,size_is(length)] */
813 };
814
815 /* bitmap netr_DsRGetDCName_flags */
816 #define DS_FORCE_REDISCOVERY ( 0x00000001 )
817 #define DS_DIRECTORY_SERVICE_REQUIRED ( 0x00000010 )
818 #define DS_DIRECTORY_SERVICE_PREFERRED ( 0x00000020 )
819 #define DS_GC_SERVER_REQUIRED ( 0x00000040 )
820 #define DS_PDC_REQUIRED ( 0x00000080 )
821 #define DS_BACKGROUND_ONLY ( 0x00000100 )
822 #define DS_IP_REQUIRED ( 0x00000200 )
823 #define DS_KDC_REQUIRED ( 0x00000400 )
824 #define DS_TIMESERV_REQUIRED ( 0x00000800 )
825 #define DS_WRITABLE_REQUIRED ( 0x00001000 )
826 #define DS_GOOD_TIMESERV_PREFERRED ( 0x00002000 )
827 #define DS_AVOID_SELF ( 0x00004000 )
828 #define DS_ONLY_LDAP_NEEDED ( 0x00008000 )
829 #define DS_IS_FLAT_NAME ( 0x00010000 )
830 #define DS_IS_DNS_NAME ( 0x00020000 )
831 #define DS_TRY_NEXTCLOSEST_SITE ( 0x00040000 )
832 #define DS_DIRECTORY_SERVICE_6_REQUIRED ( 0x00080000 )
833 #define DS_WEB_SERVICE_REQUIRED ( 0x00100000 )
834 #define DS_RETURN_DNS_NAME ( 0x40000000 )
835 #define DS_RETURN_FLAT_NAME ( 0x80000000 )
836
837 enum netr_DsRGetDCNameInfo_AddressType
838 #ifndef USE_UINT_ENUMS
839  {
840         DS_ADDRESS_TYPE_INET=1,
841         DS_ADDRESS_TYPE_NETBIOS=2
842 }
843 #else
844  { __donnot_use_enum_netr_DsRGetDCNameInfo_AddressType=0x7FFFFFFF}
845 #define DS_ADDRESS_TYPE_INET ( 1 )
846 #define DS_ADDRESS_TYPE_NETBIOS ( 2 )
847 #endif
848 ;
849
850 /* bitmap netr_DsR_DcFlags */
851 #define DS_SERVER_PDC ( NBT_SERVER_PDC )
852 #define DS_SERVER_GC ( NBT_SERVER_GC )
853 #define DS_SERVER_LDAP ( NBT_SERVER_LDAP )
854 #define DS_SERVER_DS ( NBT_SERVER_DS )
855 #define DS_SERVER_KDC ( NBT_SERVER_KDC )
856 #define DS_SERVER_TIMESERV ( NBT_SERVER_TIMESERV )
857 #define DS_SERVER_CLOSEST ( NBT_SERVER_CLOSEST )
858 #define DS_SERVER_WRITABLE ( NBT_SERVER_WRITABLE )
859 #define DS_SERVER_GOOD_TIMESERV ( NBT_SERVER_GOOD_TIMESERV )
860 #define DS_SERVER_NDNC ( NBT_SERVER_NDNC )
861 #define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( NBT_SERVER_SELECT_SECRET_DOMAIN_6 )
862 #define DS_SERVER_FULL_SECRET_DOMAIN_6 ( NBT_SERVER_FULL_SECRET_DOMAIN_6 )
863 #define DS_DNS_CONTROLLER ( 0x20000000 )
864 #define DS_DNS_DOMAIN ( 0x40000000 )
865 #define DS_DNS_FOREST ( 0x80000000 )
866
867 struct netr_DsRGetDCNameInfo {
868         const char *dc_unc;/* [unique,charset(UTF16)] */
869         const char *dc_address;/* [unique,charset(UTF16)] */
870         enum netr_DsRGetDCNameInfo_AddressType dc_address_type;
871         struct GUID domain_guid;
872         const char *domain_name;/* [unique,charset(UTF16)] */
873         const char *forest_name;/* [unique,charset(UTF16)] */
874         uint32_t dc_flags;
875         const char *dc_site_name;/* [unique,charset(UTF16)] */
876         const char *client_site_name;/* [unique,charset(UTF16)] */
877 }/* [public] */;
878
879 union netr_Capabilities {
880         uint32_t server_capabilities;/* [case] */
881 }/* [switch_type(uint32)] */;
882
883 /* bitmap netr_TrustFlags */
884 #define NETR_TRUST_FLAG_IN_FOREST ( 0x00000001 )
885 #define NETR_TRUST_FLAG_OUTBOUND ( 0x00000002 )
886 #define NETR_TRUST_FLAG_TREEROOT ( 0x00000004 )
887 #define NETR_TRUST_FLAG_PRIMARY ( 0x00000008 )
888 #define NETR_TRUST_FLAG_NATIVE ( 0x00000010 )
889 #define NETR_TRUST_FLAG_INBOUND ( 0x00000020 )
890 #define NETR_TRUST_FLAG_MIT_KRB5 ( 0x00000080 )
891 #define NETR_TRUST_FLAG_AES ( 0x00000100 )
892
893 /* bitmap netr_WorkstationFlags */
894 #define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 )
895 #define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 )
896
897 /* bitmap netr_SuiteMask */
898 #define NETR_VER_SUITE_BACKOFFICE ( 0x0004 )
899 #define NETR_VER_SUITE_BLADE ( 0x0400 )
900 #define NETR_VER_SUITE_COMPUTE_SERVER ( 0x4000 )
901 #define NETR_VER_SUITE_DATACENTER ( 0x0080 )
902 #define NETR_VER_SUITE_ENTERPRISE ( 0x0002 )
903 #define NETR_VER_SUITE_EMBEDDEDNT ( 0x0040 )
904 #define NETR_VER_SUITE_PERSONAL ( 0x0200 )
905 #define NETR_VER_SUITE_SINGLEUSERTS ( 0x0100 )
906 #define NETR_VER_SUITE_SMALLBUSINESS ( 0x0001 )
907 #define NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED ( 0x0020 )
908 #define NETR_VER_SUITE_STORAGE_SERVER ( 0x2000 )
909 #define NETR_VER_SUITE_TERMINAL ( 0x0010 )
910 #define NETR_VER_SUITE_WH_SERVER ( 0x8000 )
911
912 /* bitmap netr_ProductType */
913 #define NETR_VER_NT_DOMAIN_CONTROLLER ( 0x02 )
914 #define NETR_VER_NT_SERVER ( 0x03 )
915 #define NETR_VER_NT_WORKSTATION ( 0x01 )
916
917 struct netr_LsaPolicyInformation {
918         uint32_t policy_size;
919         uint8_t *policy;/* [unique,size_is(policy_size)] */
920 };
921
922 struct netr_OsVersionInfoEx {
923         uint32_t OSVersionInfoSize;/* [value(284)] */
924         uint32_t MajorVersion;
925         uint32_t MinorVersion;
926         uint32_t BuildNumber;
927         uint32_t PlatformId;
928         const char *CSDVersion;/* [charset(UTF16)] */
929         uint16_t ServicePackMajor;
930         uint16_t ServicePackMinor;
931         uint16_t SuiteMask;
932         uint8_t ProductType;
933         uint8_t Reserved;
934 };
935
936 struct netr_OsVersion {
937         uint32_t length;/* [value(142)] */
938         uint32_t dummy;/* [value(0)] */
939         uint32_t size;/* [value(142)] */
940         struct netr_OsVersionInfoEx os;
941 };
942
943 struct netr_OsVersionContainer {
944         uint16_t length;/* [value(os==NULL?0:284)] */
945         uint16_t size;/* [value(os==NULL?0:284)] */
946         struct netr_OsVersion *os;/* [unique] */
947 };
948
949 struct netr_WorkstationInformation {
950         struct netr_LsaPolicyInformation lsa_policy;
951         const char *dns_hostname;/* [unique,charset(UTF16)] */
952         const char *sitename;/* [unique,charset(UTF16)] */
953         const char *dummy1;/* [unique,charset(UTF16)] */
954         const char *dummy2;/* [unique,charset(UTF16)] */
955         const char *dummy3;/* [unique,charset(UTF16)] */
956         const char *dummy4;/* [unique,charset(UTF16)] */
957         struct netr_OsVersionContainer os_version;
958         struct lsa_String os_name;
959         struct lsa_String dummy_string3;
960         struct lsa_String dummy_string4;
961         uint32_t workstation_flags;
962         uint32_t dummy_long2;
963         uint32_t dummy_long3;
964         uint32_t dummy_long4;
965 };
966
967 union netr_WorkstationInfo {
968         struct netr_WorkstationInformation *workstation_info;/* [unique,case] */
969         struct netr_WorkstationInformation *lsa_policy_info;/* [unique,case(2)] */
970 };
971
972 struct netr_trust_extension {
973         uint32_t length;/* [value(8)] */
974         uint32_t dummy;/* [value(0)] */
975         uint32_t size;/* [value(8)] */
976         uint32_t flags;
977         uint32_t parent_index;
978         uint32_t trust_type;
979         uint32_t trust_attributes;
980 };
981
982 struct netr_trust_extension_container {
983         uint16_t length;
984         uint16_t size;/* [value(length)] */
985         struct netr_trust_extension *info;/* [unique] */
986 };
987
988 struct netr_OneDomainInfo {
989         struct lsa_String domainname;
990         struct lsa_String dns_domainname;
991         struct lsa_String dns_forestname;
992         struct GUID domain_guid;
993         struct dom_sid2 *domain_sid;/* [unique] */
994         struct netr_trust_extension_container trust_extension;
995         struct lsa_String dummy_string2;
996         struct lsa_String dummy_string3;
997         struct lsa_String dummy_string4;
998         uint32_t dummy_long1;
999         uint32_t dummy_long2;
1000         uint32_t dummy_long3;
1001         uint32_t dummy_long4;
1002 };
1003
1004 struct netr_DomainInformation {
1005         struct netr_OneDomainInfo primary_domain;
1006         uint32_t trusted_domain_count;
1007         struct netr_OneDomainInfo *trusted_domains;/* [unique,size_is(trusted_domain_count)] */
1008         struct netr_LsaPolicyInformation lsa_policy;
1009         struct lsa_String dns_hostname;
1010         struct lsa_String dummy_string2;
1011         struct lsa_String dummy_string3;
1012         struct lsa_String dummy_string4;
1013         uint32_t workstation_flags;
1014         uint32_t supported_enc_types;
1015         uint32_t dummy_long3;
1016         uint32_t dummy_long4;
1017 };
1018
1019 union netr_DomainInfo {
1020         struct netr_DomainInformation *domain_info;/* [unique,case] */
1021         struct netr_LsaPolicyInformation *lsa_policy_info;/* [unique,case(2)] */
1022 };
1023
1024 struct netr_CryptPassword {
1025         uint8_t data[512];
1026         uint32_t length;
1027 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
1028
1029 struct netr_DsRAddressToSitenamesWCtr {
1030         uint32_t count;
1031         struct lsa_String *sitename;/* [unique,size_is(count)] */
1032 };
1033
1034 struct netr_DsRAddress {
1035         uint8_t *buffer;/* [unique,size_is(size)] */
1036         uint32_t size;
1037 };
1038
1039 enum netr_TrustType
1040 #ifndef USE_UINT_ENUMS
1041  {
1042         NETR_TRUST_TYPE_DOWNLEVEL=1,
1043         NETR_TRUST_TYPE_UPLEVEL=2,
1044         NETR_TRUST_TYPE_MIT=3,
1045         NETR_TRUST_TYPE_DCE=4
1046 }
1047 #else
1048  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
1049 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
1050 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
1051 #define NETR_TRUST_TYPE_MIT ( 3 )
1052 #define NETR_TRUST_TYPE_DCE ( 4 )
1053 #endif
1054 ;
1055
1056 /* bitmap netr_TrustAttributes */
1057 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
1058 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
1059 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
1060 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
1061 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
1062 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
1063 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
1064
1065 struct netr_DomainTrust {
1066         const char *netbios_name;/* [unique,charset(UTF16)] */
1067         const char *dns_name;/* [unique,charset(UTF16)] */
1068         uint32_t trust_flags;
1069         uint32_t parent_index;
1070         enum netr_TrustType trust_type;
1071         uint32_t trust_attributes;
1072         struct dom_sid2 *sid;/* [unique] */
1073         struct GUID guid;
1074 };
1075
1076 struct netr_DomainTrustList {
1077         uint32_t count;
1078         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
1079 };
1080
1081 struct netr_DsRAddressToSitenamesExWCtr {
1082         uint32_t count;
1083         struct lsa_String *sitename;/* [unique,size_is(count)] */
1084         struct lsa_String *subnetname;/* [unique,size_is(count)] */
1085 };
1086
1087 struct DcSitesCtr {
1088         uint32_t num_sites;
1089         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
1090 };
1091
1092 struct netr_TrustInfo {
1093         uint32_t count;
1094         uint32_t *data;/* [unique,size_is(count)] */
1095         uint32_t entry_count;
1096         struct lsa_String *entries;/* [unique,size_is(count)] */
1097 };
1098
1099
1100 struct netr_LogonUasLogon {
1101         struct {
1102                 const char *server_name;/* [unique,charset(UTF16)] */
1103                 const char *account_name;/* [ref,charset(UTF16)] */
1104                 const char *workstation;/* [ref,charset(UTF16)] */
1105         } in;
1106
1107         struct {
1108                 struct netr_UasInfo **info;/* [ref] */
1109                 WERROR result;
1110         } out;
1111
1112 };
1113
1114
1115 struct netr_LogonUasLogoff {
1116         struct {
1117                 const char *server_name;/* [unique,charset(UTF16)] */
1118                 const char *account_name;/* [ref,charset(UTF16)] */
1119                 const char *workstation;/* [ref,charset(UTF16)] */
1120         } in;
1121
1122         struct {
1123                 struct netr_UasLogoffInfo *info;/* [ref] */
1124                 WERROR result;
1125         } out;
1126
1127 };
1128
1129
1130 struct netr_LogonSamLogon {
1131         struct {
1132                 const char *server_name;/* [unique,charset(UTF16)] */
1133                 const char *computer_name;/* [unique,charset(UTF16)] */
1134                 struct netr_Authenticator *credential;/* [unique] */
1135                 enum netr_LogonInfoClass logon_level;
1136                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1137                 uint16_t validation_level;
1138                 struct netr_Authenticator *return_authenticator;/* [unique] */
1139         } in;
1140
1141         struct {
1142                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1143                 uint8_t *authoritative;/* [ref] */
1144                 struct netr_Authenticator *return_authenticator;/* [unique] */
1145                 NTSTATUS result;
1146         } out;
1147
1148 };
1149
1150
1151 struct netr_LogonSamLogoff {
1152         struct {
1153                 const char *server_name;/* [unique,charset(UTF16)] */
1154                 const char *computer_name;/* [unique,charset(UTF16)] */
1155                 struct netr_Authenticator *credential;/* [unique] */
1156                 enum netr_LogonInfoClass logon_level;
1157                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1158                 struct netr_Authenticator *return_authenticator;/* [unique] */
1159         } in;
1160
1161         struct {
1162                 struct netr_Authenticator *return_authenticator;/* [unique] */
1163                 NTSTATUS result;
1164         } out;
1165
1166 };
1167
1168
1169 struct netr_ServerReqChallenge {
1170         struct {
1171                 const char *server_name;/* [unique,charset(UTF16)] */
1172                 const char *computer_name;/* [ref,charset(UTF16)] */
1173                 struct netr_Credential *credentials;/* [ref] */
1174         } in;
1175
1176         struct {
1177                 struct netr_Credential *return_credentials;/* [ref] */
1178                 NTSTATUS result;
1179         } out;
1180
1181 };
1182
1183
1184 struct netr_ServerAuthenticate {
1185         struct {
1186                 const char *server_name;/* [unique,charset(UTF16)] */
1187                 const char *account_name;/* [ref,charset(UTF16)] */
1188                 enum netr_SchannelType secure_channel_type;
1189                 const char *computer_name;/* [ref,charset(UTF16)] */
1190                 struct netr_Credential *credentials;/* [ref] */
1191         } in;
1192
1193         struct {
1194                 struct netr_Credential *return_credentials;/* [ref] */
1195                 NTSTATUS result;
1196         } out;
1197
1198 };
1199
1200
1201 struct netr_ServerPasswordSet {
1202         struct {
1203                 const char *server_name;/* [unique,charset(UTF16)] */
1204                 const char *account_name;/* [ref,charset(UTF16)] */
1205                 enum netr_SchannelType secure_channel_type;
1206                 const char *computer_name;/* [ref,charset(UTF16)] */
1207                 struct netr_Authenticator *credential;/* [ref] */
1208                 struct samr_Password *new_password;/* [ref] */
1209         } in;
1210
1211         struct {
1212                 struct netr_Authenticator *return_authenticator;/* [ref] */
1213                 NTSTATUS result;
1214         } out;
1215
1216 };
1217
1218
1219 struct netr_DatabaseDeltas {
1220         struct {
1221                 const char *logon_server;/* [ref,charset(UTF16)] */
1222                 const char *computername;/* [ref,charset(UTF16)] */
1223                 struct netr_Authenticator *credential;/* [ref] */
1224                 enum netr_SamDatabaseID database_id;
1225                 uint32_t preferredmaximumlength;
1226                 struct netr_Authenticator *return_authenticator;/* [ref] */
1227                 uint64_t *sequence_num;/* [ref] */
1228         } in;
1229
1230         struct {
1231                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1232                 struct netr_Authenticator *return_authenticator;/* [ref] */
1233                 uint64_t *sequence_num;/* [ref] */
1234                 NTSTATUS result;
1235         } out;
1236
1237 };
1238
1239
1240 struct netr_DatabaseSync {
1241         struct {
1242                 const char *logon_server;/* [ref,charset(UTF16)] */
1243                 const char *computername;/* [ref,charset(UTF16)] */
1244                 struct netr_Authenticator *credential;/* [ref] */
1245                 enum netr_SamDatabaseID database_id;
1246                 uint32_t preferredmaximumlength;
1247                 struct netr_Authenticator *return_authenticator;/* [ref] */
1248                 uint32_t *sync_context;/* [ref] */
1249         } in;
1250
1251         struct {
1252                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1253                 struct netr_Authenticator *return_authenticator;/* [ref] */
1254                 uint32_t *sync_context;/* [ref] */
1255                 NTSTATUS result;
1256         } out;
1257
1258 };
1259
1260
1261 struct netr_AccountDeltas {
1262         struct {
1263                 const char *logon_server;/* [unique,charset(UTF16)] */
1264                 const char *computername;/* [ref,charset(UTF16)] */
1265                 struct netr_Authenticator credential;
1266                 struct netr_UAS_INFO_0 uas;
1267                 uint32_t count;
1268                 uint32_t level;
1269                 uint32_t buffersize;
1270                 struct netr_Authenticator *return_authenticator;/* [ref] */
1271         } in;
1272
1273         struct {
1274                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1275                 uint32_t *count_returned;/* [ref] */
1276                 uint32_t *total_entries;/* [ref] */
1277                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1278                 struct netr_Authenticator *return_authenticator;/* [ref] */
1279                 NTSTATUS result;
1280         } out;
1281
1282 };
1283
1284
1285 struct netr_AccountSync {
1286         struct {
1287                 const char *logon_server;/* [unique,charset(UTF16)] */
1288                 const char *computername;/* [ref,charset(UTF16)] */
1289                 struct netr_Authenticator credential;
1290                 uint32_t reference;
1291                 uint32_t level;
1292                 uint32_t buffersize;
1293                 struct netr_Authenticator *return_authenticator;/* [ref] */
1294                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1295         } in;
1296
1297         struct {
1298                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1299                 uint32_t *count_returned;/* [ref] */
1300                 uint32_t *total_entries;/* [ref] */
1301                 uint32_t *next_reference;/* [ref] */
1302                 struct netr_Authenticator *return_authenticator;/* [ref] */
1303                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1304                 NTSTATUS result;
1305         } out;
1306
1307 };
1308
1309
1310 struct netr_GetDcName {
1311         struct {
1312                 const char *logon_server;/* [ref,charset(UTF16)] */
1313                 const char *domainname;/* [unique,charset(UTF16)] */
1314         } in;
1315
1316         struct {
1317                 const char **dcname;/* [ref,charset(UTF16)] */
1318                 WERROR result;
1319         } out;
1320
1321 };
1322
1323
1324 struct netr_LogonControl {
1325         struct {
1326                 const char *logon_server;/* [unique,charset(UTF16)] */
1327                 enum netr_LogonControlCode function_code;
1328                 uint32_t level;
1329         } in;
1330
1331         struct {
1332                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1333                 WERROR result;
1334         } out;
1335
1336 };
1337
1338
1339 struct netr_GetAnyDCName {
1340         struct {
1341                 const char *logon_server;/* [unique,charset(UTF16)] */
1342                 const char *domainname;/* [unique,charset(UTF16)] */
1343         } in;
1344
1345         struct {
1346                 const char **dcname;/* [ref,charset(UTF16)] */
1347                 WERROR result;
1348         } out;
1349
1350 };
1351
1352
1353 struct netr_LogonControl2 {
1354         struct {
1355                 const char *logon_server;/* [unique,charset(UTF16)] */
1356                 enum netr_LogonControlCode function_code;
1357                 uint32_t level;
1358                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1359         } in;
1360
1361         struct {
1362                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1363                 WERROR result;
1364         } out;
1365
1366 };
1367
1368
1369 struct netr_ServerAuthenticate2 {
1370         struct {
1371                 const char *server_name;/* [unique,charset(UTF16)] */
1372                 const char *account_name;/* [ref,charset(UTF16)] */
1373                 enum netr_SchannelType secure_channel_type;
1374                 const char *computer_name;/* [ref,charset(UTF16)] */
1375                 struct netr_Credential *credentials;/* [ref] */
1376                 uint32_t *negotiate_flags;/* [ref] */
1377         } in;
1378
1379         struct {
1380                 struct netr_Credential *return_credentials;/* [ref] */
1381                 uint32_t *negotiate_flags;/* [ref] */
1382                 NTSTATUS result;
1383         } out;
1384
1385 };
1386
1387
1388 struct netr_DatabaseSync2 {
1389         struct {
1390                 const char *logon_server;/* [ref,charset(UTF16)] */
1391                 const char *computername;/* [ref,charset(UTF16)] */
1392                 struct netr_Authenticator *credential;/* [ref] */
1393                 enum netr_SamDatabaseID database_id;
1394                 enum SyncStateEnum restart_state;
1395                 uint32_t preferredmaximumlength;
1396                 struct netr_Authenticator *return_authenticator;/* [ref] */
1397                 uint32_t *sync_context;/* [ref] */
1398         } in;
1399
1400         struct {
1401                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1402                 struct netr_Authenticator *return_authenticator;/* [ref] */
1403                 uint32_t *sync_context;/* [ref] */
1404                 NTSTATUS result;
1405         } out;
1406
1407 };
1408
1409
1410 struct netr_DatabaseRedo {
1411         struct {
1412                 const char *logon_server;/* [ref,charset(UTF16)] */
1413                 const char *computername;/* [ref,charset(UTF16)] */
1414                 struct netr_Authenticator *credential;/* [ref] */
1415                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1416                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */
1417                 struct netr_Authenticator *return_authenticator;/* [ref] */
1418         } in;
1419
1420         struct {
1421                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1422                 struct netr_Authenticator *return_authenticator;/* [ref] */
1423                 NTSTATUS result;
1424         } out;
1425
1426 };
1427
1428
1429 struct netr_LogonControl2Ex {
1430         struct {
1431                 const char *logon_server;/* [unique,charset(UTF16)] */
1432                 enum netr_LogonControlCode function_code;
1433                 uint32_t level;
1434                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1435         } in;
1436
1437         struct {
1438                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1439                 WERROR result;
1440         } out;
1441
1442 };
1443
1444
1445 struct netr_NetrEnumerateTrustedDomains {
1446         struct {
1447                 const char *server_name;/* [unique,charset(UTF16)] */
1448         } in;
1449
1450         struct {
1451                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1452                 WERROR result;
1453         } out;
1454
1455 };
1456
1457
1458 struct netr_DsRGetDCName {
1459         struct {
1460                 const char *server_unc;/* [unique,charset(UTF16)] */
1461                 const char *domain_name;/* [unique,charset(UTF16)] */
1462                 struct GUID *domain_guid;/* [unique] */
1463                 struct GUID *site_guid;/* [unique] */
1464                 uint32_t flags;
1465         } in;
1466
1467         struct {
1468                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1469                 WERROR result;
1470         } out;
1471
1472 };
1473
1474
1475 struct netr_LogonGetCapabilities {
1476         struct {
1477                 const char *server_name;/* [ref,charset(UTF16)] */
1478                 const char *computer_name;/* [unique,charset(UTF16)] */
1479                 struct netr_Authenticator *credential;/* [ref] */
1480                 uint32_t query_level;
1481                 struct netr_Authenticator *return_authenticator;/* [ref] */
1482         } in;
1483
1484         struct {
1485                 union netr_Capabilities *capabilities;/* [ref,switch_is(query_level)] */
1486                 struct netr_Authenticator *return_authenticator;/* [ref] */
1487                 NTSTATUS result;
1488         } out;
1489
1490 };
1491
1492
1493 struct netr_NETRLOGONSETSERVICEBITS {
1494         struct {
1495                 WERROR result;
1496         } out;
1497
1498 };
1499
1500
1501 struct netr_LogonGetTrustRid {
1502         struct {
1503                 const char *server_name;/* [unique,charset(UTF16)] */
1504                 const char *domain_name;/* [unique,charset(UTF16)] */
1505         } in;
1506
1507         struct {
1508                 uint32_t *rid;/* [ref] */
1509                 WERROR result;
1510         } out;
1511
1512 };
1513
1514
1515 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1516         struct {
1517                 WERROR result;
1518         } out;
1519
1520 };
1521
1522
1523 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1524         struct {
1525                 WERROR result;
1526         } out;
1527
1528 };
1529
1530
1531 struct netr_ServerAuthenticate3 {
1532         struct {
1533                 const char *server_name;/* [unique,charset(UTF16)] */
1534                 const char *account_name;/* [ref,charset(UTF16)] */
1535                 enum netr_SchannelType secure_channel_type;
1536                 const char *computer_name;/* [ref,charset(UTF16)] */
1537                 struct netr_Credential *credentials;/* [ref] */
1538                 uint32_t *negotiate_flags;/* [ref] */
1539         } in;
1540
1541         struct {
1542                 struct netr_Credential *return_credentials;/* [ref] */
1543                 uint32_t *rid;/* [ref] */
1544                 uint32_t *negotiate_flags;/* [ref] */
1545                 NTSTATUS result;
1546         } out;
1547
1548 };
1549
1550
1551 struct netr_DsRGetDCNameEx {
1552         struct {
1553                 const char *server_unc;/* [unique,charset(UTF16)] */
1554                 const char *domain_name;/* [unique,charset(UTF16)] */
1555                 struct GUID *domain_guid;/* [unique] */
1556                 const char *site_name;/* [unique,charset(UTF16)] */
1557                 uint32_t flags;
1558         } in;
1559
1560         struct {
1561                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1562                 WERROR result;
1563         } out;
1564
1565 };
1566
1567
1568 struct netr_DsRGetSiteName {
1569         struct {
1570                 const char *computer_name;/* [unique,charset(UTF16)] */
1571         } in;
1572
1573         struct {
1574                 const char **site;/* [ref,charset(UTF16)] */
1575                 WERROR result;
1576         } out;
1577
1578 };
1579
1580
1581 struct netr_LogonGetDomainInfo {
1582         struct {
1583                 const char *server_name;/* [ref,charset(UTF16)] */
1584                 const char *computer_name;/* [unique,charset(UTF16)] */
1585                 struct netr_Authenticator *credential;/* [ref] */
1586                 uint32_t level;
1587                 union netr_WorkstationInfo *query;/* [ref,switch_is(level)] */
1588                 struct netr_Authenticator *return_authenticator;/* [ref] */
1589         } in;
1590
1591         struct {
1592                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1593                 struct netr_Authenticator *return_authenticator;/* [ref] */
1594                 NTSTATUS result;
1595         } out;
1596
1597 };
1598
1599
1600 struct netr_ServerPasswordSet2 {
1601         struct {
1602                 const char *server_name;/* [unique,charset(UTF16)] */
1603                 const char *account_name;/* [ref,charset(UTF16)] */
1604                 enum netr_SchannelType secure_channel_type;
1605                 const char *computer_name;/* [ref,charset(UTF16)] */
1606                 struct netr_Authenticator *credential;/* [ref] */
1607                 struct netr_CryptPassword *new_password;/* [ref] */
1608         } in;
1609
1610         struct {
1611                 struct netr_Authenticator *return_authenticator;/* [ref] */
1612                 NTSTATUS result;
1613         } out;
1614
1615 };
1616
1617
1618 struct netr_ServerPasswordGet {
1619         struct {
1620                 const char *server_name;/* [unique,charset(UTF16)] */
1621                 const char *account_name;/* [ref,charset(UTF16)] */
1622                 enum netr_SchannelType secure_channel_type;
1623                 const char *computer_name;/* [ref,charset(UTF16)] */
1624                 struct netr_Authenticator *credential;/* [ref] */
1625         } in;
1626
1627         struct {
1628                 struct netr_Authenticator *return_authenticator;/* [ref] */
1629                 struct samr_Password *password;/* [ref] */
1630                 WERROR result;
1631         } out;
1632
1633 };
1634
1635
1636 struct netr_NETRLOGONSENDTOSAM {
1637         struct {
1638                 WERROR result;
1639         } out;
1640
1641 };
1642
1643
1644 struct netr_DsRAddressToSitenamesW {
1645         struct {
1646                 const char *server_name;/* [unique,charset(UTF16)] */
1647                 uint32_t count;/* [range(0,32000)] */
1648                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1649         } in;
1650
1651         struct {
1652                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1653                 WERROR result;
1654         } out;
1655
1656 };
1657
1658
1659 struct netr_DsRGetDCNameEx2 {
1660         struct {
1661                 const char *server_unc;/* [unique,charset(UTF16)] */
1662                 const char *client_account;/* [unique,charset(UTF16)] */
1663                 uint32_t mask;
1664                 const char *domain_name;/* [unique,charset(UTF16)] */
1665                 struct GUID *domain_guid;/* [unique] */
1666                 const char *site_name;/* [unique,charset(UTF16)] */
1667                 uint32_t flags;
1668         } in;
1669
1670         struct {
1671                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1672                 WERROR result;
1673         } out;
1674
1675 };
1676
1677
1678 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1679         struct {
1680                 WERROR result;
1681         } out;
1682
1683 };
1684
1685
1686 struct netr_NetrEnumerateTrustedDomainsEx {
1687         struct {
1688                 const char *server_name;/* [unique,charset(UTF16)] */
1689         } in;
1690
1691         struct {
1692                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1693                 WERROR result;
1694         } out;
1695
1696 };
1697
1698
1699 struct netr_DsRAddressToSitenamesExW {
1700         struct {
1701                 const char *server_name;/* [unique,charset(UTF16)] */
1702                 uint32_t count;/* [range(0,32000)] */
1703                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1704         } in;
1705
1706         struct {
1707                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1708                 WERROR result;
1709         } out;
1710
1711 };
1712
1713
1714 struct netr_DsrGetDcSiteCoverageW {
1715         struct {
1716                 const char *server_name;/* [unique,charset(UTF16)] */
1717         } in;
1718
1719         struct {
1720                 struct DcSitesCtr **ctr;/* [ref] */
1721                 WERROR result;
1722         } out;
1723
1724 };
1725
1726
1727 struct netr_LogonSamLogonEx {
1728         struct {
1729                 const char *server_name;/* [unique,charset(UTF16)] */
1730                 const char *computer_name;/* [unique,charset(UTF16)] */
1731                 enum netr_LogonInfoClass logon_level;
1732                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1733                 uint16_t validation_level;
1734                 uint32_t *flags;/* [ref] */
1735         } in;
1736
1737         struct {
1738                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1739                 uint8_t *authoritative;/* [ref] */
1740                 uint32_t *flags;/* [ref] */
1741                 NTSTATUS result;
1742         } out;
1743
1744 };
1745
1746
1747 struct netr_DsrEnumerateDomainTrusts {
1748         struct {
1749                 const char *server_name;/* [unique,charset(UTF16)] */
1750                 uint32_t trust_flags;
1751         } in;
1752
1753         struct {
1754                 struct netr_DomainTrustList *trusts;/* [ref] */
1755                 WERROR result;
1756         } out;
1757
1758 };
1759
1760
1761 struct netr_DsrDeregisterDNSHostRecords {
1762         struct {
1763                 const char *server_name;/* [unique,charset(UTF16)] */
1764                 const char *domain;/* [unique,charset(UTF16)] */
1765                 struct GUID *domain_guid;/* [unique] */
1766                 struct GUID *dsa_guid;/* [unique] */
1767                 const char *dns_host;/* [ref,charset(UTF16)] */
1768         } in;
1769
1770         struct {
1771                 WERROR result;
1772         } out;
1773
1774 };
1775
1776
1777 struct netr_ServerTrustPasswordsGet {
1778         struct {
1779                 const char *server_name;/* [unique,charset(UTF16)] */
1780                 const char *account_name;/* [ref,charset(UTF16)] */
1781                 enum netr_SchannelType secure_channel_type;
1782                 const char *computer_name;/* [ref,charset(UTF16)] */
1783                 struct netr_Authenticator *credential;/* [ref] */
1784         } in;
1785
1786         struct {
1787                 struct netr_Authenticator *return_authenticator;/* [ref] */
1788                 struct samr_Password *password;/* [ref] */
1789                 struct samr_Password *password2;/* [ref] */
1790                 NTSTATUS result;
1791         } out;
1792
1793 };
1794
1795
1796 struct netr_DsRGetForestTrustInformation {
1797         struct {
1798                 const char *server_name;/* [unique,charset(UTF16)] */
1799                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1800                 uint32_t flags;
1801         } in;
1802
1803         struct {
1804                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1805                 WERROR result;
1806         } out;
1807
1808 };
1809
1810
1811 struct netr_GetForestTrustInformation {
1812         struct {
1813                 const char *server_name;/* [unique,charset(UTF16)] */
1814                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1815                 struct netr_Authenticator *credential;/* [ref] */
1816                 uint32_t flags;
1817         } in;
1818
1819         struct {
1820                 struct netr_Authenticator *return_authenticator;/* [ref] */
1821                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1822                 WERROR result;
1823         } out;
1824
1825 };
1826
1827
1828 struct netr_LogonSamLogonWithFlags {
1829         struct {
1830                 const char *server_name;/* [unique,charset(UTF16)] */
1831                 const char *computer_name;/* [unique,charset(UTF16)] */
1832                 struct netr_Authenticator *credential;/* [unique] */
1833                 enum netr_LogonInfoClass logon_level;
1834                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1835                 uint16_t validation_level;
1836                 struct netr_Authenticator *return_authenticator;/* [unique] */
1837                 uint32_t *flags;/* [ref] */
1838         } in;
1839
1840         struct {
1841                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1842                 uint8_t *authoritative;/* [ref] */
1843                 struct netr_Authenticator *return_authenticator;/* [unique] */
1844                 uint32_t *flags;/* [ref] */
1845                 NTSTATUS result;
1846         } out;
1847
1848 };
1849
1850
1851 struct netr_ServerGetTrustInfo {
1852         struct {
1853                 const char *server_name;/* [unique,charset(UTF16)] */
1854                 const char *account_name;/* [ref,charset(UTF16)] */
1855                 enum netr_SchannelType secure_channel_type;
1856                 const char *computer_name;/* [ref,charset(UTF16)] */
1857                 struct netr_Authenticator *credential;/* [ref] */
1858         } in;
1859
1860         struct {
1861                 struct netr_Authenticator *return_authenticator;/* [ref] */
1862                 struct samr_Password *new_owf_password;/* [ref] */
1863                 struct samr_Password *old_owf_password;/* [ref] */
1864                 struct netr_TrustInfo **trust_info;/* [ref] */
1865                 NTSTATUS result;
1866         } out;
1867
1868 };
1869
1870 #endif /* _HEADER_netlogon */