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