git add -f bin/default/librpc/gen_ndr/*.[ch] bin/default/source*/librpc/gen_ndr/...
[metze/samba/wip.git] / bin.gen_ndr / default / librpc / gen_ndr / nbt.h
1 /* header auto-generated by pidl */
2
3 #ifndef _PIDL_HEADER_nbt
4 #define _PIDL_HEADER_nbt
5
6 #include <stdint.h>
7
8 #include "libcli/util/ntstatus.h"
9
10 #include "librpc/gen_ndr/misc.h"
11 #include "librpc/gen_ndr/security.h"
12 #ifndef _HEADER_nbt
13 #define _HEADER_nbt
14
15 #define NBT_NAME_SERVICE_PORT   ( 137 )
16 #define NBT_DGRAM_SERVICE_PORT  ( 138 )
17 #define NBT_MAILSLOT_NETLOGON   ( "\\MAILSLOT\\NET\\NETLOGON" )
18 #define NBT_MAILSLOT_NTLOGON    ( "\\MAILSLOT\\NET\\NTLOGON" )
19 #define NBT_MAILSLOT_GETDC      ( "\\MAILSLOT\\NET\\GETDC" )
20 #define NBT_MAILSLOT_BROWSE     ( "\\MAILSLOT\\BROWSE" )
21 #define DGRAM_SMB       ( 0xff534d42 )
22 /* bitmap nbt_operation */
23 #define NBT_RCODE ( 0x000F )
24 #define NBT_FLAG_BROADCAST ( 0x0010 )
25 #define NBT_FLAG_RECURSION_AVAIL ( 0x0080 )
26 #define NBT_FLAG_RECURSION_DESIRED ( 0x0100 )
27 #define NBT_FLAG_TRUNCATION ( 0x0200 )
28 #define NBT_FLAG_AUTHORITATIVE ( 0x0400 )
29 #define NBT_OPCODE ( 0x7800 )
30 #define NBT_FLAG_REPLY ( 0x8000 )
31
32 enum nbt_opcode
33 #ifndef USE_UINT_ENUMS
34  {
35         NBT_OPCODE_QUERY=(int)((0x0<<11)),
36         NBT_OPCODE_REGISTER=(int)((0x5<<11)),
37         NBT_OPCODE_RELEASE=(int)((0x6<<11)),
38         NBT_OPCODE_WACK=(int)((0x7<<11)),
39         NBT_OPCODE_REFRESH=(int)((0x8<<11)),
40         NBT_OPCODE_REFRESH2=(int)((0x9<<11)),
41         NBT_OPCODE_MULTI_HOME_REG=(int)((0xf<<11))
42 }
43 #else
44  { __do_not_use_enum_nbt_opcode=0x7FFFFFFF}
45 #define NBT_OPCODE_QUERY ( (0x0<<11) )
46 #define NBT_OPCODE_REGISTER ( (0x5<<11) )
47 #define NBT_OPCODE_RELEASE ( (0x6<<11) )
48 #define NBT_OPCODE_WACK ( (0x7<<11) )
49 #define NBT_OPCODE_REFRESH ( (0x8<<11) )
50 #define NBT_OPCODE_REFRESH2 ( (0x9<<11) )
51 #define NBT_OPCODE_MULTI_HOME_REG ( (0xf<<11) )
52 #endif
53 ;
54
55 enum nbt_rcode
56 #ifndef USE_UINT_ENUMS
57  {
58         NBT_RCODE_OK=(int)(0x0),
59         NBT_RCODE_FMT=(int)(0x1),
60         NBT_RCODE_SVR=(int)(0x2),
61         NBT_RCODE_NAM=(int)(0x3),
62         NBT_RCODE_IMP=(int)(0x4),
63         NBT_RCODE_RFS=(int)(0x5),
64         NBT_RCODE_ACT=(int)(0x6),
65         NBT_RCODE_CFT=(int)(0x7)
66 }
67 #else
68  { __do_not_use_enum_nbt_rcode=0x7FFFFFFF}
69 #define NBT_RCODE_OK ( 0x0 )
70 #define NBT_RCODE_FMT ( 0x1 )
71 #define NBT_RCODE_SVR ( 0x2 )
72 #define NBT_RCODE_NAM ( 0x3 )
73 #define NBT_RCODE_IMP ( 0x4 )
74 #define NBT_RCODE_RFS ( 0x5 )
75 #define NBT_RCODE_ACT ( 0x6 )
76 #define NBT_RCODE_CFT ( 0x7 )
77 #endif
78 ;
79
80 enum nbt_name_type
81 #ifndef USE_UINT_ENUMS
82  {
83         NBT_NAME_CLIENT=(int)(0x00),
84         NBT_NAME_MS=(int)(0x01),
85         NBT_NAME_USER=(int)(0x03),
86         NBT_NAME_SERVER=(int)(0x20),
87         NBT_NAME_PDC=(int)(0x1B),
88         NBT_NAME_LOGON=(int)(0x1C),
89         NBT_NAME_MASTER=(int)(0x1D),
90         NBT_NAME_BROWSER=(int)(0x1E)
91 }
92 #else
93  { __do_not_use_enum_nbt_name_type=0x7FFFFFFF}
94 #define NBT_NAME_CLIENT ( 0x00 )
95 #define NBT_NAME_MS ( 0x01 )
96 #define NBT_NAME_USER ( 0x03 )
97 #define NBT_NAME_SERVER ( 0x20 )
98 #define NBT_NAME_PDC ( 0x1B )
99 #define NBT_NAME_LOGON ( 0x1C )
100 #define NBT_NAME_MASTER ( 0x1D )
101 #define NBT_NAME_BROWSER ( 0x1E )
102 #endif
103 ;
104
105 struct nbt_name {
106         const char * name;
107         const char * scope;
108         enum nbt_name_type type;
109 }/* [nopull,public,nopush] */;
110
111 enum nbt_qclass
112 #ifndef USE_UINT_ENUMS
113  {
114         NBT_QCLASS_IP=(int)(0x01)
115 }
116 #else
117  { __do_not_use_enum_nbt_qclass=0x7FFFFFFF}
118 #define NBT_QCLASS_IP ( 0x01 )
119 #endif
120 ;
121
122 enum nbt_qtype
123 #ifndef USE_UINT_ENUMS
124  {
125         NBT_QTYPE_ADDRESS=(int)(0x0001),
126         NBT_QTYPE_NAMESERVICE=(int)(0x0002),
127         NBT_QTYPE_NULL=(int)(0x000A),
128         NBT_QTYPE_NETBIOS=(int)(0x0020),
129         NBT_QTYPE_STATUS=(int)(0x0021)
130 }
131 #else
132  { __do_not_use_enum_nbt_qtype=0x7FFFFFFF}
133 #define NBT_QTYPE_ADDRESS ( 0x0001 )
134 #define NBT_QTYPE_NAMESERVICE ( 0x0002 )
135 #define NBT_QTYPE_NULL ( 0x000A )
136 #define NBT_QTYPE_NETBIOS ( 0x0020 )
137 #define NBT_QTYPE_STATUS ( 0x0021 )
138 #endif
139 ;
140
141 struct nbt_name_question {
142         struct nbt_name name;
143         enum nbt_qtype question_type;
144         enum nbt_qclass question_class;
145 };
146
147 enum nbt_node_type
148 #ifndef USE_UINT_ENUMS
149  {
150         NBT_NODE_B=(int)(0x0000),
151         NBT_NODE_P=(int)(0x2000),
152         NBT_NODE_M=(int)(0x4000),
153         NBT_NODE_H=(int)(0x6000)
154 }
155 #else
156  { __do_not_use_enum_nbt_node_type=0x7FFFFFFF}
157 #define NBT_NODE_B ( 0x0000 )
158 #define NBT_NODE_P ( 0x2000 )
159 #define NBT_NODE_M ( 0x4000 )
160 #define NBT_NODE_H ( 0x6000 )
161 #endif
162 ;
163
164 /* bitmap nb_flags */
165 #define NBT_NM_PERMANENT ( 0x0200 )
166 #define NBT_NM_ACTIVE ( 0x0400 )
167 #define NBT_NM_CONFLICT ( 0x0800 )
168 #define NBT_NM_DEREGISTER ( 0x1000 )
169 #define NBT_NM_OWNER_TYPE ( 0x6000 )
170 #define NBT_NM_GROUP ( 0x8000 )
171
172 struct nbt_rdata_address {
173         uint16_t nb_flags;
174         const char * ipaddr;
175 };
176
177 struct nbt_rdata_netbios {
178         uint16_t length;
179         struct nbt_rdata_address *addresses;
180 };
181
182 struct nbt_statistics {
183         uint8_t unit_id[6];
184         uint8_t jumpers;
185         uint8_t test_result;
186         uint16_t version_number;
187         uint16_t period_of_statistics;
188         uint16_t number_of_crcs;
189         uint16_t number_alignment_errors;
190         uint16_t number_of_collisions;
191         uint16_t number_send_aborts;
192         uint32_t number_good_sends;
193         uint32_t number_good_receives;
194         uint16_t number_retransmits;
195         uint16_t number_no_resource_conditions;
196         uint16_t number_free_command_blocks;
197         uint16_t total_number_command_blocks;
198         uint16_t max_total_number_command_blocks;
199         uint16_t number_pending_sessions;
200         uint16_t max_number_pending_sessions;
201         uint16_t max_total_sessions_possible;
202         uint16_t session_data_packet_size;
203 };
204
205 struct nbt_status_name {
206         const char *name;/* [charset(DOS)] */
207         enum nbt_name_type type;
208         uint16_t nb_flags;
209 };
210
211 struct nbt_rdata_status {
212         uint16_t length;/* [value(num_names*18+47)] */
213         uint8_t num_names;
214         struct nbt_status_name *names;
215         struct nbt_statistics statistics;
216 };
217
218 struct nbt_rdata_data {
219         uint16_t length;
220         uint8_t *data;
221 };
222
223 union nbt_rdata {
224         struct nbt_rdata_netbios netbios;/* [case(NBT_QTYPE_NETBIOS)] */
225         struct nbt_rdata_status status;/* [case(NBT_QTYPE_STATUS)] */
226         struct nbt_rdata_data data;/* [default] */
227 }/* [nodiscriminant,public] */;
228
229 struct nbt_res_rec {
230         struct nbt_name name;
231         enum nbt_qtype rr_type;
232         enum nbt_qclass rr_class;
233         uint32_t ttl;
234         union nbt_rdata rdata;/* [switch_is(rr_type)] */
235 }/* [nopush,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
236
237 struct nbt_name_packet {
238         uint16_t name_trn_id;
239         uint16_t operation;
240         uint16_t qdcount;
241         uint16_t ancount;
242         uint16_t nscount;
243         uint16_t arcount;
244         struct nbt_name_question *questions;
245         struct nbt_res_rec *answers;
246         struct nbt_res_rec *nsrecs;
247         struct nbt_res_rec *additional;
248         DATA_BLOB padding;/* [flag(LIBNDR_FLAG_REMAINING)] */
249 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
250
251 enum dgram_msg_type
252 #ifndef USE_UINT_ENUMS
253  {
254         DGRAM_DIRECT_UNIQUE=(int)(0x10),
255         DGRAM_DIRECT_GROUP=(int)(0x11),
256         DGRAM_BCAST=(int)(0x12),
257         DGRAM_ERROR=(int)(0x13),
258         DGRAM_QUERY=(int)(0x14),
259         DGRAM_QUERY_POSITIVE=(int)(0x15),
260         DGRAM_QUERY_NEGATIVE=(int)(0x16)
261 }
262 #else
263  { __do_not_use_enum_dgram_msg_type=0x7FFFFFFF}
264 #define DGRAM_DIRECT_UNIQUE ( 0x10 )
265 #define DGRAM_DIRECT_GROUP ( 0x11 )
266 #define DGRAM_BCAST ( 0x12 )
267 #define DGRAM_ERROR ( 0x13 )
268 #define DGRAM_QUERY ( 0x14 )
269 #define DGRAM_QUERY_POSITIVE ( 0x15 )
270 #define DGRAM_QUERY_NEGATIVE ( 0x16 )
271 #endif
272 ;
273
274 /* bitmap dgram_flags */
275 #define DGRAM_FLAG_MORE ( 0x01 )
276 #define DGRAM_FLAG_FIRST ( 0x02 )
277 #define DGRAM_FLAG_NODE_TYPE ( 0x0C )
278
279 enum dgram_node_type
280 #ifndef USE_UINT_ENUMS
281  {
282         DGRAM_NODE_B=(int)(0x00),
283         DGRAM_NODE_P=(int)(0x04),
284         DGRAM_NODE_M=(int)(0x08),
285         DGRAM_NODE_NBDD=(int)(0x0C)
286 }
287 #else
288  { __do_not_use_enum_dgram_node_type=0x7FFFFFFF}
289 #define DGRAM_NODE_B ( 0x00 )
290 #define DGRAM_NODE_P ( 0x04 )
291 #define DGRAM_NODE_M ( 0x08 )
292 #define DGRAM_NODE_NBDD ( 0x0C )
293 #endif
294 ;
295
296 enum smb_command
297 #ifndef USE_UINT_ENUMS
298  {
299         SMB_TRANSACTION=(int)(0x25)
300 }
301 #else
302  { __do_not_use_enum_smb_command=0x7FFFFFFF}
303 #define SMB_TRANSACTION ( 0x25 )
304 #endif
305 ;
306
307 struct smb_trans_body {
308         uint8_t wct;/* [value(17),range(17,17)] */
309         uint16_t total_param_count;
310         uint16_t total_data_count;
311         uint16_t max_param_count;
312         uint16_t max_data_count;
313         uint8_t max_setup_count;
314         uint8_t pad;
315         uint16_t trans_flags;
316         uint32_t timeout;
317         uint16_t reserved;
318         uint16_t param_count;
319         uint16_t param_offset;
320         uint16_t data_count;
321         uint16_t data_offset;
322         uint8_t setup_count;/* [value(3),range(3,3)] */
323         uint8_t pad2;
324         uint16_t opcode;
325         uint16_t priority;
326         uint16_t _class;
327         uint16_t byte_count;/* [value(strlen(mailslot_name)+1+data.length)] */
328         const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
329         DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING)] */
330 };
331
332 union smb_body {
333         struct smb_trans_body trans;/* [case(SMB_TRANSACTION)] */
334 }/* [nodiscriminant] */;
335
336 struct dgram_smb_packet {
337         enum smb_command smb_command;
338         uint8_t err_class;
339         uint8_t pad;
340         uint16_t err_code;
341         uint8_t flags;
342         uint16_t flags2;
343         uint16_t pid_high;
344         uint8_t signature[8];
345         uint16_t reserved;
346         uint16_t tid;
347         uint16_t pid;
348         uint16_t vuid;
349         uint16_t mid;
350         union smb_body body;/* [switch_is(smb_command)] */
351 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
352
353 union dgram_message_body {
354         struct dgram_smb_packet smb;/* [case(DGRAM_SMB)] */
355 }/* [nodiscriminant] */;
356
357 struct dgram_message {
358         uint16_t length;
359         uint16_t offset;
360         struct nbt_name source_name;
361         struct nbt_name dest_name;
362         uint32_t dgram_body_type;
363         union dgram_message_body body;/* [switch_is(dgram_body_type)] */
364 };
365
366 enum dgram_err_code
367 #ifndef USE_UINT_ENUMS
368  {
369         DGRAM_ERROR_NAME_NOT_PRESENT=(int)(0x82),
370         DGRAM_ERROR_INVALID_SOURCE=(int)(0x83),
371         DGRAM_ERROR_INVALID_DEST=(int)(0x84)
372 }
373 #else
374  { __do_not_use_enum_dgram_err_code=0x7FFFFFFF}
375 #define DGRAM_ERROR_NAME_NOT_PRESENT ( 0x82 )
376 #define DGRAM_ERROR_INVALID_SOURCE ( 0x83 )
377 #define DGRAM_ERROR_INVALID_DEST ( 0x84 )
378 #endif
379 ;
380
381 union dgram_data {
382         struct dgram_message msg;/* [case(DGRAM_DIRECT_UNIQUE)] */
383         enum dgram_err_code error;/* [case(DGRAM_ERROR)] */
384         struct nbt_name dest_name;/* [case(DGRAM_QUERY)] */
385 }/* [nodiscriminant] */;
386
387 struct nbt_dgram_packet {
388         enum dgram_msg_type msg_type;
389         uint8_t flags;
390         uint16_t dgram_id;
391         const char * src_addr;
392         uint16_t src_port;
393         union dgram_data data;/* [switch_is(msg_type)] */
394 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
395
396 struct nbt_sockaddr {
397         uint32_t sockaddr_family;
398         const char * pdc_ip;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
399         DATA_BLOB remaining;/* [flag(LIBNDR_FLAG_REMAINING)] */
400 }/* [gensize,public] */;
401
402 /* bitmap nbt_server_type */
403 #define NBT_SERVER_PDC ( 0x00000001 )
404 #define NBT_SERVER_GC ( 0x00000004 )
405 #define NBT_SERVER_LDAP ( 0x00000008 )
406 #define NBT_SERVER_DS ( 0x00000010 )
407 #define NBT_SERVER_KDC ( 0x00000020 )
408 #define NBT_SERVER_TIMESERV ( 0x00000040 )
409 #define NBT_SERVER_CLOSEST ( 0x00000080 )
410 #define NBT_SERVER_WRITABLE ( 0x00000100 )
411 #define NBT_SERVER_GOOD_TIMESERV ( 0x00000200 )
412 #define NBT_SERVER_NDNC ( 0x00000400 )
413 #define NBT_SERVER_SELECT_SECRET_DOMAIN_6 ( 0x00000800 )
414 #define NBT_SERVER_FULL_SECRET_DOMAIN_6 ( 0x00001000 )
415 #define NBT_SERVER_ADS_WEB_SERVICE ( 0x00002000 )
416 #define NBT_SERVER_HAS_DNS_NAME ( 0x20000000 )
417 #define NBT_SERVER_IS_DEFAULT_NC ( 0x40000000 )
418 #define NBT_SERVER_FOREST_ROOT ( 0x80000000 )
419
420 /* bitmap netlogon_nt_version_flags */
421 #define NETLOGON_NT_VERSION_1 ( 0x00000001 )
422 #define NETLOGON_NT_VERSION_5 ( 0x00000002 )
423 #define NETLOGON_NT_VERSION_5EX ( 0x00000004 )
424 #define NETLOGON_NT_VERSION_5EX_WITH_IP ( 0x00000008 )
425 #define NETLOGON_NT_VERSION_WITH_CLOSEST_SITE ( 0x00000010 )
426 #define NETLOGON_NT_VERSION_AVOID_NT4EMUL ( 0x01000000 )
427 #define NETLOGON_NT_VERSION_PDC ( 0x10000000 )
428 #define NETLOGON_NT_VERSION_IP ( 0x20000000 )
429 #define NETLOGON_NT_VERSION_LOCAL ( 0x40000000 )
430 #define NETLOGON_NT_VERSION_GC ( 0x80000000 )
431
432 enum netlogon_command
433 #ifndef USE_UINT_ENUMS
434  {
435         LOGON_REQUEST=(int)(0),
436         LOGON_RESPONSE2=(int)(6),
437         LOGON_PRIMARY_QUERY=(int)(7),
438         NETLOGON_ANNOUNCE_UAS=(int)(10),
439         NETLOGON_RESPONSE_FROM_PDC=(int)(12),
440         LOGON_SAM_LOGON_REQUEST=(int)(18),
441         LOGON_SAM_LOGON_RESPONSE=(int)(19),
442         LOGON_SAM_LOGON_PAUSE_RESPONSE=(int)(20),
443         LOGON_SAM_LOGON_USER_UNKNOWN=(int)(21),
444         LOGON_SAM_LOGON_RESPONSE_EX=(int)(23),
445         LOGON_SAM_LOGON_PAUSE_RESPONSE_EX=(int)(24),
446         LOGON_SAM_LOGON_USER_UNKNOWN_EX=(int)(25)
447 }
448 #else
449  { __do_not_use_enum_netlogon_command=0x7FFFFFFF}
450 #define LOGON_REQUEST ( 0 )
451 #define LOGON_RESPONSE2 ( 6 )
452 #define LOGON_PRIMARY_QUERY ( 7 )
453 #define NETLOGON_ANNOUNCE_UAS ( 10 )
454 #define NETLOGON_RESPONSE_FROM_PDC ( 12 )
455 #define LOGON_SAM_LOGON_REQUEST ( 18 )
456 #define LOGON_SAM_LOGON_RESPONSE ( 19 )
457 #define LOGON_SAM_LOGON_PAUSE_RESPONSE ( 20 )
458 #define LOGON_SAM_LOGON_USER_UNKNOWN ( 21 )
459 #define LOGON_SAM_LOGON_RESPONSE_EX ( 23 )
460 #define LOGON_SAM_LOGON_PAUSE_RESPONSE_EX ( 24 )
461 #define LOGON_SAM_LOGON_USER_UNKNOWN_EX ( 25 )
462 #endif
463 ;
464
465 struct NETLOGON_SAM_LOGON_REQUEST {
466         uint16_t request_count;
467         const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
468         const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
469         const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
470         uint32_t acct_control;
471         uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
472         DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
473         struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
474         uint32_t nt_version;
475         uint16_t lmnt_token;
476         uint16_t lm20_token;
477 }/* [nopull,nopush] */;
478
479 struct NETLOGON_LOGON_REQUEST {
480         const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
481         const char * user_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
482         const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
483         uint8_t request_count;
484         uint16_t lmnt_token;
485         uint16_t lm20_token;
486 };
487
488 struct NETLOGON_SAM_LOGON_RESPONSE_NT40 {
489         enum netlogon_command command;
490         const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
491         const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
492         const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
493         uint32_t nt_version;
494         uint16_t lmnt_token;
495         uint16_t lm20_token;
496 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
497
498 struct NETLOGON_SAM_LOGON_RESPONSE {
499         enum netlogon_command command;
500         const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
501         const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
502         const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
503         struct GUID domain_uuid;
504         struct GUID zero_uuid;
505         const char * forest;
506         const char * dns_domain;
507         const char * pdc_dns_name;
508         const char * pdc_ip;
509         uint32_t server_type;
510         uint32_t nt_version;
511         uint16_t lmnt_token;
512         uint16_t lm20_token;
513 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
514
515 struct NETLOGON_SAM_LOGON_RESPONSE_EX {
516         enum netlogon_command command;
517         uint16_t sbz;
518         uint32_t server_type;
519         struct GUID domain_uuid;
520         const char * forest;
521         const char * dns_domain;
522         const char * pdc_dns_name;
523         const char * domain_name;
524         const char * pdc_name;
525         const char * user_name;
526         const char * server_site;
527         const char * client_site;
528         uint8_t sockaddr_size;/* [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->flags))] */
529         struct nbt_sockaddr sockaddr;/* [subcontext_size(sockaddr_size),subcontext(0)] */
530         const char * next_closest_site;
531         uint32_t nt_version;
532         uint16_t lmnt_token;
533         uint16_t lm20_token;
534 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
535
536 struct nbt_netlogon_query_for_pdc {
537         const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
538         const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
539         DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
540         const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
541         uint32_t nt_version;
542         uint16_t lmnt_token;
543         uint16_t lm20_token;
544 };
545
546 struct nbt_netlogon_response_from_pdc {
547         enum netlogon_command command;
548         const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
549         DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
550         const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
551         const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
552         uint32_t nt_version;
553         uint16_t lmnt_token;
554         uint16_t lm20_token;
555 }/* [public] */;
556
557 struct nbt_netlogon_response2 {
558         enum netlogon_command command;
559         const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
560         uint16_t lm20_token;
561 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
562
563 struct nbt_db_change_info {
564         enum netr_SamDatabaseID db_index;
565         uint64_t serial;
566         NTTIME timestamp;
567 };
568
569 struct NETLOGON_DB_CHANGE {
570         uint32_t serial_lo;
571         time_t timestamp;
572         uint32_t pulse;
573         uint32_t random;
574         const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
575         const char * domain;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
576         DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
577         const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
578         const char * unicode_domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
579         uint32_t db_count;
580         struct nbt_db_change_info *dbchange;
581         uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
582         struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
583         uint32_t message_format_version;
584         uint32_t message_token;
585 };
586
587 union nbt_netlogon_request {
588         struct NETLOGON_LOGON_REQUEST logon0;/* [case(LOGON_REQUEST)] */
589         struct NETLOGON_SAM_LOGON_REQUEST logon;/* [case(LOGON_SAM_LOGON_REQUEST)] */
590         struct nbt_netlogon_query_for_pdc pdc;/* [case(LOGON_PRIMARY_QUERY)] */
591         struct NETLOGON_DB_CHANGE uas;/* [case(NETLOGON_ANNOUNCE_UAS)] */
592 }/* [nodiscriminant] */;
593
594 struct nbt_netlogon_packet {
595         enum netlogon_command command;
596         union nbt_netlogon_request req;/* [switch_is(command)] */
597 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
598
599 enum nbt_browse_opcode
600 #ifndef USE_UINT_ENUMS
601  {
602         HostAnnouncement=(int)(1),
603         AnnouncementRequest=(int)(2),
604         Election=(int)(8),
605         GetBackupListReq=(int)(9),
606         GetBackupListResp=(int)(10),
607         BecomeBackup=(int)(11),
608         DomainAnnouncement=(int)(12),
609         MasterAnnouncement=(int)(13),
610         ResetBrowserState=(int)(14),
611         LocalMasterAnnouncement=(int)(15)
612 }
613 #else
614  { __do_not_use_enum_nbt_browse_opcode=0x7FFFFFFF}
615 #define HostAnnouncement ( 1 )
616 #define AnnouncementRequest ( 2 )
617 #define Election ( 8 )
618 #define GetBackupListReq ( 9 )
619 #define GetBackupListResp ( 10 )
620 #define BecomeBackup ( 11 )
621 #define DomainAnnouncement ( 12 )
622 #define MasterAnnouncement ( 13 )
623 #define ResetBrowserState ( 14 )
624 #define LocalMasterAnnouncement ( 15 )
625 #endif
626 ;
627
628 struct nbt_browse_host_announcement {
629         uint8_t UpdateCount;
630         uint32_t Periodicity;
631         const char *ServerName;/* [charset(DOS)] */
632         uint8_t OSMajor;
633         uint8_t OSMinor;
634         uint32_t ServerType;
635         uint8_t BroMajorVer;
636         uint8_t BroMinorVer;
637         uint16_t Signature;
638         const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
639 };
640
641 struct nbt_browse_announcement_request {
642         uint8_t Unused;
643         const char * ResponseName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
644 };
645
646 struct nbt_browse_election_request {
647         uint8_t Version;
648         uint32_t Criteria;
649         uint32_t UpTime;
650         uint32_t Reserved;
651         const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
652 };
653
654 struct nbt_browse_backup_list_request {
655         uint8_t ReqCount;
656         uint32_t Token;
657 };
658
659 struct nbt_browse_backup_list_response {
660         uint8_t BackupCount;
661         uint32_t Token;
662         struct nbt_name *BackupServerList;
663 };
664
665 struct nbt_browse_become_backup {
666         const char * BrowserName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
667 };
668
669 struct nbt_browse_domain_announcement {
670         uint8_t UpdateCount;
671         uint32_t Periodicity;
672         const char *ServerName;/* [charset(DOS)] */
673         uint8_t OSMajor;
674         uint8_t OSMinor;
675         uint32_t ServerType;
676         uint32_t MysteriousField;
677         const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
678 };
679
680 struct nbt_browse_master_announcement {
681         const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
682 };
683
684 struct nbt_browse_reset_state {
685         uint8_t Command;
686 };
687
688 struct nbt_browse_local_master_announcement {
689         uint8_t UpdateCount;
690         uint32_t Periodicity;
691         const char *ServerName;/* [charset(DOS)] */
692         uint8_t OSMajor;
693         uint8_t OSMinor;
694         uint32_t ServerType;
695         uint8_t BroMajorVer;
696         uint8_t BroMinorVer;
697         uint16_t Signature;
698         const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
699 };
700
701 union nbt_browse_payload {
702         struct nbt_browse_host_announcement host_annoucement;/* [case(HostAnnouncement)] */
703         struct nbt_browse_announcement_request announcement_request;/* [case(AnnouncementRequest)] */
704         struct nbt_browse_election_request election_request;/* [case(Election)] */
705         struct nbt_browse_backup_list_request backup_list_request;/* [case(GetBackupListReq)] */
706         struct nbt_browse_backup_list_response backup_list_response;/* [case(GetBackupListResp)] */
707         struct nbt_browse_become_backup become_backup;/* [case(BecomeBackup)] */
708         struct nbt_browse_domain_announcement domain_announcement;/* [case(DomainAnnouncement)] */
709         struct nbt_browse_master_announcement master_announcement;/* [case(MasterAnnouncement)] */
710         struct nbt_browse_reset_state reset_browser_state;/* [case(ResetBrowserState)] */
711         struct nbt_browse_local_master_announcement local_master_announcement;/* [case(LocalMasterAnnouncement)] */
712 }/* [nodiscriminant] */;
713
714 struct nbt_browse_packet {
715         enum nbt_browse_opcode opcode;
716         union nbt_browse_payload payload;/* [switch_is(opcode)] */
717 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
718
719
720 struct decode_nbt_netlogon_packet {
721         struct {
722                 struct nbt_netlogon_packet packet;
723         } in;
724
725 };
726
727 #endif /* _HEADER_nbt */
728 #endif /* _PIDL_HEADER_nbt */