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