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