Re-run make idl.
[tprouty/samba.git] / source / librpc / gen_ndr / netlogon.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "librpc/gen_ndr/lsa.h"
6 #include "librpc/gen_ndr/samr.h"
7 #include "librpc/gen_ndr/security.h"
8 #ifndef _HEADER_netlogon
9 #define _HEADER_netlogon
10
11 #define NETLOGON_NEG_ARCFOUR    ( 0x00000004 )
12 #define NETLOGON_NEG_128BIT     ( 0x00004000 )
13 #define NETLOGON_NEG_SCHANNEL   ( 0x40000000 )
14 #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) )
15 #define DS_GFTI_UPDATE_TDO      ( 0x1 )
16 struct netr_UasInfo {
17         const char *account_name;/* [unique,charset(UTF16)] */
18         uint32_t priv;
19         uint32_t auth_flags;
20         uint32_t logon_count;
21         uint32_t bad_pw_count;
22         time_t last_logon;
23         time_t last_logoff;
24         time_t logoff_time;
25         time_t kickoff_time;
26         uint32_t password_age;
27         time_t pw_can_change;
28         time_t pw_must_change;
29         const char *computer;/* [unique,charset(UTF16)] */
30         const char *domain;/* [unique,charset(UTF16)] */
31         const char *script_path;/* [unique,charset(UTF16)] */
32         uint32_t unknown;
33 };
34
35 struct netr_UasLogoffInfo {
36         uint32_t duration;
37         uint16_t logon_count;
38 };
39
40 struct netr_AcctLockStr {
41         uint16_t size;
42         uint16_t length;
43         uint16_t *bindata;/* [unique,length_is(length/2),size_is(size/2)] */
44 };
45
46 /* bitmap netr_LogonParameterControl */
47 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED ( 0x00000002 )
48 #define MSV1_0_UPDATE_LOGON_STATISTICS ( 0x00000004 )
49 #define MSV1_0_RETURN_USER_PARAMETERS ( 0x00000008 )
50 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT ( 0x00000020 )
51 #define MSV1_0_RETURN_PROFILE_PATH ( 0x00000200 )
52 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT ( 0x00000800 )
53
54 struct netr_IdentityInfo {
55         struct lsa_String domain_name;
56         uint32_t parameter_control;
57         uint32_t logon_id_low;
58         uint32_t logon_id_high;
59         struct lsa_String account_name;
60         struct lsa_String workstation;
61 };
62
63 struct netr_PasswordInfo {
64         struct netr_IdentityInfo identity_info;
65         struct samr_Password lmpassword;
66         struct samr_Password ntpassword;
67 };
68
69 struct netr_ChallengeResponse {
70         uint16_t length;
71         uint16_t size;/* [value(length)] */
72         uint8_t *data;/* [unique,length_is(length),size_is(length)] */
73 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
74
75 struct netr_NetworkInfo {
76         struct netr_IdentityInfo identity_info;
77         uint8_t challenge[8];
78         struct netr_ChallengeResponse nt;
79         struct netr_ChallengeResponse lm;
80 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
81
82 union netr_LogonInfo {
83         struct netr_PasswordInfo *password;/* [unique,case] */
84         struct netr_NetworkInfo *network;/* [unique,case(2)] */
85 }/* [public,switch_type(uint16)] */;
86
87 struct netr_UserSessionKey {
88         uint8_t key[16];
89 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
90
91 struct netr_LMSessionKey {
92         uint8_t key[8];
93 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
94
95 /* bitmap netr_UserFlags */
96 #define NETLOGON_GUEST ( 0x00000001 )
97 #define NETLOGON_NOENCRYPTION ( 0x00000002 )
98 #define NETLOGON_CACHED_ACCOUNT ( 0x00000004 )
99 #define NETLOGON_USED_LM_PASSWORD ( 0x00000008 )
100 #define NETLOGON_EXTRA_SIDS ( 0x00000020 )
101 #define NETLOGON_SUBAUTH_SESSION_KEY ( 0x00000040 )
102 #define NETLOGON_SERVER_TRUST_ACCOUNT ( 0x00000080 )
103 #define NETLOGON_NTLMV2_ENABLED ( 0x00000100 )
104 #define NETLOGON_RESOURCE_GROUPS ( 0x00000200 )
105 #define NETLOGON_PROFILE_PATH_RETURNED ( 0x00000400 )
106 #define NETLOGON_GRACE_LOGON ( 0x01000000 )
107
108 struct netr_SamBaseInfo {
109         NTTIME last_logon;
110         NTTIME last_logoff;
111         NTTIME acct_expiry;
112         NTTIME last_password_change;
113         NTTIME allow_password_change;
114         NTTIME force_password_change;
115         struct lsa_String account_name;
116         struct lsa_String full_name;
117         struct lsa_String logon_script;
118         struct lsa_String profile_path;
119         struct lsa_String home_directory;
120         struct lsa_String home_drive;
121         uint16_t logon_count;
122         uint16_t bad_password_count;
123         uint32_t rid;
124         uint32_t primary_gid;
125         struct samr_RidWithAttributeArray groups;
126         uint32_t user_flags;
127         struct netr_UserSessionKey key;
128         struct lsa_StringLarge logon_server;
129         struct lsa_StringLarge domain;
130         struct dom_sid2 *domain_sid;/* [unique] */
131         struct netr_LMSessionKey LMSessKey;
132         uint32_t acct_flags;
133         uint32_t unknown[7];
134 };
135
136 struct netr_SamInfo2 {
137         struct netr_SamBaseInfo base;
138 };
139
140 struct netr_SidAttr {
141         struct dom_sid2 *sid;/* [unique] */
142         uint32_t attributes;
143 };
144
145 struct netr_SamInfo3 {
146         struct netr_SamBaseInfo base;
147         uint32_t sidcount;
148         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
149 }/* [public] */;
150
151 struct netr_SamInfo6 {
152         struct netr_SamBaseInfo base;
153         uint32_t sidcount;
154         struct netr_SidAttr *sids;/* [unique,size_is(sidcount)] */
155         struct lsa_String forest;
156         struct lsa_String principle;
157         uint32_t unknown4[20];
158 };
159
160 struct netr_PacInfo {
161         uint32_t pac_size;
162         uint8_t *pac;/* [unique,size_is(pac_size)] */
163         struct lsa_String logon_domain;
164         struct lsa_String logon_server;
165         struct lsa_String principal_name;
166         uint32_t auth_size;
167         uint8_t *auth;/* [unique,size_is(auth_size)] */
168         struct netr_UserSessionKey user_session_key;
169         uint32_t expansionroom[10];
170         struct lsa_String unknown1;
171         struct lsa_String unknown2;
172         struct lsa_String unknown3;
173         struct lsa_String unknown4;
174 };
175
176 union netr_Validation {
177         struct netr_SamInfo2 *sam2;/* [unique,case(2)] */
178         struct netr_SamInfo3 *sam3;/* [unique,case(3)] */
179         struct netr_PacInfo *pac;/* [unique,case(4)] */
180         struct netr_SamInfo6 *sam6;/* [unique,case(6)] */
181 }/* [public,switch_type(uint16)] */;
182
183 struct netr_Credential {
184         uint8_t data[8];
185 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
186
187 struct netr_Authenticator {
188         struct netr_Credential cred;
189         time_t timestamp;
190 }/* [public] */;
191
192 enum netr_LogonLevel
193 #ifndef USE_UINT_ENUMS
194  {
195         INTERACTIVE_LOGON_TYPE=1,
196         NET_LOGON_TYPE=2
197 }
198 #else
199  { __donnot_use_enum_netr_LogonLevel=0x7FFFFFFF}
200 #define INTERACTIVE_LOGON_TYPE ( 1 )
201 #define NET_LOGON_TYPE ( 2 )
202 #endif
203 ;
204
205 enum netr_SchannelType;
206
207 enum netr_SamDatabaseID;
208
209 struct netr_DELTA_DELETE_USER {
210         const char *account_name;/* [unique,charset(UTF16)] */
211         struct lsa_String unknown1;
212         struct lsa_String unknown2;
213         struct lsa_String unknown3;
214         struct lsa_String unknown4;
215         uint32_t unknown5;
216         uint32_t unknown6;
217         uint32_t unknown7;
218         uint32_t unknown8;
219 };
220
221 struct netr_USER_KEY16 {
222         uint16_t length;
223         uint16_t size;/* [value(length)] */
224         uint32_t flags;
225         struct samr_Password pwd;
226 };
227
228 struct netr_PasswordHistory {
229         uint16_t nt_length;
230         uint16_t nt_size;/* [value(nt_length)] */
231         uint32_t nt_flags;
232         uint16_t lm_length;
233         uint16_t lm_size;/* [value(lm_length)] */
234         uint32_t lm_flags;
235         uint8_t *nt_history;
236         uint8_t *lm_history;
237 };
238
239 struct netr_USER_KEYS2 {
240         struct netr_USER_KEY16 lmpassword;
241         struct netr_USER_KEY16 ntpassword;
242         struct netr_PasswordHistory history;
243 };
244
245 struct netr_USER_KEY_UNION {
246         struct netr_USER_KEYS2 keys2;
247 };
248
249 struct netr_USER_KEYS {
250         uint32_t version;
251         struct netr_USER_KEY_UNION keys;
252 }/* [public] */;
253
254 struct netr_USER_PRIVATE_INFO {
255         uint8_t SensitiveDataFlag;
256         uint32_t DataLength;
257         uint8_t *SensitiveData;/* [unique,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(DataLength)] */
258 };
259
260 struct netr_DELTA_USER {
261         struct lsa_String account_name;
262         struct lsa_String full_name;
263         uint32_t rid;
264         uint32_t primary_gid;
265         struct lsa_String home_directory;
266         struct lsa_String home_drive;
267         struct lsa_String logon_script;
268         struct lsa_String description;
269         struct lsa_String workstations;
270         NTTIME last_logon;
271         NTTIME last_logoff;
272         struct samr_LogonHours logon_hours;
273         uint16_t bad_password_count;
274         uint16_t logon_count;
275         NTTIME last_password_change;
276         NTTIME acct_expiry;
277         uint32_t acct_flags;
278         struct samr_Password lmpassword;
279         struct samr_Password ntpassword;
280         uint8_t nt_password_present;
281         uint8_t lm_password_present;
282         uint8_t password_expired;
283         struct lsa_String comment;
284         struct lsa_String parameters;
285         uint16_t country_code;
286         uint16_t code_page;
287         struct netr_USER_PRIVATE_INFO user_private_info;
288         uint32_t SecurityInformation;
289         struct sec_desc_buf sdbuf;
290         struct lsa_String profile_path;
291         struct lsa_String unknown2;
292         struct lsa_String unknown3;
293         struct lsa_String unknown4;
294         uint32_t unknown5;
295         uint32_t unknown6;
296         uint32_t unknown7;
297         uint32_t unknown8;
298 };
299
300 struct netr_DELTA_DOMAIN {
301         struct lsa_String domain_name;
302         struct lsa_String comment;
303         int64_t force_logoff_time;
304         uint16_t min_password_length;
305         uint16_t password_history_length;
306         int64_t max_password_age;
307         int64_t min_password_age;
308         uint64_t sequence_num;
309         NTTIME domain_create_time;
310         uint32_t SecurityInformation;
311         struct sec_desc_buf sdbuf;
312         struct netr_AcctLockStr account_lockout;
313         struct lsa_String unknown2;
314         struct lsa_String unknown3;
315         struct lsa_String unknown4;
316         uint32_t logon_to_chgpass;
317         uint32_t unknown6;
318         uint32_t unknown7;
319         uint32_t unknown8;
320 };
321
322 struct netr_DELTA_GROUP {
323         struct lsa_String group_name;
324         uint32_t rid;
325         uint32_t attributes;
326         struct lsa_String description;
327         uint32_t SecurityInformation;
328         struct sec_desc_buf sdbuf;
329         struct lsa_String unknown1;
330         struct lsa_String unknown2;
331         struct lsa_String unknown3;
332         struct lsa_String unknown4;
333         uint32_t unknown5;
334         uint32_t unknown6;
335         uint32_t unknown7;
336         uint32_t unknown8;
337 };
338
339 struct netr_DELTA_RENAME {
340         struct lsa_String OldName;
341         struct lsa_String NewName;
342         struct lsa_String unknown1;
343         struct lsa_String unknown2;
344         struct lsa_String unknown3;
345         struct lsa_String unknown4;
346         uint32_t unknown5;
347         uint32_t unknown6;
348         uint32_t unknown7;
349         uint32_t unknown8;
350 };
351
352 struct netr_DELTA_GROUP_MEMBER {
353         uint32_t *rids;/* [unique,size_is(num_rids)] */
354         uint32_t *attribs;/* [unique,size_is(num_rids)] */
355         uint32_t num_rids;
356         uint32_t unknown1;
357         uint32_t unknown2;
358         uint32_t unknown3;
359         uint32_t unknown4;
360 };
361
362 struct netr_DELTA_ALIAS {
363         struct lsa_String alias_name;
364         uint32_t rid;
365         uint32_t SecurityInformation;
366         struct sec_desc_buf sdbuf;
367         struct lsa_String description;
368         struct lsa_String unknown2;
369         struct lsa_String unknown3;
370         struct lsa_String unknown4;
371         uint32_t unknown5;
372         uint32_t unknown6;
373         uint32_t unknown7;
374         uint32_t unknown8;
375 };
376
377 struct netr_DELTA_ALIAS_MEMBER {
378         struct lsa_SidArray sids;
379         uint32_t unknown1;
380         uint32_t unknown2;
381         uint32_t unknown3;
382         uint32_t unknown4;
383 };
384
385 struct netr_QUOTA_LIMITS {
386         uint32_t pagedpoollimit;
387         uint32_t nonpagedpoollimit;
388         uint32_t minimumworkingsetsize;
389         uint32_t maximumworkingsetsize;
390         uint32_t pagefilelimit;
391         NTTIME timelimit;
392 };
393
394 struct netr_DELTA_POLICY {
395         uint32_t maxlogsize;
396         NTTIME auditretentionperiod;
397         uint8_t auditingmode;
398         uint32_t maxauditeventcount;
399         uint32_t *eventauditoptions;/* [unique,size_is(maxauditeventcount+1)] */
400         struct lsa_String primary_domain_name;
401         struct dom_sid2 *sid;/* [unique] */
402         struct netr_QUOTA_LIMITS quota_limits;
403         uint64_t sequence_num;
404         NTTIME db_create_time;
405         uint32_t SecurityInformation;
406         struct sec_desc_buf sdbuf;
407         struct lsa_String unknown1;
408         struct lsa_String unknown2;
409         struct lsa_String unknown3;
410         struct lsa_String unknown4;
411         uint32_t unknown5;
412         uint32_t unknown6;
413         uint32_t unknown7;
414         uint32_t unknown8;
415 };
416
417 struct netr_DELTA_TRUSTED_DOMAIN {
418         struct lsa_String domain_name;
419         uint32_t num_controllers;
420         struct lsa_String *controller_names;/* [unique,size_is(num_controllers)] */
421         uint32_t SecurityInformation;
422         struct sec_desc_buf sdbuf;
423         struct lsa_String unknown1;
424         struct lsa_String unknown2;
425         struct lsa_String unknown3;
426         struct lsa_String unknown4;
427         uint32_t posix_offset;
428         uint32_t unknown6;
429         uint32_t unknown7;
430         uint32_t unknown8;
431 };
432
433 struct netr_DELTA_DELETE_TRUST {
434         uint16_t unknown;
435 };
436
437 struct netr_DELTA_ACCOUNT {
438         uint32_t privilege_entries;
439         uint32_t privilege_control;
440         uint32_t *privilege_attrib;/* [unique,size_is(privilege_entries)] */
441         struct lsa_String *privilege_name;/* [unique,size_is(privilege_entries)] */
442         struct netr_QUOTA_LIMITS quotalimits;
443         uint32_t system_flags;
444         uint32_t SecurityInformation;
445         struct sec_desc_buf sdbuf;
446         struct lsa_String unknown1;
447         struct lsa_String unknown2;
448         struct lsa_String unknown3;
449         struct lsa_String unknown4;
450         uint32_t unknown5;
451         uint32_t unknown6;
452         uint32_t unknown7;
453         uint32_t unknown8;
454 };
455
456 struct netr_DELTA_DELETE_ACCOUNT {
457         uint16_t unknown;
458 };
459
460 struct netr_DELTA_DELETE_SECRET {
461         uint16_t unknown;
462 };
463
464 struct netr_CIPHER_VALUE {
465         uint32_t len;
466         uint32_t maxlen;
467         uint8_t *cipher_data;/* [unique,length_is(len),size_is(maxlen)] */
468 };
469
470 struct netr_DELTA_SECRET {
471         struct netr_CIPHER_VALUE current_cipher;
472         NTTIME current_cipher_set_time;
473         struct netr_CIPHER_VALUE old_cipher;
474         NTTIME old_cipher_set_time;
475         uint32_t SecurityInformation;
476         struct sec_desc_buf sdbuf;
477         struct lsa_String unknown1;
478         struct lsa_String unknown2;
479         struct lsa_String unknown3;
480         struct lsa_String unknown4;
481         uint32_t unknown5;
482         uint32_t unknown6;
483         uint32_t unknown7;
484         uint32_t unknown8;
485 };
486
487 enum netr_DeltaEnum
488 #ifndef USE_UINT_ENUMS
489  {
490         NETR_DELTA_DOMAIN=1,
491         NETR_DELTA_GROUP=2,
492         NETR_DELTA_DELETE_GROUP=3,
493         NETR_DELTA_RENAME_GROUP=4,
494         NETR_DELTA_USER=5,
495         NETR_DELTA_DELETE_USER=6,
496         NETR_DELTA_RENAME_USER=7,
497         NETR_DELTA_GROUP_MEMBER=8,
498         NETR_DELTA_ALIAS=9,
499         NETR_DELTA_DELETE_ALIAS=10,
500         NETR_DELTA_RENAME_ALIAS=11,
501         NETR_DELTA_ALIAS_MEMBER=12,
502         NETR_DELTA_POLICY=13,
503         NETR_DELTA_TRUSTED_DOMAIN=14,
504         NETR_DELTA_DELETE_TRUST=15,
505         NETR_DELTA_ACCOUNT=16,
506         NETR_DELTA_DELETE_ACCOUNT=17,
507         NETR_DELTA_SECRET=18,
508         NETR_DELTA_DELETE_SECRET=19,
509         NETR_DELTA_DELETE_GROUP2=20,
510         NETR_DELTA_DELETE_USER2=21,
511         NETR_DELTA_MODIFY_COUNT=22
512 }
513 #else
514  { __donnot_use_enum_netr_DeltaEnum=0x7FFFFFFF}
515 #define NETR_DELTA_DOMAIN ( 1 )
516 #define NETR_DELTA_GROUP ( 2 )
517 #define NETR_DELTA_DELETE_GROUP ( 3 )
518 #define NETR_DELTA_RENAME_GROUP ( 4 )
519 #define NETR_DELTA_USER ( 5 )
520 #define NETR_DELTA_DELETE_USER ( 6 )
521 #define NETR_DELTA_RENAME_USER ( 7 )
522 #define NETR_DELTA_GROUP_MEMBER ( 8 )
523 #define NETR_DELTA_ALIAS ( 9 )
524 #define NETR_DELTA_DELETE_ALIAS ( 10 )
525 #define NETR_DELTA_RENAME_ALIAS ( 11 )
526 #define NETR_DELTA_ALIAS_MEMBER ( 12 )
527 #define NETR_DELTA_POLICY ( 13 )
528 #define NETR_DELTA_TRUSTED_DOMAIN ( 14 )
529 #define NETR_DELTA_DELETE_TRUST ( 15 )
530 #define NETR_DELTA_ACCOUNT ( 16 )
531 #define NETR_DELTA_DELETE_ACCOUNT ( 17 )
532 #define NETR_DELTA_SECRET ( 18 )
533 #define NETR_DELTA_DELETE_SECRET ( 19 )
534 #define NETR_DELTA_DELETE_GROUP2 ( 20 )
535 #define NETR_DELTA_DELETE_USER2 ( 21 )
536 #define NETR_DELTA_MODIFY_COUNT ( 22 )
537 #endif
538 ;
539
540 union netr_DELTA_UNION {
541         struct netr_DELTA_DOMAIN *domain;/* [unique,case(NETR_DELTA_DOMAIN)] */
542         struct netr_DELTA_GROUP *group;/* [unique,case(NETR_DELTA_GROUP)] */
543         struct netr_DELTA_RENAME *rename_group;/* [unique,case(NETR_DELTA_RENAME_GROUP)] */
544         struct netr_DELTA_USER *user;/* [unique,case(NETR_DELTA_USER)] */
545         struct netr_DELTA_RENAME *rename_user;/* [unique,case(NETR_DELTA_RENAME_USER)] */
546         struct netr_DELTA_GROUP_MEMBER *group_member;/* [unique,case(NETR_DELTA_GROUP_MEMBER)] */
547         struct netr_DELTA_ALIAS *alias;/* [unique,case(NETR_DELTA_ALIAS)] */
548         struct netr_DELTA_RENAME *rename_alias;/* [unique,case(NETR_DELTA_RENAME_ALIAS)] */
549         struct netr_DELTA_ALIAS_MEMBER *alias_member;/* [unique,case(NETR_DELTA_ALIAS_MEMBER)] */
550         struct netr_DELTA_POLICY *policy;/* [unique,case(NETR_DELTA_POLICY)] */
551         struct netr_DELTA_TRUSTED_DOMAIN *trusted_domain;/* [unique,case(NETR_DELTA_TRUSTED_DOMAIN)] */
552         struct netr_DELTA_DELETE_TRUST delete_trust;/* [case(NETR_DELTA_DELETE_TRUST)] */
553         struct netr_DELTA_ACCOUNT *account;/* [unique,case(NETR_DELTA_ACCOUNT)] */
554         struct netr_DELTA_DELETE_ACCOUNT delete_account;/* [case(NETR_DELTA_DELETE_ACCOUNT)] */
555         struct netr_DELTA_SECRET *secret;/* [unique,case(NETR_DELTA_SECRET)] */
556         struct netr_DELTA_DELETE_SECRET delete_secret;/* [case(NETR_DELTA_DELETE_SECRET)] */
557         struct netr_DELTA_DELETE_USER *delete_group;/* [unique,case(NETR_DELTA_DELETE_GROUP2)] */
558         struct netr_DELTA_DELETE_USER *delete_user;/* [unique,case(NETR_DELTA_DELETE_USER2)] */
559         uint64_t *modified_count;/* [unique,case(NETR_DELTA_MODIFY_COUNT)] */
560 }/* [switch_type(netr_DeltaEnum)] */;
561
562 union netr_DELTA_ID_UNION {
563         uint32_t rid;/* [case(NETR_DELTA_DOMAIN)] */
564         struct dom_sid2 *sid;/* [unique,case(NETR_DELTA_POLICY)] */
565         const char *name;/* [unique,charset(UTF16),case(NETR_DELTA_SECRET)] */
566 }/* [switch_type(netr_DeltaEnum)] */;
567
568 struct netr_DELTA_ENUM {
569         enum netr_DeltaEnum delta_type;
570         union netr_DELTA_ID_UNION delta_id_union;/* [switch_is(delta_type)] */
571         union netr_DELTA_UNION delta_union;/* [switch_is(delta_type)] */
572 };
573
574 struct netr_DELTA_ENUM_ARRAY {
575         uint32_t num_deltas;
576         struct netr_DELTA_ENUM *delta_enum;/* [unique,size_is(num_deltas)] */
577 };
578
579 struct netr_UAS_INFO_0 {
580         uint8_t computer_name[16];
581         uint32_t timecreated;
582         uint32_t serial_number;
583 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
584
585 struct netr_AccountBuffer {
586         DATA_BLOB blob;/* [flag(LIBNDR_FLAG_REMAINING)] */
587 };
588
589 /* bitmap netr_InfoFlags */
590 #define NETLOGON_CTRL_REPL_NEEDED ( 0x0001 )
591 #define NETLOGON_CTRL_REPL_IN_PROGRESS ( 0x0002 )
592 #define NETLOGON_CTRL_REPL_FULL_SYNC ( 0x0004 )
593
594 struct netr_NETLOGON_INFO_1 {
595         uint32_t flags;
596         uint32_t pdc_connection_status;
597 };
598
599 struct netr_NETLOGON_INFO_2 {
600         uint32_t flags;
601         uint32_t pdc_connection_status;
602         const char *trusted_dc_name;/* [unique,charset(UTF16)] */
603         uint32_t tc_connection_status;
604 };
605
606 struct netr_NETLOGON_INFO_3 {
607         uint32_t flags;
608         uint32_t logon_attempts;
609         uint32_t unknown1;
610         uint32_t unknown2;
611         uint32_t unknown3;
612         uint32_t unknown4;
613         uint32_t unknown5;
614 };
615
616 union netr_CONTROL_QUERY_INFORMATION {
617         struct netr_NETLOGON_INFO_1 *info1;/* [unique,case] */
618         struct netr_NETLOGON_INFO_2 *info2;/* [unique,case(2)] */
619         struct netr_NETLOGON_INFO_3 *info3;/* [unique,case(3)] */
620 };
621
622 enum netr_LogonControlCode
623 #ifndef USE_UINT_ENUMS
624  {
625         NETLOGON_CONTROL_SYNC=2,
626         NETLOGON_CONTROL_REDISCOVER=5,
627         NETLOGON_CONTROL_TC_QUERY=6,
628         NETLOGON_CONTROL_TRANSPORT_NOTIFY=7,
629         NETLOGON_CONTROL_SET_DBFLAG=65534
630 }
631 #else
632  { __donnot_use_enum_netr_LogonControlCode=0x7FFFFFFF}
633 #define NETLOGON_CONTROL_SYNC ( 2 )
634 #define NETLOGON_CONTROL_REDISCOVER ( 5 )
635 #define NETLOGON_CONTROL_TC_QUERY ( 6 )
636 #define NETLOGON_CONTROL_TRANSPORT_NOTIFY ( 7 )
637 #define NETLOGON_CONTROL_SET_DBFLAG ( 65534 )
638 #endif
639 ;
640
641 union netr_CONTROL_DATA_INFORMATION {
642         const char *domain;/* [unique,charset(UTF16),case(NETLOGON_CONTROL_REDISCOVER)] */
643         uint32_t debug_level;/* [case(NETLOGON_CONTROL_SET_DBFLAG)] */
644 };
645
646 struct netr_Blob {
647         uint32_t length;
648         uint8_t *data;/* [unique,size_is(length)] */
649 };
650
651 /* bitmap netr_DsRGetDCName_flags */
652 #define DS_FORCE_REDISCOVERY ( 0x00000001 )
653 #define DS_DIRECTORY_SERVICE_REQUIRED ( 0x00000010 )
654 #define DS_DIRECTORY_SERVICE_PREFERRED ( 0x00000020 )
655 #define DS_GC_SERVER_REQUIRED ( 0x00000040 )
656 #define DS_PDC_REQUIRED ( 0x00000080 )
657 #define DS_BACKGROUND_ONLY ( 0x00000100 )
658 #define DS_IP_REQUIRED ( 0x00000200 )
659 #define DS_KDC_REQUIRED ( 0x00000400 )
660 #define DS_TIMESERV_REQUIRED ( 0x00000800 )
661 #define DS_WRITABLE_REQUIRED ( 0x00001000 )
662 #define DS_GOOD_TIMESERV_PREFERRED ( 0x00002000 )
663 #define DS_AVOID_SELF ( 0x00004000 )
664 #define DS_ONLY_LDAP_NEEDED ( 0x00008000 )
665 #define DS_IS_FLAT_NAME ( 0x00010000 )
666 #define DS_IS_DNS_NAME ( 0x00020000 )
667 #define DS_TRY_NEXTCLOSEST_SITE ( 0x00040000 )
668 #define DS_DIRECTORY_SERVICE_6_REQUIRED ( 0x00080000 )
669 #define DS_RETURN_DNS_NAME ( 0x40000000 )
670 #define DS_RETURN_FLAT_NAME ( 0x80000000 )
671
672 enum netr_DsRGetDCNameInfo_AddressType
673 #ifndef USE_UINT_ENUMS
674  {
675         DS_ADDRESS_TYPE_INET=1,
676         DS_ADDRESS_TYPE_NETBIOS=2
677 }
678 #else
679  { __donnot_use_enum_netr_DsRGetDCNameInfo_AddressType=0x7FFFFFFF}
680 #define DS_ADDRESS_TYPE_INET ( 1 )
681 #define DS_ADDRESS_TYPE_NETBIOS ( 2 )
682 #endif
683 ;
684
685 /* bitmap netr_DsR_DcFlags */
686 #define DS_SERVER_PDC ( 0x00000001 )
687 #define DS_SERVER_GC ( 0x00000004 )
688 #define DS_SERVER_LDAP ( 0x00000008 )
689 #define DS_SERVER_DS ( 0x00000010 )
690 #define DS_SERVER_KDC ( 0x00000020 )
691 #define DS_SERVER_TIMESERV ( 0x00000040 )
692 #define DS_SERVER_CLOSEST ( 0x00000080 )
693 #define DS_SERVER_WRITABLE ( 0x00000100 )
694 #define DS_SERVER_GOOD_TIMESERV ( 0x00000200 )
695 #define DS_SERVER_NDNC ( 0x00000400 )
696 #define DS_SERVER_SELECT_SECRET_DOMAIN_6 ( 0x00000800 )
697 #define DS_SERVER_FULL_SECRET_DOMAIN_6 ( 0x00001000 )
698 #define DS_DNS_CONTROLLER ( 0x20000000 )
699 #define DS_DNS_DOMAIN ( 0x40000000 )
700 #define DS_DNS_FOREST ( 0x80000000 )
701
702 struct netr_DsRGetDCNameInfo {
703         const char *dc_unc;/* [unique,charset(UTF16)] */
704         const char *dc_address;/* [unique,charset(UTF16)] */
705         enum netr_DsRGetDCNameInfo_AddressType dc_address_type;
706         struct GUID domain_guid;
707         const char *domain_name;/* [unique,charset(UTF16)] */
708         const char *forest_name;/* [unique,charset(UTF16)] */
709         uint32_t dc_flags;
710         const char *dc_site_name;/* [unique,charset(UTF16)] */
711         const char *client_site_name;/* [unique,charset(UTF16)] */
712 };
713
714 struct netr_BinaryString {
715         uint16_t length;
716         uint16_t size;
717         uint16_t *data;/* [unique,length_is(length/2),size_is(size/2)] */
718 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
719
720 struct netr_DomainQuery1 {
721         struct netr_Blob blob;
722         const char *workstation_domain;/* [unique,charset(UTF16)] */
723         const char *workstation_site;/* [unique,charset(UTF16)] */
724         const char *unknown1;/* [unique,charset(UTF16)] */
725         const char *unknown2;/* [unique,charset(UTF16)] */
726         const char *unknown3;/* [unique,charset(UTF16)] */
727         const char *unknown4;/* [unique,charset(UTF16)] */
728         struct netr_BinaryString blob2;
729         struct lsa_String product;
730         struct lsa_String unknown5;
731         struct lsa_String unknown6;
732         uint32_t unknown7[4];
733 };
734
735 union netr_DomainQuery {
736         struct netr_DomainQuery1 *query1;/* [unique,case] */
737 };
738
739 struct netr_DomainTrustInfo {
740         struct lsa_String domainname;
741         struct lsa_String fulldomainname;
742         struct lsa_String forest;
743         struct GUID guid;
744         struct dom_sid2 *sid;/* [unique] */
745         struct netr_BinaryString unknown1[4];
746         uint32_t unknown[4];
747 };
748
749 struct netr_DomainInfo1 {
750         struct netr_DomainTrustInfo domaininfo;
751         uint32_t num_trusts;
752         struct netr_DomainTrustInfo *trusts;/* [unique,size_is(num_trusts)] */
753         uint32_t unknown[14];
754 };
755
756 union netr_DomainInfo {
757         struct netr_DomainInfo1 *info1;/* [unique,case] */
758 };
759
760 struct netr_CryptPassword {
761         uint8_t data[512];
762         uint32_t length;
763 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
764
765 struct netr_DsRAddressToSitenamesWCtr {
766         uint32_t count;
767         struct lsa_String *sitename;/* [unique,size_is(count)] */
768 };
769
770 struct netr_DsRAddress {
771         uint8_t *buffer;/* [unique,size_is(size)] */
772         uint32_t size;
773 };
774
775 /* bitmap netr_TrustFlags */
776 #define NETR_TRUST_FLAG_IN_FOREST ( 0x00000001 )
777 #define NETR_TRUST_FLAG_OUTBOUND ( 0x00000002 )
778 #define NETR_TRUST_FLAG_TREEROOT ( 0x00000004 )
779 #define NETR_TRUST_FLAG_PRIMARY ( 0x00000008 )
780 #define NETR_TRUST_FLAG_NATIVE ( 0x00000010 )
781 #define NETR_TRUST_FLAG_INBOUND ( 0x00000020 )
782
783 enum netr_TrustType
784 #ifndef USE_UINT_ENUMS
785  {
786         NETR_TRUST_TYPE_DOWNLEVEL=1,
787         NETR_TRUST_TYPE_UPLEVEL=2,
788         NETR_TRUST_TYPE_MIT=3,
789         NETR_TRUST_TYPE_DCE=4
790 }
791 #else
792  { __donnot_use_enum_netr_TrustType=0x7FFFFFFF}
793 #define NETR_TRUST_TYPE_DOWNLEVEL ( 1 )
794 #define NETR_TRUST_TYPE_UPLEVEL ( 2 )
795 #define NETR_TRUST_TYPE_MIT ( 3 )
796 #define NETR_TRUST_TYPE_DCE ( 4 )
797 #endif
798 ;
799
800 /* bitmap netr_TrustAttributes */
801 #define NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
802 #define NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
803 #define NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
804 #define NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
805 #define NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
806 #define NETR_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
807 #define NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
808
809 struct netr_DomainTrust {
810         const char *netbios_name;/* [unique,charset(UTF16)] */
811         const char *dns_name;/* [unique,charset(UTF16)] */
812         uint32_t trust_flags;
813         uint32_t parent_index;
814         enum netr_TrustType trust_type;
815         uint32_t trust_attributes;
816         struct dom_sid2 *sid;/* [unique] */
817         struct GUID guid;
818 };
819
820 struct netr_DomainTrustList {
821         uint32_t count;
822         struct netr_DomainTrust *array;/* [unique,size_is(count)] */
823 };
824
825 struct netr_DsRAddressToSitenamesExWCtr {
826         uint32_t count;
827         struct lsa_String *sitename;/* [unique,size_is(count)] */
828         struct lsa_String *subnetname;/* [unique,size_is(count)] */
829 };
830
831 struct DcSitesCtr {
832         uint32_t num_sites;
833         struct lsa_String *sites;/* [unique,size_is(num_sites)] */
834 };
835
836
837 struct netr_LogonUasLogon {
838         struct {
839                 const char *server_name;/* [unique,charset(UTF16)] */
840                 const char *account_name;/* [charset(UTF16)] */
841                 const char *workstation;/* [charset(UTF16)] */
842         } in;
843
844         struct {
845                 struct netr_UasInfo *info;/* [ref] */
846                 WERROR result;
847         } out;
848
849 };
850
851
852 struct netr_LogonUasLogoff {
853         struct {
854                 const char *server_name;/* [unique,charset(UTF16)] */
855                 const char *account_name;/* [charset(UTF16)] */
856                 const char *workstation;/* [charset(UTF16)] */
857         } in;
858
859         struct {
860                 struct netr_UasLogoffInfo *info;/* [ref] */
861                 WERROR result;
862         } out;
863
864 };
865
866
867 struct netr_LogonSamLogon {
868         struct {
869                 const char *server_name;/* [unique,charset(UTF16)] */
870                 const char *computer_name;/* [unique,charset(UTF16)] */
871                 struct netr_Authenticator *credential;/* [unique] */
872                 enum netr_LogonLevel logon_level;
873                 union netr_LogonInfo *logon;/* [ref,switch_is(logon_level)] */
874                 uint16_t validation_level;
875                 struct netr_Authenticator *return_authenticator;/* [unique] */
876         } in;
877
878         struct {
879                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
880                 uint8_t *authoritative;/* [ref] */
881                 struct netr_Authenticator *return_authenticator;/* [unique] */
882                 NTSTATUS result;
883         } out;
884
885 };
886
887
888 struct netr_LogonSamLogoff {
889         struct {
890                 const char *server_name;/* [unique,charset(UTF16)] */
891                 const char *computer_name;/* [unique,charset(UTF16)] */
892                 struct netr_Authenticator *credential;/* [unique] */
893                 enum netr_LogonLevel logon_level;
894                 union netr_LogonInfo logon;/* [switch_is(logon_level)] */
895                 struct netr_Authenticator *return_authenticator;/* [unique] */
896         } in;
897
898         struct {
899                 struct netr_Authenticator *return_authenticator;/* [unique] */
900                 NTSTATUS result;
901         } out;
902
903 };
904
905
906 struct netr_ServerReqChallenge {
907         struct {
908                 const char *server_name;/* [unique,charset(UTF16)] */
909                 const char *computer_name;/* [charset(UTF16)] */
910                 struct netr_Credential *credentials;/* [ref] */
911         } in;
912
913         struct {
914                 struct netr_Credential *return_credentials;/* [ref] */
915                 NTSTATUS result;
916         } out;
917
918 };
919
920
921 struct netr_ServerAuthenticate {
922         struct {
923                 const char *server_name;/* [unique,charset(UTF16)] */
924                 const char *account_name;/* [charset(UTF16)] */
925                 enum netr_SchannelType secure_channel_type;
926                 const char *computer_name;/* [charset(UTF16)] */
927                 struct netr_Credential *credentials;/* [ref] */
928         } in;
929
930         struct {
931                 struct netr_Credential *return_credentials;/* [ref] */
932                 NTSTATUS result;
933         } out;
934
935 };
936
937
938 struct netr_ServerPasswordSet {
939         struct {
940                 const char *server_name;/* [unique,charset(UTF16)] */
941                 const char *account_name;/* [charset(UTF16)] */
942                 enum netr_SchannelType secure_channel_type;
943                 const char *computer_name;/* [charset(UTF16)] */
944                 struct netr_Authenticator *credential;/* [ref] */
945                 struct samr_Password *new_password;/* [ref] */
946         } in;
947
948         struct {
949                 struct netr_Authenticator *return_authenticator;/* [ref] */
950                 NTSTATUS result;
951         } out;
952
953 };
954
955
956 struct netr_DatabaseDeltas {
957         struct {
958                 const char *logon_server;/* [charset(UTF16)] */
959                 const char *computername;/* [charset(UTF16)] */
960                 struct netr_Authenticator *credential;/* [ref] */
961                 enum netr_SamDatabaseID database_id;
962                 uint32_t preferredmaximumlength;
963                 struct netr_Authenticator *return_authenticator;/* [ref] */
964                 uint64_t *sequence_num;/* [ref] */
965         } in;
966
967         struct {
968                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
969                 struct netr_Authenticator *return_authenticator;/* [ref] */
970                 uint64_t *sequence_num;/* [ref] */
971                 NTSTATUS result;
972         } out;
973
974 };
975
976
977 struct netr_DatabaseSync {
978         struct {
979                 const char *logon_server;/* [charset(UTF16)] */
980                 const char *computername;/* [charset(UTF16)] */
981                 struct netr_Authenticator credential;
982                 enum netr_SamDatabaseID database_id;
983                 uint32_t preferredmaximumlength;
984                 struct netr_Authenticator *return_authenticator;/* [ref] */
985                 uint32_t *sync_context;/* [ref] */
986         } in;
987
988         struct {
989                 struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [ref] */
990                 struct netr_Authenticator *return_authenticator;/* [ref] */
991                 uint32_t *sync_context;/* [ref] */
992                 NTSTATUS result;
993         } out;
994
995 };
996
997
998 struct netr_AccountDeltas {
999         struct {
1000                 const char *logon_server;/* [unique,charset(UTF16)] */
1001                 const char *computername;/* [charset(UTF16)] */
1002                 struct netr_Authenticator credential;
1003                 struct netr_UAS_INFO_0 uas;
1004                 uint32_t count;
1005                 uint32_t level;
1006                 uint32_t buffersize;
1007                 struct netr_Authenticator *return_authenticator;/* [ref] */
1008         } in;
1009
1010         struct {
1011                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1012                 uint32_t *count_returned;/* [ref] */
1013                 uint32_t *total_entries;/* [ref] */
1014                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1015                 struct netr_Authenticator *return_authenticator;/* [ref] */
1016                 NTSTATUS result;
1017         } out;
1018
1019 };
1020
1021
1022 struct netr_AccountSync {
1023         struct {
1024                 const char *logon_server;/* [unique,charset(UTF16)] */
1025                 const char *computername;/* [charset(UTF16)] */
1026                 struct netr_Authenticator credential;
1027                 uint32_t reference;
1028                 uint32_t level;
1029                 uint32_t buffersize;
1030                 struct netr_Authenticator *return_authenticator;/* [ref] */
1031                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1032         } in;
1033
1034         struct {
1035                 struct netr_AccountBuffer *buffer;/* [ref,subcontext(4)] */
1036                 uint32_t *count_returned;/* [ref] */
1037                 uint32_t *total_entries;/* [ref] */
1038                 uint32_t *next_reference;/* [ref] */
1039                 struct netr_Authenticator *return_authenticator;/* [ref] */
1040                 struct netr_UAS_INFO_0 *recordid;/* [ref] */
1041                 NTSTATUS result;
1042         } out;
1043
1044 };
1045
1046
1047 struct netr_GetDcName {
1048         struct {
1049                 const char *logon_server;/* [charset(UTF16)] */
1050                 const char *domainname;/* [unique,charset(UTF16)] */
1051         } in;
1052
1053         struct {
1054                 const char **dcname;/* [ref,charset(UTF16)] */
1055                 WERROR result;
1056         } out;
1057
1058 };
1059
1060
1061 struct netr_LogonControl {
1062         struct {
1063                 const char *logon_server;/* [unique,charset(UTF16)] */
1064                 enum netr_LogonControlCode function_code;
1065                 uint32_t level;
1066         } in;
1067
1068         struct {
1069                 union netr_CONTROL_QUERY_INFORMATION *info;/* [ref,switch_is(level)] */
1070                 WERROR result;
1071         } out;
1072
1073 };
1074
1075
1076 struct netr_GetAnyDCName {
1077         struct {
1078                 const char *logon_server;/* [unique,charset(UTF16)] */
1079                 const char *domainname;/* [unique,charset(UTF16)] */
1080         } in;
1081
1082         struct {
1083                 const char **dcname;/* [ref,charset(UTF16)] */
1084                 WERROR result;
1085         } out;
1086
1087 };
1088
1089
1090 struct netr_LogonControl2 {
1091         struct {
1092                 const char *logon_server;/* [unique,charset(UTF16)] */
1093                 enum netr_LogonControlCode function_code;
1094                 uint32_t level;
1095                 union netr_CONTROL_DATA_INFORMATION *data;/* [ref,switch_is(function_code)] */
1096         } in;
1097
1098         struct {
1099                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1100                 WERROR result;
1101         } out;
1102
1103 };
1104
1105
1106 struct netr_ServerAuthenticate2 {
1107         struct {
1108                 const char *server_name;/* [unique,charset(UTF16)] */
1109                 const char *account_name;/* [charset(UTF16)] */
1110                 enum netr_SchannelType secure_channel_type;
1111                 const char *computer_name;/* [charset(UTF16)] */
1112                 struct netr_Credential *credentials;/* [ref] */
1113                 uint32_t *negotiate_flags;/* [ref] */
1114         } in;
1115
1116         struct {
1117                 struct netr_Credential *return_credentials;/* [ref] */
1118                 uint32_t *negotiate_flags;/* [ref] */
1119                 NTSTATUS result;
1120         } out;
1121
1122 };
1123
1124
1125 struct netr_DatabaseSync2 {
1126         struct {
1127                 const char *logon_server;/* [charset(UTF16)] */
1128                 const char *computername;/* [charset(UTF16)] */
1129                 struct netr_Authenticator *credential;/* [ref] */
1130                 enum netr_SamDatabaseID database_id;
1131                 uint16_t restart_state;
1132                 uint32_t preferredmaximumlength;
1133                 struct netr_Authenticator *return_authenticator;/* [ref] */
1134                 uint32_t *sync_context;/* [ref] */
1135         } in;
1136
1137         struct {
1138                 struct netr_DELTA_ENUM_ARRAY **delta_enum_array;/* [ref] */
1139                 struct netr_Authenticator *return_authenticator;/* [ref] */
1140                 uint32_t *sync_context;/* [ref] */
1141                 NTSTATUS result;
1142         } out;
1143
1144 };
1145
1146
1147 struct netr_DatabaseRedo {
1148         struct {
1149                 const char *logon_server;/* [charset(UTF16)] */
1150                 const char *computername;/* [charset(UTF16)] */
1151                 struct netr_Authenticator credential;
1152                 uint8_t *change_log_entry;/* [unique,size_is(change_log_entry_size)] */
1153                 uint32_t change_log_entry_size;
1154                 struct netr_Authenticator *return_authenticator;/* [ref] */
1155         } in;
1156
1157         struct {
1158                 struct netr_DELTA_ENUM_ARRAY *delta_enum_array;/* [ref] */
1159                 struct netr_Authenticator *return_authenticator;/* [ref] */
1160                 NTSTATUS result;
1161         } out;
1162
1163 };
1164
1165
1166 struct netr_LogonControl2Ex {
1167         struct {
1168                 const char *logon_server;/* [unique,charset(UTF16)] */
1169                 uint32_t function_code;
1170                 uint32_t level;
1171                 union netr_CONTROL_DATA_INFORMATION data;/* [switch_is(function_code)] */
1172         } in;
1173
1174         struct {
1175                 union netr_CONTROL_QUERY_INFORMATION *query;/* [ref,switch_is(level)] */
1176                 WERROR result;
1177         } out;
1178
1179 };
1180
1181
1182 struct netr_NetrEnumerateTrustedDomains {
1183         struct {
1184                 const char *server_name;/* [unique,charset(UTF16)] */
1185         } in;
1186
1187         struct {
1188                 struct netr_Blob *trusted_domains_blob;/* [ref] */
1189                 WERROR result;
1190         } out;
1191
1192 };
1193
1194
1195 struct netr_DsRGetDCName {
1196         struct {
1197                 const char *server_unc;/* [unique,charset(UTF16)] */
1198                 const char *domain_name;/* [unique,charset(UTF16)] */
1199                 struct GUID *domain_guid;/* [unique] */
1200                 struct GUID *site_guid;/* [unique] */
1201                 uint32_t flags;
1202         } in;
1203
1204         struct {
1205                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1206                 WERROR result;
1207         } out;
1208
1209 };
1210
1211
1212 struct netr_NETRLOGONDUMMYROUTINE1 {
1213         struct {
1214                 WERROR result;
1215         } out;
1216
1217 };
1218
1219
1220 struct netr_NETRLOGONSETSERVICEBITS {
1221         struct {
1222                 WERROR result;
1223         } out;
1224
1225 };
1226
1227
1228 struct netr_LogonGetTrustRid {
1229         struct {
1230                 const char *server_name;/* [unique,charset(UTF16)] */
1231                 const char *domain_name;/* [unique,charset(UTF16)] */
1232         } in;
1233
1234         struct {
1235                 uint32_t *rid;/* [ref] */
1236                 WERROR result;
1237         } out;
1238
1239 };
1240
1241
1242 struct netr_NETRLOGONCOMPUTESERVERDIGEST {
1243         struct {
1244                 WERROR result;
1245         } out;
1246
1247 };
1248
1249
1250 struct netr_NETRLOGONCOMPUTECLIENTDIGEST {
1251         struct {
1252                 WERROR result;
1253         } out;
1254
1255 };
1256
1257
1258 struct netr_ServerAuthenticate3 {
1259         struct {
1260                 const char *server_name;/* [unique,charset(UTF16)] */
1261                 const char *account_name;/* [charset(UTF16)] */
1262                 enum netr_SchannelType secure_channel_type;
1263                 const char *computer_name;/* [charset(UTF16)] */
1264                 struct netr_Credential *credentials;/* [ref] */
1265                 uint32_t *negotiate_flags;/* [ref] */
1266         } in;
1267
1268         struct {
1269                 uint32_t *rid;/* [ref] */
1270                 struct netr_Credential *credentials;/* [ref] */
1271                 uint32_t *negotiate_flags;/* [ref] */
1272                 NTSTATUS result;
1273         } out;
1274
1275 };
1276
1277
1278 struct netr_DsRGetDCNameEx {
1279         struct {
1280                 const char *server_unc;/* [unique,charset(UTF16)] */
1281                 const char *domain_name;/* [unique,charset(UTF16)] */
1282                 struct GUID *domain_guid;/* [unique] */
1283                 const char *site_name;/* [unique,charset(UTF16)] */
1284                 uint32_t flags;
1285         } in;
1286
1287         struct {
1288                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1289                 WERROR result;
1290         } out;
1291
1292 };
1293
1294
1295 struct netr_DsRGetSiteName {
1296         struct {
1297                 const char *computer_name;/* [unique,charset(UTF16)] */
1298         } in;
1299
1300         struct {
1301                 const char **site;/* [ref,charset(UTF16)] */
1302                 WERROR result;
1303         } out;
1304
1305 };
1306
1307
1308 struct netr_LogonGetDomainInfo {
1309         struct {
1310                 const char *server_name;/* [charset(UTF16)] */
1311                 const char *computer_name;/* [unique,charset(UTF16)] */
1312                 struct netr_Authenticator *credential;/* [ref] */
1313                 uint32_t level;
1314                 union netr_DomainQuery query;/* [switch_is(level)] */
1315                 struct netr_Authenticator *return_authenticator;/* [ref] */
1316         } in;
1317
1318         struct {
1319                 union netr_DomainInfo *info;/* [ref,switch_is(level)] */
1320                 struct netr_Authenticator *return_authenticator;/* [ref] */
1321                 NTSTATUS result;
1322         } out;
1323
1324 };
1325
1326
1327 struct netr_ServerPasswordSet2 {
1328         struct {
1329                 const char *server_name;/* [unique,charset(UTF16)] */
1330                 const char *account_name;/* [charset(UTF16)] */
1331                 enum netr_SchannelType secure_channel_type;
1332                 const char *computer_name;/* [charset(UTF16)] */
1333                 struct netr_Authenticator credential;
1334                 struct netr_CryptPassword new_password;
1335         } in;
1336
1337         struct {
1338                 struct netr_Authenticator *return_authenticator;/* [ref] */
1339                 NTSTATUS result;
1340         } out;
1341
1342 };
1343
1344
1345 struct netr_ServerPasswordGet {
1346         struct {
1347                 const char *server_name;/* [unique,charset(UTF16)] */
1348                 const char *account_name;/* [charset(UTF16)] */
1349                 enum netr_SchannelType secure_channel_type;
1350                 const char *computer_name;/* [charset(UTF16)] */
1351                 struct netr_Authenticator *credential;/* [ref] */
1352         } in;
1353
1354         struct {
1355                 struct netr_Authenticator *return_authenticator;/* [ref] */
1356                 struct samr_Password *password;/* [ref] */
1357                 WERROR result;
1358         } out;
1359
1360 };
1361
1362
1363 struct netr_NETRLOGONSENDTOSAM {
1364         struct {
1365                 WERROR result;
1366         } out;
1367
1368 };
1369
1370
1371 struct netr_DsRAddressToSitenamesW {
1372         struct {
1373                 const char *server_name;/* [unique,charset(UTF16)] */
1374                 uint32_t count;/* [range(0,32000)] */
1375                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1376         } in;
1377
1378         struct {
1379                 struct netr_DsRAddressToSitenamesWCtr **ctr;/* [ref] */
1380                 WERROR result;
1381         } out;
1382
1383 };
1384
1385
1386 struct netr_DsRGetDCNameEx2 {
1387         struct {
1388                 const char *server_unc;/* [unique,charset(UTF16)] */
1389                 const char *client_account;/* [unique,charset(UTF16)] */
1390                 uint32_t mask;
1391                 const char *domain_name;/* [unique,charset(UTF16)] */
1392                 struct GUID *domain_guid;/* [unique] */
1393                 const char *site_name;/* [unique,charset(UTF16)] */
1394                 uint32_t flags;
1395         } in;
1396
1397         struct {
1398                 struct netr_DsRGetDCNameInfo **info;/* [ref] */
1399                 WERROR result;
1400         } out;
1401
1402 };
1403
1404
1405 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN {
1406         struct {
1407                 WERROR result;
1408         } out;
1409
1410 };
1411
1412
1413 struct netr_NetrEnumerateTrustedDomainsEx {
1414         struct {
1415                 const char *server_name;/* [unique,charset(UTF16)] */
1416         } in;
1417
1418         struct {
1419                 struct netr_DomainTrustList *dom_trust_list;/* [ref] */
1420                 WERROR result;
1421         } out;
1422
1423 };
1424
1425
1426 struct netr_DsRAddressToSitenamesExW {
1427         struct {
1428                 const char *server_name;/* [unique,charset(UTF16)] */
1429                 uint32_t count;/* [range(0,32000)] */
1430                 struct netr_DsRAddress *addresses;/* [ref,size_is(count)] */
1431         } in;
1432
1433         struct {
1434                 struct netr_DsRAddressToSitenamesExWCtr **ctr;/* [ref] */
1435                 WERROR result;
1436         } out;
1437
1438 };
1439
1440
1441 struct netr_DsrGetDcSiteCoverageW {
1442         struct {
1443                 const char *server_name;/* [unique,charset(UTF16)] */
1444         } in;
1445
1446         struct {
1447                 struct DcSitesCtr *ctr;/* [ref] */
1448                 WERROR result;
1449         } out;
1450
1451 };
1452
1453
1454 struct netr_LogonSamLogonEx {
1455         struct {
1456                 const char *server_name;/* [unique,charset(UTF16)] */
1457                 const char *computer_name;/* [unique,charset(UTF16)] */
1458                 enum netr_LogonLevel logon_level;
1459                 union netr_LogonInfo *logon;/* [ref,switch_is(logon_level)] */
1460                 uint16_t validation_level;
1461                 uint32_t *flags;/* [ref] */
1462         } in;
1463
1464         struct {
1465                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1466                 uint8_t *authoritative;/* [ref] */
1467                 uint32_t *flags;/* [ref] */
1468                 NTSTATUS result;
1469         } out;
1470
1471 };
1472
1473
1474 struct netr_DsrEnumerateDomainTrusts {
1475         struct {
1476                 const char *server_name;/* [unique,charset(UTF16)] */
1477                 uint32_t trust_flags;
1478         } in;
1479
1480         struct {
1481                 struct netr_DomainTrustList *trusts;/* [ref] */
1482                 WERROR result;
1483         } out;
1484
1485 };
1486
1487
1488 struct netr_DsrDeregisterDNSHostRecords {
1489         struct {
1490                 const char *server_name;/* [unique,charset(UTF16)] */
1491                 const char *domain;/* [unique,charset(UTF16)] */
1492                 struct GUID *domain_guid;/* [unique] */
1493                 struct GUID *dsa_guid;/* [unique] */
1494                 const char *dns_host;/* [ref,charset(UTF16)] */
1495         } in;
1496
1497         struct {
1498                 WERROR result;
1499         } out;
1500
1501 };
1502
1503
1504 struct netr_ServerTrustPasswordsGet {
1505         struct {
1506                 const char *server_name;/* [unique,charset(UTF16)] */
1507                 const char *account_name;/* [charset(UTF16)] */
1508                 enum netr_SchannelType secure_channel_type;
1509                 const char *computer_name;/* [charset(UTF16)] */
1510                 struct netr_Authenticator *credential;/* [ref] */
1511         } in;
1512
1513         struct {
1514                 struct netr_Authenticator *return_authenticator;/* [ref] */
1515                 struct samr_Password *password;/* [ref] */
1516                 struct samr_Password *password2;/* [ref] */
1517                 NTSTATUS result;
1518         } out;
1519
1520 };
1521
1522
1523 struct netr_DsRGetForestTrustInformation {
1524         struct {
1525                 const char *server_name;/* [unique,charset(UTF16)] */
1526                 const char *trusted_domain_name;/* [unique,charset(UTF16)] */
1527                 uint32_t flags;
1528         } in;
1529
1530         struct {
1531                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1532                 WERROR result;
1533         } out;
1534
1535 };
1536
1537
1538 struct netr_GetForestTrustInformation {
1539         struct {
1540                 const char *server_name;/* [unique,charset(UTF16)] */
1541                 const char *trusted_domain_name;/* [ref,charset(UTF16)] */
1542                 struct netr_Authenticator *credential;/* [ref] */
1543                 uint32_t flags;
1544         } in;
1545
1546         struct {
1547                 struct netr_Authenticator *return_authenticator;/* [ref] */
1548                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1549                 WERROR result;
1550         } out;
1551
1552 };
1553
1554
1555 struct netr_LogonSamLogonWithFlags {
1556         struct {
1557                 const char *server_name;/* [unique,charset(UTF16)] */
1558                 const char *computer_name;/* [unique,charset(UTF16)] */
1559                 struct netr_Authenticator *credential;/* [unique] */
1560                 enum netr_LogonLevel logon_level;
1561                 union netr_LogonInfo logon;/* [switch_is(logon_level)] */
1562                 uint16_t validation_level;
1563                 struct netr_Authenticator *return_authenticator;/* [unique] */
1564                 uint32_t *flags;/* [ref] */
1565         } in;
1566
1567         struct {
1568                 union netr_Validation *validation;/* [ref,switch_is(validation_level)] */
1569                 uint8_t *authoritative;/* [ref] */
1570                 struct netr_Authenticator *return_authenticator;/* [unique] */
1571                 uint32_t *flags;/* [ref] */
1572                 NTSTATUS result;
1573         } out;
1574
1575 };
1576
1577
1578 struct netr_NETRSERVERGETTRUSTINFO {
1579         struct {
1580                 WERROR result;
1581         } out;
1582
1583 };
1584
1585 #endif /* _HEADER_netlogon */