~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to librpc/gen_ndr/nbt.h

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
31
enum nbt_opcode
 
32
#ifndef USE_UINT_ENUMS
 
33
 {
 
34
        NBT_OPCODE_QUERY=(0x0<<11),
 
35
        NBT_OPCODE_REGISTER=(0x5<<11),
 
36
        NBT_OPCODE_RELEASE=(0x6<<11),
 
37
        NBT_OPCODE_WACK=(0x7<<11),
 
38
        NBT_OPCODE_REFRESH=(0x8<<11),
 
39
        NBT_OPCODE_REFRESH2=(0x9<<11),
 
40
        NBT_OPCODE_MULTI_HOME_REG=(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
 
 
54
enum nbt_rcode
 
55
#ifndef USE_UINT_ENUMS
 
56
 {
 
57
        NBT_RCODE_OK=0x0,
 
58
        NBT_RCODE_FMT=0x1,
 
59
        NBT_RCODE_SVR=0x2,
 
60
        NBT_RCODE_NAM=0x3,
 
61
        NBT_RCODE_IMP=0x4,
 
62
        NBT_RCODE_RFS=0x5,
 
63
        NBT_RCODE_ACT=0x6,
 
64
        NBT_RCODE_CFT=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
 
 
79
enum nbt_name_type
 
80
#ifndef USE_UINT_ENUMS
 
81
 {
 
82
        NBT_NAME_CLIENT=0x00,
 
83
        NBT_NAME_MS=0x01,
 
84
        NBT_NAME_USER=0x03,
 
85
        NBT_NAME_SERVER=0x20,
 
86
        NBT_NAME_PDC=0x1B,
 
87
        NBT_NAME_LOGON=0x1C,
 
88
        NBT_NAME_MASTER=0x1D,
 
89
        NBT_NAME_BROWSER=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
 
 
104
struct nbt_name {
 
105
        const char * name;
 
106
        const char * scope;
 
107
        enum nbt_name_type type;
 
108
}/* [nopull,public,nopush] */;
 
109
 
 
110
enum nbt_qclass
 
111
#ifndef USE_UINT_ENUMS
 
112
 {
 
113
        NBT_QCLASS_IP=0x01
 
114
}
 
115
#else
 
116
 { __donnot_use_enum_nbt_qclass=0x7FFFFFFF}
 
117
#define NBT_QCLASS_IP ( 0x01 )
 
118
#endif
 
119
;
 
120
 
 
121
enum nbt_qtype
 
122
#ifndef USE_UINT_ENUMS
 
123
 {
 
124
        NBT_QTYPE_ADDRESS=0x0001,
 
125
        NBT_QTYPE_NAMESERVICE=0x0002,
 
126
        NBT_QTYPE_NULL=0x000A,
 
127
        NBT_QTYPE_NETBIOS=0x0020,
 
128
        NBT_QTYPE_STATUS=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
 
 
140
struct nbt_name_question {
 
141
        struct nbt_name name;
 
142
        enum nbt_qtype question_type;
 
143
        enum nbt_qclass question_class;
 
144
};
 
145
 
 
146
enum nbt_node_type
 
147
#ifndef USE_UINT_ENUMS
 
148
 {
 
149
        NBT_NODE_B=0x0000,
 
150
        NBT_NODE_P=0x2000,
 
151
        NBT_NODE_M=0x4000,
 
152
        NBT_NODE_H=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
 
 
171
struct nbt_rdata_address {
 
172
        uint16_t nb_flags;
 
173
        const char * ipaddr;
 
174
};
 
175
 
 
176
struct nbt_rdata_netbios {
 
177
        uint16_t length;
 
178
        struct nbt_rdata_address *addresses;
 
179
};
 
180
 
 
181
struct 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
 
 
204
struct nbt_status_name {
 
205
        const char *name;/* [charset(DOS)] */
 
206
        enum nbt_name_type type;
 
207
        uint16_t nb_flags;
 
208
};
 
209
 
 
210
struct 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
 
 
217
struct nbt_rdata_data {
 
218
        uint16_t length;
 
219
        uint8_t *data;
 
220
};
 
221
 
 
222
union 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
 
 
228
struct 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
 
 
236
struct 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
 
 
250
enum dgram_msg_type
 
251
#ifndef USE_UINT_ENUMS
 
252
 {
 
253
        DGRAM_DIRECT_UNIQUE=0x10,
 
254
        DGRAM_DIRECT_GROUP=0x11,
 
255
        DGRAM_BCAST=0x12,
 
256
        DGRAM_ERROR=0x13,
 
257
        DGRAM_QUERY=0x14,
 
258
        DGRAM_QUERY_POSITIVE=0x15,
 
259
        DGRAM_QUERY_NEGATIVE=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
 
 
278
enum dgram_node_type
 
279
#ifndef USE_UINT_ENUMS
 
280
 {
 
281
        DGRAM_NODE_B=0x00,
 
282
        DGRAM_NODE_P=0x04,
 
283
        DGRAM_NODE_M=0x08,
 
284
        DGRAM_NODE_NBDD=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
 
 
295
enum smb_command
 
296
#ifndef USE_UINT_ENUMS
 
297
 {
 
298
        SMB_TRANSACTION=0x25
 
299
}
 
300
#else
 
301
 { __donnot_use_enum_smb_command=0x7FFFFFFF}
 
302
#define SMB_TRANSACTION ( 0x25 )
 
303
#endif
 
304
;
 
305
 
 
306
struct 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
 
 
331
union smb_body {
 
332
        struct smb_trans_body trans;/* [case(SMB_TRANSACTION)] */
 
333
}/* [nodiscriminant] */;
 
334
 
 
335
struct 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
 
 
352
union dgram_message_body {
 
353
        struct dgram_smb_packet smb;/* [case(DGRAM_SMB)] */
 
354
}/* [nodiscriminant] */;
 
355
 
 
356
struct 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
 
 
365
enum dgram_err_code
 
366
#ifndef USE_UINT_ENUMS
 
367
 {
 
368
        DGRAM_ERROR_NAME_NOT_PRESENT=0x82,
 
369
        DGRAM_ERROR_INVALID_SOURCE=0x83,
 
370
        DGRAM_ERROR_INVALID_DEST=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
 
 
380
union 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
 
 
386
struct 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
 
 
395
struct 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
 
 
415
/* bitmap netlogon_nt_version_flags */
 
416
#define NETLOGON_NT_VERSION_1 ( 0x00000001 )
 
417
#define NETLOGON_NT_VERSION_5 ( 0x00000002 )
 
418
#define NETLOGON_NT_VERSION_5EX ( 0x00000004 )
 
419
#define NETLOGON_NT_VERSION_5EX_WITH_IP ( 0x00000008 )
 
420
#define NETLOGON_NT_VERSION_WITH_CLOSEST_SITE ( 0x00000010 )
 
421
#define NETLOGON_NT_VERSION_AVIOD_NT4EMUL ( 0x01000000 )
 
422
#define NETLOGON_NT_VERSION_PDC ( 0x10000000 )
 
423
#define NETLOGON_NT_VERSION_IP ( 0x20000000 )
 
424
#define NETLOGON_NT_VERSION_LOCAL ( 0x40000000 )
 
425
#define NETLOGON_NT_VERSION_GC ( 0x80000000 )
 
426
 
 
427
enum netlogon_command
 
428
#ifndef USE_UINT_ENUMS
 
429
 {
 
430
        LOGON_PRIMARY_QUERY=7,
 
431
        NETLOGON_ANNOUNCE_UAS=10,
 
432
        NETLOGON_RESPONSE_FROM_PDC=12,
 
433
        LOGON_SAM_LOGON_REQUEST=18,
 
434
        LOGON_SAM_LOGON_RESPONSE=19,
 
435
        LOGON_SAM_LOGON_PAUSE_RESPONSE=20,
 
436
        LOGON_SAM_LOGON_USER_UNKNOWN=21,
 
437
        LOGON_SAM_LOGON_RESPONSE_EX=23,
 
438
        LOGON_SAM_LOGON_PAUSE_RESPONSE_EX=24,
 
439
        LOGON_SAM_LOGON_USER_UNKNOWN_EX=25
 
440
}
 
441
#else
 
442
 { __donnot_use_enum_netlogon_command=0x7FFFFFFF}
 
443
#define LOGON_PRIMARY_QUERY ( 7 )
 
444
#define NETLOGON_ANNOUNCE_UAS ( 10 )
 
445
#define NETLOGON_RESPONSE_FROM_PDC ( 12 )
 
446
#define LOGON_SAM_LOGON_REQUEST ( 18 )
 
447
#define LOGON_SAM_LOGON_RESPONSE ( 19 )
 
448
#define LOGON_SAM_LOGON_PAUSE_RESPONSE ( 20 )
 
449
#define LOGON_SAM_LOGON_USER_UNKNOWN ( 21 )
 
450
#define LOGON_SAM_LOGON_RESPONSE_EX ( 23 )
 
451
#define LOGON_SAM_LOGON_PAUSE_RESPONSE_EX ( 24 )
 
452
#define LOGON_SAM_LOGON_USER_UNKNOWN_EX ( 25 )
 
453
#endif
 
454
;
 
455
 
 
456
struct NETLOGON_SAM_LOGON_REQUEST {
 
457
        uint16_t request_count;
 
458
        const char * computer_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
459
        const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
460
        const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
461
        uint32_t acct_control;
 
462
        uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
 
463
        DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN4)] */
 
464
        struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
 
465
        uint32_t nt_version;
 
466
        uint16_t lmnt_token;
 
467
        uint16_t lm20_token;
 
468
}/* [nopull,nopush] */;
 
469
 
 
470
struct NETLOGON_SAM_LOGON_RESPONSE_NT40 {
 
471
        enum netlogon_command command;
 
472
        const char * server;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
473
        const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
474
        const char * domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
475
        uint32_t nt_version;
 
476
        uint16_t lmnt_token;
 
477
        uint16_t lm20_token;
 
478
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
479
 
 
480
struct NETLOGON_SAM_LOGON_RESPONSE {
 
481
        enum netlogon_command command;
 
482
        const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
483
        const char * user_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
484
        const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
485
        struct GUID domain_uuid;
 
486
        struct GUID zero_uuid;
 
487
        const char * forest;
 
488
        const char * dns_domain;
 
489
        const char * pdc_dns_name;
 
490
        const char * pdc_ip;
 
491
        uint32_t server_type;
 
492
        uint32_t nt_version;
 
493
        uint16_t lmnt_token;
 
494
        uint16_t lm20_token;
 
495
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
496
 
 
497
struct NETLOGON_SAM_LOGON_RESPONSE_EX {
 
498
        enum netlogon_command command;
 
499
        uint16_t sbz;
 
500
        uint32_t server_type;
 
501
        struct GUID domain_uuid;
 
502
        const char * forest;
 
503
        const char * dns_domain;
 
504
        const char * pdc_dns_name;
 
505
        const char * domain;
 
506
        const char * pdc_name;
 
507
        const char * user_name;
 
508
        const char * server_site;
 
509
        const char * client_site;
 
510
        uint8_t sockaddr_size;/* [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->iconv_convenience,ndr->flags))] */
 
511
        struct nbt_sockaddr sockaddr;/* [subcontext_size(sockaddr_size),subcontext(0)] */
 
512
        const char * next_closest_site;
 
513
        uint32_t nt_version;
 
514
        uint16_t lmnt_token;
 
515
        uint16_t lm20_token;
 
516
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
517
 
 
518
struct nbt_netlogon_query_for_pdc {
 
519
        const char * computer_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
520
        const char * mailslot_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
521
        DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
 
522
        const char * unicode_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
523
        uint32_t nt_version;
 
524
        uint16_t lmnt_token;
 
525
        uint16_t lm20_token;
 
526
};
 
527
 
 
528
struct nbt_netlogon_response_from_pdc {
 
529
        enum netlogon_command command;
 
530
        const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
531
        DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
 
532
        const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
533
        const char * domain_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
534
        uint32_t nt_version;
 
535
        uint16_t lmnt_token;
 
536
        uint16_t lm20_token;
 
537
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
538
 
 
539
struct nbt_db_change_info {
 
540
        enum netr_SamDatabaseID db_index;
 
541
        uint64_t serial;
 
542
        NTTIME timestamp;
 
543
};
 
544
 
 
545
struct NETLOGON_DB_CHANGE {
 
546
        uint32_t serial_lo;
 
547
        time_t timestamp;
 
548
        uint32_t pulse;
 
549
        uint32_t random;
 
550
        const char * pdc_name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
551
        const char * domain;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
552
        DATA_BLOB _pad;/* [flag(LIBNDR_FLAG_ALIGN2)] */
 
553
        const char * unicode_pdc_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
554
        const char * unicode_domain;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
 
555
        uint32_t db_count;
 
556
        struct nbt_db_change_info *dbchange;
 
557
        uint32_t sid_size;/* [value(ndr_size_dom_sid0(&sid,ndr->flags))] */
 
558
        struct dom_sid0 sid;/* [subcontext_size(sid_size),subcontext(0)] */
 
559
        uint32_t message_format_version;
 
560
        uint32_t message_token;
 
561
};
 
562
 
 
563
union nbt_netlogon_request {
 
564
        struct NETLOGON_SAM_LOGON_REQUEST logon;/* [case(LOGON_SAM_LOGON_REQUEST)] */
 
565
        struct nbt_netlogon_query_for_pdc pdc;/* [case(LOGON_PRIMARY_QUERY)] */
 
566
        struct NETLOGON_DB_CHANGE uas;/* [case(NETLOGON_ANNOUNCE_UAS)] */
 
567
}/* [nodiscriminant] */;
 
568
 
 
569
struct nbt_netlogon_packet {
 
570
        enum netlogon_command command;
 
571
        union nbt_netlogon_request req;/* [switch_is(command)] */
 
572
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
573
 
 
574
enum nbt_browse_opcode
 
575
#ifndef USE_UINT_ENUMS
 
576
 {
 
577
        HostAnnouncement=1,
 
578
        AnnouncementRequest=2,
 
579
        Election=8,
 
580
        GetBackupListReq=9,
 
581
        GetBackupListResp=10,
 
582
        BecomeBackup=11,
 
583
        DomainAnnouncement=12,
 
584
        MasterAnnouncement=13,
 
585
        ResetBrowserState=14,
 
586
        LocalMasterAnnouncement=15
 
587
}
 
588
#else
 
589
 { __donnot_use_enum_nbt_browse_opcode=0x7FFFFFFF}
 
590
#define HostAnnouncement ( 1 )
 
591
#define AnnouncementRequest ( 2 )
 
592
#define Election ( 8 )
 
593
#define GetBackupListReq ( 9 )
 
594
#define GetBackupListResp ( 10 )
 
595
#define BecomeBackup ( 11 )
 
596
#define DomainAnnouncement ( 12 )
 
597
#define MasterAnnouncement ( 13 )
 
598
#define ResetBrowserState ( 14 )
 
599
#define LocalMasterAnnouncement ( 15 )
 
600
#endif
 
601
;
 
602
 
 
603
struct nbt_browse_host_announcement {
 
604
        uint8_t UpdateCount;
 
605
        uint32_t Periodicity;
 
606
        const char *ServerName;/* [charset(DOS)] */
 
607
        uint8_t OSMajor;
 
608
        uint8_t OSMinor;
 
609
        uint32_t ServerType;
 
610
        uint8_t BroMajorVer;
 
611
        uint8_t BroMinorVer;
 
612
        uint16_t Signature;
 
613
        const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
614
};
 
615
 
 
616
struct nbt_browse_announcement_request {
 
617
        uint8_t Unused;
 
618
        const char * ResponseName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
619
};
 
620
 
 
621
struct nbt_browse_election_request {
 
622
        uint8_t Version;
 
623
        uint32_t Criteria;
 
624
        uint32_t UpTime;
 
625
        uint32_t Reserved;
 
626
        const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
627
};
 
628
 
 
629
struct nbt_browse_backup_list_request {
 
630
        uint8_t ReqCount;
 
631
        uint32_t Token;
 
632
};
 
633
 
 
634
struct nbt_browse_backup_list_response {
 
635
        uint8_t BackupCount;
 
636
        uint32_t Token;
 
637
        struct nbt_name *BackupServerList;
 
638
};
 
639
 
 
640
struct nbt_browse_become_backup {
 
641
        const char * BrowserName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
642
};
 
643
 
 
644
struct nbt_browse_domain_announcement {
 
645
        uint8_t UpdateCount;
 
646
        uint32_t Periodicity;
 
647
        const char *ServerName;/* [charset(DOS)] */
 
648
        uint8_t OSMajor;
 
649
        uint8_t OSMinor;
 
650
        uint32_t ServerType;
 
651
        uint32_t MysteriousField;
 
652
        const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
653
};
 
654
 
 
655
struct nbt_browse_master_announcement {
 
656
        const char * ServerName;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
657
};
 
658
 
 
659
struct nbt_browse_reset_state {
 
660
        uint8_t Command;
 
661
};
 
662
 
 
663
struct nbt_browse_local_master_announcement {
 
664
        uint8_t UpdateCount;
 
665
        uint32_t Periodicity;
 
666
        const char *ServerName;/* [charset(DOS)] */
 
667
        uint8_t OSMajor;
 
668
        uint8_t OSMinor;
 
669
        uint32_t ServerType;
 
670
        uint8_t BroMajorVer;
 
671
        uint8_t BroMinorVer;
 
672
        uint16_t Signature;
 
673
        const char * Comment;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 
674
};
 
675
 
 
676
union nbt_browse_payload {
 
677
        struct nbt_browse_host_announcement host_annoucement;/* [case(HostAnnouncement)] */
 
678
        struct nbt_browse_announcement_request announcement_request;/* [case(AnnouncementRequest)] */
 
679
        struct nbt_browse_election_request election_request;/* [case(Election)] */
 
680
        struct nbt_browse_backup_list_request backup_list_request;/* [case(GetBackupListReq)] */
 
681
        struct nbt_browse_backup_list_response backup_list_response;/* [case(GetBackupListResp)] */
 
682
        struct nbt_browse_become_backup become_backup;/* [case(BecomeBackup)] */
 
683
        struct nbt_browse_domain_announcement domain_announcement;/* [case(DomainAnnouncement)] */
 
684
        struct nbt_browse_master_announcement master_announcement;/* [case(MasterAnnouncement)] */
 
685
        struct nbt_browse_reset_state reset_browser_state;/* [case(ResetBrowserState)] */
 
686
        struct nbt_browse_local_master_announcement local_master_announcement;/* [case(LocalMasterAnnouncement)] */
 
687
}/* [nodiscriminant] */;
 
688
 
 
689
struct nbt_browse_packet {
 
690
        enum nbt_browse_opcode opcode;
 
691
        union nbt_browse_payload payload;/* [switch_is(opcode)] */
 
692
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;
 
693
 
 
694
#endif /* _HEADER_nbt */