1 /* header auto-generated by pidl */
3 #ifndef _PIDL_HEADER_nbt
4 #define _PIDL_HEADER_nbt
8 #include "libcli/util/ntstatus.h"
10 #include "librpc/gen_ndr/misc.h"
11 #include "librpc/gen_ndr/security.h"
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 )
33 #ifndef USE_UINT_ENUMS
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))
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) )
56 #ifndef USE_UINT_ENUMS
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)
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 )
81 #ifndef USE_UINT_ENUMS
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)
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 )
108 enum nbt_name_type type;
109 }/* [nopull,public,nopush] */;
112 #ifndef USE_UINT_ENUMS
114 NBT_QCLASS_IP=(int)(0x01)
117 { __do_not_use_enum_nbt_qclass=0x7FFFFFFF}
118 #define NBT_QCLASS_IP ( 0x01 )
123 #ifndef USE_UINT_ENUMS
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)
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 )
141 struct nbt_name_question {
142 struct nbt_name name;
143 enum nbt_qtype question_type;
144 enum nbt_qclass question_class;
148 #ifndef USE_UINT_ENUMS
150 NBT_NODE_B=(int)(0x0000),
151 NBT_NODE_P=(int)(0x2000),
152 NBT_NODE_M=(int)(0x4000),
153 NBT_NODE_H=(int)(0x6000)
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 )
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 )
172 struct nbt_rdata_address {
177 struct nbt_rdata_netbios {
179 struct nbt_rdata_address *addresses;
182 struct nbt_statistics {
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;
205 struct nbt_status_name {
206 const char *name;/* [charset(DOS)] */
207 enum nbt_name_type type;
211 struct nbt_rdata_status {
212 uint16_t length;/* [value(num_names*18+47)] */
214 struct nbt_status_name *names;
215 struct nbt_statistics statistics;
218 struct nbt_rdata_data {
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] */;
230 struct nbt_name name;
231 enum nbt_qtype rr_type;
232 enum nbt_qclass rr_class;
234 union nbt_rdata rdata;/* [switch_is(rr_type)] */
235 }/* [nopush,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
237 struct nbt_name_packet {
238 uint16_t name_trn_id;
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)] */;
252 #ifndef USE_UINT_ENUMS
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)
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 )
274 /* bitmap dgram_flags */
275 #define DGRAM_FLAG_MORE ( 0x01 )
276 #define DGRAM_FLAG_FIRST ( 0x02 )
277 #define DGRAM_FLAG_NODE_TYPE ( 0x0C )
280 #ifndef USE_UINT_ENUMS
282 DGRAM_NODE_B=(int)(0x00),
283 DGRAM_NODE_P=(int)(0x04),
284 DGRAM_NODE_M=(int)(0x08),
285 DGRAM_NODE_NBDD=(int)(0x0C)
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 )
297 #ifndef USE_UINT_ENUMS
299 SMB_TRANSACTION=(int)(0x25)
302 { __do_not_use_enum_smb_command=0x7FFFFFFF}
303 #define SMB_TRANSACTION ( 0x25 )
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;
315 uint16_t trans_flags;
318 uint16_t param_count;
319 uint16_t param_offset;
321 uint16_t data_offset;
322 uint8_t setup_count;/* [value(3),range(3,3)] */
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)] */
333 struct smb_trans_body trans;/* [case(SMB_TRANSACTION)] */
334 }/* [nodiscriminant] */;
336 struct dgram_smb_packet {
337 enum smb_command smb_command;
344 uint8_t signature[8];
350 union smb_body body;/* [switch_is(smb_command)] */
351 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
353 union dgram_message_body {
354 struct dgram_smb_packet smb;/* [case(DGRAM_SMB)] */
355 }/* [nodiscriminant] */;
357 struct dgram_message {
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)] */
367 #ifndef USE_UINT_ENUMS
369 DGRAM_ERROR_NAME_NOT_PRESENT=(int)(0x82),
370 DGRAM_ERROR_INVALID_SOURCE=(int)(0x83),
371 DGRAM_ERROR_INVALID_DEST=(int)(0x84)
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 )
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] */;
387 struct nbt_dgram_packet {
388 enum dgram_msg_type msg_type;
391 const char * src_addr;
393 union dgram_data data;/* [switch_is(msg_type)] */
394 }/* [public,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX)] */;
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] */;
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 )
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 )
432 enum netlogon_command
433 #ifndef USE_UINT_ENUMS
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)
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 )
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)] */
477 }/* [nopull,nopush] */;
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;
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)] */
496 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
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;
506 const char * dns_domain;
507 const char * pdc_dns_name;
509 uint32_t server_type;
513 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
515 struct NETLOGON_SAM_LOGON_RESPONSE_EX {
516 enum netlogon_command command;
518 uint32_t server_type;
519 struct GUID domain_uuid;
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;
534 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
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)] */
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)] */
557 struct nbt_netlogon_response2 {
558 enum netlogon_command command;
559 const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
561 }/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
563 struct nbt_db_change_info {
564 enum netr_SamDatabaseID db_index;
569 struct NETLOGON_DB_CHANGE {
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)] */
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;
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] */;
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)] */;
599 enum nbt_browse_opcode
600 #ifndef USE_UINT_ENUMS
602 HostAnnouncement=(int)(1),
603 AnnouncementRequest=(int)(2),
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)
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 )
628 struct nbt_browse_host_announcement {
630 uint32_t Periodicity;
631 const char *ServerName;/* [charset(DOS)] */
638 const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
641 struct nbt_browse_announcement_request {
643 const char * ResponseName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
646 struct nbt_browse_election_request {
651 const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
654 struct nbt_browse_backup_list_request {
659 struct nbt_browse_backup_list_response {
662 struct nbt_name *BackupServerList;
665 struct nbt_browse_become_backup {
666 const char * BrowserName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
669 struct nbt_browse_domain_announcement {
671 uint32_t Periodicity;
672 const char *ServerName;/* [charset(DOS)] */
676 uint32_t MysteriousField;
677 const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
680 struct nbt_browse_master_announcement {
681 const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
684 struct nbt_browse_reset_state {
688 struct nbt_browse_local_master_announcement {
690 uint32_t Periodicity;
691 const char *ServerName;/* [charset(DOS)] */
698 const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
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] */;
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)] */;
720 struct decode_nbt_netlogon_packet {
722 struct nbt_netlogon_packet packet;
727 #endif /* _HEADER_nbt */
728 #endif /* _PIDL_HEADER_nbt */