9cf3828136b2c2bc40671d51d0b9fc572fe94ef4
[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_RETURN_DNS_NAME ( 0x40000000 )
834 #define DS_RETURN_FLAT_NAME ( 0x80000000 )
835
836 enum netr_DsRGetDCNameInfo_AddressType
837 #ifndef USE_UINT_ENUMS
838  {
839         DS_ADDRESS_TYPE_INET=1,
840         DS_ADDRESS_TYPE_NETBIOS=2
841 }
842 #else
843  { __donnot_use_enum_netr_DsRGetDCNameInfo_AddressType=0x7FFFFFFF}
844 #define DS_ADDRESS_TYPE_INET ( 1 )
845 #define DS_ADDRESS_TYPE_NETBIOS ( 2 )
846 #endif
847 ;
848
849 /* bitmap netr_DsR_DcFlags */
850 #define DS_SERVER_PDC ( NBT_SERVER_PDC )
851 #define DS_SERVER_GC ( NBT_SERVER_GC )
852 #define DS_SERVER_LDAP ( NBT_SERVER_LDAP )
853 #define DS_SERVER_DS ( NBT_SERVER_DS )
854 #define DS_SERVER_KDC ( NBT_SERVER_KDC )
855 #define DS_SERVER_TIMESERV ( NBT_SERVER_TIMESERV )
856 #define DS_SERVER_CLOSEST ( NBT_SERVER_CLOSEST )
857 #define DS_SERVER_WRITABLE ( NBT_SERVER_WRITABLE )
858 #define DS_SERVER_GOOD_TIMESERV ( NBT_SERVER_GOOD_TIMESERV )
859 #define DS_SERVER_NDNC ( NBT_SERVER_NDNC )
860 #define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( NBT_SERVER_SELECT_SECRET_DOMAIN_6 )
861 #define DS_SERVER_FULL_SECRET_DOMAIN_6 ( NBT_SERVER_FULL_SECRET_DOMAIN_6 )
862 #define DS_DNS_CONTROLLER ( 0x20000000 )
863 #define DS_DNS_DOMAIN ( 0x40000000 )
864 #define DS_DNS_FOREST ( 0x80000000 )
865
866 struct netr_DsRGetDCNameInfo {
867         const char *dc_unc;/* [unique,charset(UTF16)] */
868         const char *dc_address;/* [unique,charset(UTF16)] */
869         enum netr_DsRGetDCNameInfo_AddressType dc_address_type;
870         struct GUID domain_guid;
871         const char *domain_name;/* [unique,charset(UTF16)] */
872         const char *forest_name;/* [unique,charset(UTF16)] */
873         uint32_t dc_flags;
874         const char *dc_site_name;/* [unique,charset(UTF16)] */
875         const char *client_site_name;/* [unique,charset(UTF16)] */
876 }/* [public] */;
877
878 union netr_Capabilities {
879         uint32_t server_capabilities;/* [case] */
880 }/* [switch_type(uint32)] */;
881
882 /* bitmap netr_TrustFlags */
883 #define NETR_TRUST_FLAG_IN_FOREST ( 0x00000001 )
884 #define NETR_TRUST_FLAG_OUTBOUND ( 0x00000002 )
885 #define NETR_TRUST_FLAG_TREEROOT ( 0x00000004 )
886 #define NETR_TRUST_FLAG_PRIMARY ( 0x00000008 )
887 #define NETR_TRUST_FLAG_NATIVE ( 0x00000010 )
888 #define NETR_TRUST_FLAG_INBOUND ( 0x00000020 )
889 #define NETR_TRUST_FLAG_MIT_KRB5 ( 0x00000080 )
890 #define NETR_TRUST_FLAG_AES ( 0x00000100 )
891
892 /* bitmap netr_WorkstationFlags */
893 #define NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS ( 0x00000001 )
894 #define NETR_WS_FLAG_HANDLES_SPN_UPDATE ( 0x00000002 )
895
896 /* bitmap netr_SuiteMask */
897 #define NETR_VER_SUITE_BACKOFFICE ( 0x0004 )
898 #define NETR_VER_SUITE_BLADE ( 0x0400 )
899 #define NETR_VER_SUITE_COMPUTE_SERVER ( 0x4000 )
900 #define NETR_VER_SUITE_DATACENTER ( 0x0080 )
901 #define NETR_VER_SUITE_ENTERPRISE ( 0x0002 )
902 #define NETR_VER_SUITE_EMBEDDEDNT ( 0x0040 )
903 #define NETR_VER_SUITE_PERSONAL ( 0x0200 )
904 #define NETR_VER_SUITE_SINGLEUSERTS ( 0x0100 )
905 #define NETR_VER_SUITE_SMALLBUSINESS ( 0x0001 )
906 #define NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED ( 0x0020 )
907 #define NETR_VER_SUITE_STORAGE_SERVER ( 0x2000 )
908 #define NETR_VER_SUITE_TERMINAL ( 0x0010 )
909 #define NETR_VER_SUITE_WH_SERVER ( 0x8000 )
910
911 /* bitmap netr_ProductType */
912 #define NETR_VER_NT_DOMAIN_CONTROLLER ( 0x02 )
913 #define NETR_VER_NT_SERVER ( 0x03 )
914 #define NETR_VER_NT_WORKSTATION ( 0x01 )
915
916 struct netr_LsaPolicyInformation {
917         uint32_t policy_size;
918         uint8_t *policy;/* [unique,size_is(policy_size)] */
919 };
920
921 struct netr_OsVersionInfoEx {
922         uint32_t OSVersionInfoSize;/* [value(284)] */
923         uint32_t MajorVersion;
924         uint32_t MinorVersion;
925         uint32_t BuildNumber;
926         uint32_t PlatformId;
927         const char *CSDVersion;/* [charset(UTF16)] */
928         uint16_t ServicePackMajor;
929         uint16_t ServicePackMinor;
930         uint16_t SuiteMask;
931         uint8_t ProductType;
932         uint8_t Reserved;
933 };
934
935 struct netr_OsVersion {
936         uint32_t length;/* [value(142)] */
937         uint32_t dummy;/* [value(0)] */
938         uint32_t size;/* [value(142)] */
939         struct netr_OsVersionInfoEx os;
940 };
941
942 struct netr_OsVersionContainer {
943         uint16_t length;/* [value(os==NULL?0:284)] */
944         uint16_t size;/* [value(os==NULL?0:284)] */
945         struct netr_OsVersion *os;/* [unique] */
946 };
947
948 struct netr_WorkstationInformation {
949         struct netr_LsaPolicyInformation lsa_policy;
950         const char *dns_hostname;/* [unique,charset(UTF16)] */
951         const char *sitename;/* [unique,charset(UTF16)] */
952         const char *dummy1;/* [unique,charset(UTF16)] */
953         const char *dummy2;/* [unique,charset(UTF16)] */
954         const char *dummy3;/* [unique,charset(UTF16)] */
955         const char *dummy4;/* [unique,charset(UTF16)] */
956         struct netr_OsVersionContainer os_version;
957         struct lsa_String os_name;
958         struct lsa_String dummy_string3;
959         struct lsa_String dummy_string4;
960         uint32_t workstation_flags;
961         uint32_t dummy_long2;
962         uint32_t dummy_long3;
963         uint32_t dummy_long4;
964 };
965
966 union netr_WorkstationInfo {
967         struct netr_WorkstationInformation *workstation_info;/* [unique,case] */
968         struct netr_WorkstationInformation *lsa_policy_info;/* [unique,case(2)] */
969 };
970
971 struct netr_trust_extension {
972         uint32_t length;/* [value(8)] */
973         uint32_t dummy;/* [value(0)] */
974         uint32_t size;/* [value(8)] */
975         uint32_t flags;
976         uint32_t parent_index;
977         uint32_t trust_type;
978         uint32_t trust_attributes;
979 };
980
981 struct netr_trust_extension_container {
982         uint16_t length;
983         uint16_t size;/* [value(length)] */
984         struct netr_trust_extension *info;/* [unique] */
985 };
986
987 struct netr_OneDomainInfo {
988         struct lsa_String domainname;
989         struct lsa_String dns_domainname;
990         struct lsa_String dns_forestname;
991         struct GUID domain_guid;
992         struct dom_sid2 *domain_sid;/* [unique] */
993         struct netr_trust_extension_container trust_extension;
994         struct lsa_String dummy_string2;
995         struct lsa_String dummy_string3;
996         struct lsa_String dummy_string4;
997         uint32_t dummy_long1;
998         uint32_t dummy_long2;
999         uint32_t dummy_long3;
1000         uint32_t dummy_long4;
1001 };
1002
1003 struct netr_DomainInformation {
1004         struct netr_OneDomainInfo primary_domain;
1005         uint32_t trusted_domain_count;
1006         struct netr_OneDomainInfo *trusted_domains;/* [unique,size_is(trusted_domain_count)] */
1007         struct netr_LsaPolicyInformation lsa_policy;
1008         struct lsa_String dns_hostname;
1009         struct lsa_String dummy_string2;
1010         struct lsa_String dummy_string3;
1011         struct lsa_String dummy_string4;
1012         uint32_t workstation_flags;
1013         uint32_t supported_enc_types;
1014         uint32_t dummy_long3;
1015         uint32_t dummy_long4;
1016 };
1017
1018 union netr_DomainInfo {
1019         struct netr_DomainInformation *domain_info;/* [unique,case] */
1020         struct netr_LsaPolicyInformation *lsa_policy_info;/* [unique,case(2)] */
1021 };
1022
1023 struct netr_CryptPassword {
1024         uint8_t data[512];
1025         uint32_t length;
1026 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
1027
1028 struct netr_DsRAddressToSitenamesWCtr {
1029         uint32_t count;
1030         struct lsa_String *sitename;/* [unique,size_is(count)] */
1031 };
1032
1033 struct netr_DsRAddress {
1034         uint8_t *buffer;/* [unique,size_is(size)] */
1035         uint32_t size;
1036 };
1037
1038 enum netr_TrustType
1039 #ifndef USE_UINT_ENUMS
1040  {
1041         NETR_TRUST_TYPE_DOWNLEVEL=1,
1042         NETR_TRUST_TYPE_UPLEVEL=2,
1043         NETR_TRUST_TYPE_MIT=3,
1044         NETR_TRUST_TYPE_DCE=4
1045 }
1046 #else
1047  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
1048 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
1049 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
1050 #define NETR_TRUST_TYPE_MIT ( 3 )
1051 #define NETR_TRUST_TYPE_DCE ( 4 )
1052 #endif
1053 ;
1054
1055 /* bitmap netr_TrustAttributes */
1056 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
1057 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
1058 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
1059 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
1060 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
1061 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
1062 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
1063
1064 struct netr_DomainTrust {
1065         const char *netbios_name;/* [unique,charset(UTF16)] */
1066         const char *dns_name;/* [unique,charset(UTF16)] */
1067         uint32_t trust_flags;
1068         uint32_t parent_index;
1069         enum netr_TrustType trust_type;
1070         uint32_t trust_attributes;
1071         struct dom_sid2 *sid;/* [unique] */
1072         struct GUID guid;
1073 };
1074
1075 struct netr_DomainTrustList {
1076         uint32_t count;
1077         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
1078 };
1079
1080 struct netr_DsRAddressToSitenamesExWCtr {
1081         uint32_t count;
1082         struct lsa_String *sitename;/* [unique,size_is(count)] */
1083         struct lsa_String *subnetname;/* [unique,size_is(count)] */
1084 };
1085
1086 struct DcSitesCtr {
1087         uint32_t num_sites;
1088         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
1089 };
1090
1091 struct netr_TrustInfo {
1092         uint32_t count;
1093         uint32_t *data;/* [unique,size_is(count)] */
1094         uint32_t entry_count;
1095         struct lsa_String *entries;/* [unique,size_is(count)] */
1096 };
1097
1098
1099 struct netr_LogonUasLogon {
1100         struct {
1101                 const char *server_name;/* [unique,charset(UTF16)] */
1102                 const char *account_name;/* [ref,charset(UTF16)] */
1103                 const char *workstation;/* [ref,charset(UTF16)] */
1104         } in;
1105
1106         struct {
1107                 struct netr_UasInfo **info;/* [ref] */
1108                 WERROR result;
1109         } out;
1110
1111 };
1112
1113
1114 struct netr_LogonUasLogoff {
1115         struct {
1116                 const char *server_name;/* [unique,charset(UTF16)] */
1117                 const char *account_name;/* [ref,charset(UTF16)] */
1118                 const char *workstation;/* [ref,charset(UTF16)] */
1119         } in;
1120
1121         struct {
1122                 struct netr_UasLogoffInfo *info;/* [ref] */
1123                 WERROR result;
1124         } out;
1125
1126 };
1127
1128
1129 struct netr_LogonSamLogon {
1130         struct {
1131                 const char *server_name;/* [unique,charset(UTF16)] */
1132                 const char *computer_name;/* [unique,charset(UTF16)] */
1133                 struct netr_Authenticator *credential;/* [unique] */
1134                 enum netr_LogonInfoClass logon_level;
1135                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1136                 uint16_t validation_level;
1137                 struct netr_Authenticator *return_authenticator;/* [unique] */
1138         } in;
1139
1140         struct {
1141                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1142                 uint8_t *authoritative;/* [ref] */
1143                 struct netr_Authenticator *return_authenticator;/* [unique] */
1144                 NTSTATUS result;
1145         } out;
1146
1147 };
1148
1149
1150 struct netr_LogonSamLogoff {
1151         struct {
1152                 const char *server_name;/* [unique,charset(UTF16)] */
1153                 const char *computer_name;/* [unique,charset(UTF16)] */
1154                 struct netr_Authenticator *credential;/* [unique] */
1155                 enum netr_LogonInfoClass logon_level;
1156                 union netr_LogonLevel logon;/* [switch_is(logon_level)] */
1157                 struct netr_Authenticator *return_authenticator;/* [unique] */
1158         } in;
1159
1160         struct {
1161                 struct netr_Authenticator *return_authenticator;/* [unique] */
1162                 NTSTATUS result;
1163         } out;
1164
1165 };
1166
1167
1168 struct netr_ServerReqChallenge {
1169         struct {
1170                 const char *server_name;/* [unique,charset(UTF16)] */
1171                 const char *computer_name;/* [ref,charset(UTF16)] */
1172                 struct netr_Credential *credentials;/* [ref] */
1173         } in;
1174
1175         struct {
1176                 struct netr_Credential *return_credentials;/* [ref] */
1177                 NTSTATUS result;
1178         } out;
1179
1180 };
1181
1182
1183 struct netr_ServerAuthenticate {
1184         struct {
1185                 const char *server_name;/* [unique,charset(UTF16)] */
1186                 const char *account_name;/* [ref,charset(UTF16)] */
1187                 enum netr_SchannelType secure_channel_type;
1188                 const char *computer_name;/* [ref,charset(UTF16)] */
1189                 struct netr_Credential *credentials;/* [ref] */
1190         } in;
1191
1192         struct {
1193                 struct netr_Credential *return_credentials;/* [ref] */
1194                 NTSTATUS result;
1195         } out;
1196
1197 };
1198
1199
1200 struct netr_ServerPasswordSet {
1201         struct {
1202                 const char *server_name;/* [unique,charset(UTF16)] */
1203                 const char *account_name;/* [ref,charset(UTF16)] */
1204                 enum netr_SchannelType secure_channel_type;
1205                 const char *computer_name;/* [ref,charset(UTF16)] */
1206                 struct netr_Authenticator *credential;/* [ref] */
1207                 struct samr_Password *new_password;/* [ref] */
1208         } in;
1209
1210         struct {
1211                 struct netr_Authenticator *return_authenticator;/* [ref] */
1212                 NTSTATUS result;
1213         } out;
1214
1215 };
1216
1217
1218 struct netr_DatabaseDeltas {
1219         struct {
1220                 const char *logon_server;/* [ref,charset(UTF16)] */
1221                 const char *computername;/* [ref,charset(UTF16)] */
1222                 struct netr_Authenticator *credential;/* [ref] */
1223                 enum netr_SamDatabaseID database_id;
1224                 uint32_t preferredmaximumlength;
1225                 struct netr_Authenticator *return_authenticator;/* [ref] */
1226                 uint64_t *sequence_num;/* [ref] */
1227         } in;
1228
1229         struct {
1230                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1231                 struct netr_Authenticator *return_authenticator;/* [ref] */
1232                 uint64_t *sequence_num;/* [ref] */
1233                 NTSTATUS result;
1234         } out;
1235
1236 };
1237
1238
1239 struct netr_DatabaseSync {
1240         struct {
1241                 const char *logon_server;/* [ref,charset(UTF16)] */
1242                 const char *computername;/* [ref,charset(UTF16)] */
1243                 struct netr_Authenticator *credential;/* [ref] */
1244                 enum netr_SamDatabaseID database_id;
1245                 uint32_t preferredmaximumlength;
1246                 struct netr_Authenticator *return_authenticator;/* [ref] */
1247                 uint32_t *sync_context;/* [ref] */
1248         } in;
1249
1250         struct {
1251                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1252                 struct netr_Authenticator *return_authenticator;/* [ref] */
1253                 uint32_t *sync_context;/* [ref] */
1254                 NTSTATUS result;
1255         } out;
1256
1257 };
1258
1259
1260 struct netr_AccountDeltas {
1261         struct {
1262                 const char *logon_server;/* [unique,charset(UTF16)] */
1263                 const char *computername;/* [ref,charset(UTF16)] */
1264                 struct netr_Authenticator credential;
1265                 struct netr_UAS_INFO_0 uas;
1266                 uint32_t count;
1267                 uint32_t level;
1268                 uint32_t buffersize;
1269                 struct netr_Authenticator *return_authenticator;/* [ref] */
1270         } in;
1271
1272         struct {
1273                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1274                 uint32_t *count_returned;/* [ref] */
1275                 uint32_t *total_entries;/* [ref] */
1276                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1277                 struct netr_Authenticator *return_authenticator;/* [ref] */
1278                 NTSTATUS result;
1279         } out;
1280
1281 };
1282
1283
1284 struct netr_AccountSync {
1285         struct {
1286                 const char *logon_server;/* [unique,charset(UTF16)] */
1287                 const char *computername;/* [ref,charset(UTF16)] */
1288                 struct netr_Authenticator credential;
1289                 uint32_t reference;
1290                 uint32_t level;
1291                 uint32_t buffersize;
1292                 struct netr_Authenticator *return_authenticator;/* [ref] */
1293                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1294         } in;
1295
1296         struct {
1297                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1298                 uint32_t *count_returned;/* [ref] */
1299                 uint32_t *total_entries;/* [ref] */
1300                 uint32_t *next_reference;/* [ref] */
1301                 struct netr_Authenticator *return_authenticator;/* [ref] */
1302                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1303                 NTSTATUS result;
1304         } out;
1305
1306 };
1307
1308
1309 struct netr_GetDcName {
1310         struct {
1311                 const char *logon_server;/* [ref,charset(UTF16)] */
1312                 const char *domainname;/* [unique,charset(UTF16)] */
1313         } in;
1314
1315         struct {
1316                 const char **dcname;/* [ref,charset(UTF16)] */
1317                 WERROR result;
1318         } out;
1319
1320 };
1321
1322
1323 struct netr_LogonControl {
1324         struct {
1325                 const char *logon_server;/* [unique,charset(UTF16)] */
1326                 enum netr_LogonControlCode function_code;
1327                 uint32_t level;
1328         } in;
1329
1330         struct {
1331                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1332                 WERROR result;
1333         } out;
1334
1335 };
1336
1337
1338 struct netr_GetAnyDCName {
1339         struct {
1340                 const char *logon_server;/* [unique,charset(UTF16)] */
1341                 const char *domainname;/* [unique,charset(UTF16)] */
1342         } in;
1343
1344         struct {
1345                 const char **dcname;/* [ref,charset(UTF16)] */
1346                 WERROR result;
1347         } out;
1348
1349 };
1350
1351
1352 struct netr_LogonControl2 {
1353         struct {
1354                 const char *logon_server;/* [unique,charset(UTF16)] */
1355                 enum netr_LogonControlCode function_code;
1356                 uint32_t level;
1357                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1358         } in;
1359
1360         struct {
1361                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1362                 WERROR result;
1363         } out;
1364
1365 };
1366
1367
1368 struct netr_ServerAuthenticate2 {
1369         struct {
1370                 const char *server_name;/* [unique,charset(UTF16)] */
1371                 const char *account_name;/* [ref,charset(UTF16)] */
1372                 enum netr_SchannelType secure_channel_type;
1373                 const char *computer_name;/* [ref,charset(UTF16)] */
1374                 struct netr_Credential *credentials;/* [ref] */
1375                 uint32_t *negotiate_flags;/* [ref] */
1376         } in;
1377
1378         struct {
1379                 struct netr_Credential *return_credentials;/* [ref] */
1380                 uint32_t *negotiate_flags;/* [ref] */
1381                 NTSTATUS result;
1382         } out;
1383
1384 };
1385
1386
1387 struct netr_DatabaseSync2 {
1388         struct {
1389                 const char *logon_server;/* [ref,charset(UTF16)] */
1390                 const char *computername;/* [ref,charset(UTF16)] */
1391                 struct netr_Authenticator *credential;/* [ref] */
1392                 enum netr_SamDatabaseID database_id;
1393                 enum SyncStateEnum restart_state;
1394                 uint32_t preferredmaximumlength;
1395                 struct netr_Authenticator *return_authenticator;/* [ref] */
1396                 uint32_t *sync_context;/* [ref] */
1397         } in;
1398
1399         struct {
1400                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1401                 struct netr_Authenticator *return_authenticator;/* [ref] */
1402                 uint32_t *sync_context;/* [ref] */
1403                 NTSTATUS result;
1404         } out;
1405
1406 };
1407
1408
1409 struct netr_DatabaseRedo {
1410         struct {
1411                 const char *logon_server;/* [ref,charset(UTF16)] */
1412                 const char *computername;/* [ref,charset(UTF16)] */
1413                 struct netr_Authenticator *credential;/* [ref] */
1414                 struct netr_ChangeLogEntry change_log_entry;/* [subcontext_size(change_log_entry_size),subcontext(4)] */
1415                 uint32_t change_log_entry_size;/* [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */
1416                 struct netr_Authenticator *return_authenticator;/* [ref] */
1417         } in;
1418
1419         struct {
1420                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1421                 struct netr_Authenticator *return_authenticator;/* [ref] */
1422                 NTSTATUS result;
1423         } out;
1424
1425 };
1426
1427
1428 struct netr_LogonControl2Ex {
1429         struct {
1430                 const char *logon_server;/* [unique,charset(UTF16)] */
1431                 enum netr_LogonControlCode function_code;
1432                 uint32_t level;
1433                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1434         } in;
1435
1436         struct {
1437                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1438                 WERROR result;
1439         } out;
1440
1441 };
1442
1443
1444 struct netr_NetrEnumerateTrustedDomains {
1445         struct {
1446                 const char *server_name;/* [unique,charset(UTF16)] */
1447         } in;
1448
1449         struct {
1450                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1451                 WERROR result;
1452         } out;
1453
1454 };
1455
1456
1457 struct netr_DsRGetDCName {
1458         struct {
1459                 const char *server_unc;/* [unique,charset(UTF16)] */
1460                 const char *domain_name;/* [unique,charset(UTF16)] */
1461                 struct GUID *domain_guid;/* [unique] */
1462                 struct GUID *site_guid;/* [unique] */
1463                 uint32_t flags;
1464         } in;
1465
1466         struct {
1467                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1468                 WERROR result;
1469         } out;
1470
1471 };
1472
1473
1474 struct netr_LogonGetCapabilities {
1475         struct {
1476                 const char *server_name;/* [ref,charset(UTF16)] */
1477                 const char *computer_name;/* [unique,charset(UTF16)] */
1478                 struct netr_Authenticator *credential;/* [ref] */
1479                 uint32_t query_level;
1480                 struct netr_Authenticator *return_authenticator;/* [ref] */
1481         } in;
1482
1483         struct {
1484                 union netr_Capabilities *capabilities;/* [ref,switch_is(query_level)] */
1485                 struct netr_Authenticator *return_authenticator;/* [ref] */
1486                 NTSTATUS result;
1487         } out;
1488
1489 };
1490
1491
1492 struct netr_NETRLOGONSETSERVICEBITS {
1493         struct {
1494                 WERROR result;
1495         } out;
1496
1497 };
1498
1499
1500 struct netr_LogonGetTrustRid {
1501         struct {
1502                 const char *server_name;/* [unique,charset(UTF16)] */
1503                 const char *domain_name;/* [unique,charset(UTF16)] */
1504         } in;
1505
1506         struct {
1507                 uint32_t *rid;/* [ref] */
1508                 WERROR result;
1509         } out;
1510
1511 };
1512
1513
1514 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1515         struct {
1516                 WERROR result;
1517         } out;
1518
1519 };
1520
1521
1522 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1523         struct {
1524                 WERROR result;
1525         } out;
1526
1527 };
1528
1529
1530 struct netr_ServerAuthenticate3 {
1531         struct {
1532                 const char *server_name;/* [unique,charset(UTF16)] */
1533                 const char *account_name;/* [ref,charset(UTF16)] */
1534                 enum netr_SchannelType secure_channel_type;
1535                 const char *computer_name;/* [ref,charset(UTF16)] */
1536                 struct netr_Credential *credentials;/* [ref] */
1537                 uint32_t *negotiate_flags;/* [ref] */
1538         } in;
1539
1540         struct {
1541                 struct netr_Credential *return_credentials;/* [ref] */
1542                 uint32_t *rid;/* [ref] */
1543                 uint32_t *negotiate_flags;/* [ref] */
1544                 NTSTATUS result;
1545         } out;
1546
1547 };
1548
1549
1550 struct netr_DsRGetDCNameEx {
1551         struct {
1552                 const char *server_unc;/* [unique,charset(UTF16)] */
1553                 const char *domain_name;/* [unique,charset(UTF16)] */
1554                 struct GUID *domain_guid;/* [unique] */
1555                 const char *site_name;/* [unique,charset(UTF16)] */
1556                 uint32_t flags;
1557         } in;
1558
1559         struct {
1560                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1561                 WERROR result;
1562         } out;
1563
1564 };
1565
1566
1567 struct netr_DsRGetSiteName {
1568         struct {
1569                 const char *computer_name;/* [unique,charset(UTF16)] */
1570         } in;
1571
1572         struct {
1573                 const char **site;/* [ref,charset(UTF16)] */
1574                 WERROR result;
1575         } out;
1576
1577 };
1578
1579
1580 struct netr_LogonGetDomainInfo {
1581         struct {
1582                 const char *server_name;/* [ref,charset(UTF16)] */
1583                 const char *computer_name;/* [unique,charset(UTF16)] */
1584                 struct netr_Authenticator *credential;/* [ref] */
1585                 uint32_t level;
1586                 union netr_WorkstationInfo *query;/* [ref,switch_is(level)] */
1587                 struct netr_Authenticator *return_authenticator;/* [ref] */
1588         } in;
1589
1590         struct {
1591                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1592                 struct netr_Authenticator *return_authenticator;/* [ref] */
1593                 NTSTATUS result;
1594         } out;
1595
1596 };
1597
1598
1599 struct netr_ServerPasswordSet2 {
1600         struct {
1601                 const char *server_name;/* [unique,charset(UTF16)] */
1602                 const char *account_name;/* [ref,charset(UTF16)] */
1603                 enum netr_SchannelType secure_channel_type;
1604                 const char *computer_name;/* [ref,charset(UTF16)] */
1605                 struct netr_Authenticator *credential;/* [ref] */
1606                 struct netr_CryptPassword *new_password;/* [ref] */
1607         } in;
1608
1609         struct {
1610                 struct netr_Authenticator *return_authenticator;/* [ref] */
1611                 NTSTATUS result;
1612         } out;
1613
1614 };
1615
1616
1617 struct netr_ServerPasswordGet {
1618         struct {
1619                 const char *server_name;/* [unique,charset(UTF16)] */
1620                 const char *account_name;/* [ref,charset(UTF16)] */
1621                 enum netr_SchannelType secure_channel_type;
1622                 const char *computer_name;/* [ref,charset(UTF16)] */
1623                 struct netr_Authenticator *credential;/* [ref] */
1624         } in;
1625
1626         struct {
1627                 struct netr_Authenticator *return_authenticator;/* [ref] */
1628                 struct samr_Password *password;/* [ref] */
1629                 WERROR result;
1630         } out;
1631
1632 };
1633
1634
1635 struct netr_NETRLOGONSENDTOSAM {
1636         struct {
1637                 WERROR result;
1638         } out;
1639
1640 };
1641
1642
1643 struct netr_DsRAddressToSitenamesW {
1644         struct {
1645                 const char *server_name;/* [unique,charset(UTF16)] */
1646                 uint32_t count;/* [range(0,32000)] */
1647                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1648         } in;
1649
1650         struct {
1651                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1652                 WERROR result;
1653         } out;
1654
1655 };
1656
1657
1658 struct netr_DsRGetDCNameEx2 {
1659         struct {
1660                 const char *server_unc;/* [unique,charset(UTF16)] */
1661                 const char *client_account;/* [unique,charset(UTF16)] */
1662                 uint32_t mask;
1663                 const char *domain_name;/* [unique,charset(UTF16)] */
1664                 struct GUID *domain_guid;/* [unique] */
1665                 const char *site_name;/* [unique,charset(UTF16)] */
1666                 uint32_t flags;
1667         } in;
1668
1669         struct {
1670                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1671                 WERROR result;
1672         } out;
1673
1674 };
1675
1676
1677 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1678         struct {
1679                 WERROR result;
1680         } out;
1681
1682 };
1683
1684
1685 struct netr_NetrEnumerateTrustedDomainsEx {
1686         struct {
1687                 const char *server_name;/* [unique,charset(UTF16)] */
1688         } in;
1689
1690         struct {
1691                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1692                 WERROR result;
1693         } out;
1694
1695 };
1696
1697
1698 struct netr_DsRAddressToSitenamesExW {
1699         struct {
1700                 const char *server_name;/* [unique,charset(UTF16)] */
1701                 uint32_t count;/* [range(0,32000)] */
1702                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1703         } in;
1704
1705         struct {
1706                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1707                 WERROR result;
1708         } out;
1709
1710 };
1711
1712
1713 struct netr_DsrGetDcSiteCoverageW {
1714         struct {
1715                 const char *server_name;/* [unique,charset(UTF16)] */
1716         } in;
1717
1718         struct {
1719                 struct DcSitesCtr **ctr;/* [ref] */
1720                 WERROR result;
1721         } out;
1722
1723 };
1724
1725
1726 struct netr_LogonSamLogonEx {
1727         struct {
1728                 const char *server_name;/* [unique,charset(UTF16)] */
1729                 const char *computer_name;/* [unique,charset(UTF16)] */
1730                 enum netr_LogonInfoClass logon_level;
1731                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1732                 uint16_t validation_level;
1733                 uint32_t *flags;/* [ref] */
1734         } in;
1735
1736         struct {
1737                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1738                 uint8_t *authoritative;/* [ref] */
1739                 uint32_t *flags;/* [ref] */
1740                 NTSTATUS result;
1741         } out;
1742
1743 };
1744
1745
1746 struct netr_DsrEnumerateDomainTrusts {
1747         struct {
1748                 const char *server_name;/* [unique,charset(UTF16)] */
1749                 uint32_t trust_flags;
1750         } in;
1751
1752         struct {
1753                 struct netr_DomainTrustList *trusts;/* [ref] */
1754                 WERROR result;
1755         } out;
1756
1757 };
1758
1759
1760 struct netr_DsrDeregisterDNSHostRecords {
1761         struct {
1762                 const char *server_name;/* [unique,charset(UTF16)] */
1763                 const char *domain;/* [unique,charset(UTF16)] */
1764                 struct GUID *domain_guid;/* [unique] */
1765                 struct GUID *dsa_guid;/* [unique] */
1766                 const char *dns_host;/* [ref,charset(UTF16)] */
1767         } in;
1768
1769         struct {
1770                 WERROR result;
1771         } out;
1772
1773 };
1774
1775
1776 struct netr_ServerTrustPasswordsGet {
1777         struct {
1778                 const char *server_name;/* [unique,charset(UTF16)] */
1779                 const char *account_name;/* [ref,charset(UTF16)] */
1780                 enum netr_SchannelType secure_channel_type;
1781                 const char *computer_name;/* [ref,charset(UTF16)] */
1782                 struct netr_Authenticator *credential;/* [ref] */
1783         } in;
1784
1785         struct {
1786                 struct netr_Authenticator *return_authenticator;/* [ref] */
1787                 struct samr_Password *password;/* [ref] */
1788                 struct samr_Password *password2;/* [ref] */
1789                 NTSTATUS result;
1790         } out;
1791
1792 };
1793
1794
1795 struct netr_DsRGetForestTrustInformation {
1796         struct {
1797                 const char *server_name;/* [unique,charset(UTF16)] */
1798                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1799                 uint32_t flags;
1800         } in;
1801
1802         struct {
1803                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1804                 WERROR result;
1805         } out;
1806
1807 };
1808
1809
1810 struct netr_GetForestTrustInformation {
1811         struct {
1812                 const char *server_name;/* [unique,charset(UTF16)] */
1813                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1814                 struct netr_Authenticator *credential;/* [ref] */
1815                 uint32_t flags;
1816         } in;
1817
1818         struct {
1819                 struct netr_Authenticator *return_authenticator;/* [ref] */
1820                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1821                 WERROR result;
1822         } out;
1823
1824 };
1825
1826
1827 struct netr_LogonSamLogonWithFlags {
1828         struct {
1829                 const char *server_name;/* [unique,charset(UTF16)] */
1830                 const char *computer_name;/* [unique,charset(UTF16)] */
1831                 struct netr_Authenticator *credential;/* [unique] */
1832                 enum netr_LogonInfoClass logon_level;
1833                 union netr_LogonLevel *logon;/* [ref,switch_is(logon_level)] */
1834                 uint16_t validation_level;
1835                 struct netr_Authenticator *return_authenticator;/* [unique] */
1836                 uint32_t *flags;/* [ref] */
1837         } in;
1838
1839         struct {
1840                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1841                 uint8_t *authoritative;/* [ref] */
1842                 struct netr_Authenticator *return_authenticator;/* [unique] */
1843                 uint32_t *flags;/* [ref] */
1844                 NTSTATUS result;
1845         } out;
1846
1847 };
1848
1849
1850 struct netr_ServerGetTrustInfo {
1851         struct {
1852                 const char *server_name;/* [unique,charset(UTF16)] */
1853                 const char *account_name;/* [ref,charset(UTF16)] */
1854                 enum netr_SchannelType secure_channel_type;
1855                 const char *computer_name;/* [ref,charset(UTF16)] */
1856                 struct netr_Authenticator *credential;/* [ref] */
1857         } in;
1858
1859         struct {
1860                 struct netr_Authenticator *return_authenticator;/* [ref] */
1861                 struct samr_Password *new_owf_password;/* [ref] */
1862                 struct samr_Password *old_owf_password;/* [ref] */
1863                 struct netr_TrustInfo **trust_info;/* [ref] */
1864                 NTSTATUS result;
1865         } out;
1866
1867 };
1868
1869 #endif /* _HEADER_netlogon */