~lefteris-nikoltsios/+junk/samba-lp1016895

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_epmapper
#define _PIDL_HEADER_epmapper

#include <stdint.h>

#include "libcli/util/ntstatus.h"

#include "librpc/gen_ndr/misc.h"
#ifndef _HEADER_epmapper
#define _HEADER_epmapper

#define EPMAPPER_STATUS_CANT_PERFORM_OP	( 0x6d8 )
#define EPMAPPER_STATUS_NO_MORE_ENTRIES	( 0x16c9a0d6 )
#define EPMAPPER_STATUS_NO_MEMORY	( 0x16C9A012 )
#define EPMAPPER_STATUS_OK	( 0 )
enum epm_protocol
#ifndef USE_UINT_ENUMS
 {
	EPM_PROTOCOL_DNET_NSP=(int)(0x04),
	EPM_PROTOCOL_OSI_TP4=(int)(0x05),
	EPM_PROTOCOL_OSI_CLNS=(int)(0x06),
	EPM_PROTOCOL_TCP=(int)(0x07),
	EPM_PROTOCOL_UDP=(int)(0x08),
	EPM_PROTOCOL_IP=(int)(0x09),
	EPM_PROTOCOL_NCADG=(int)(0x0a),
	EPM_PROTOCOL_NCACN=(int)(0x0b),
	EPM_PROTOCOL_NCALRPC=(int)(0x0c),
	EPM_PROTOCOL_UUID=(int)(0x0d),
	EPM_PROTOCOL_IPX=(int)(0x0e),
	EPM_PROTOCOL_SMB=(int)(0x0f),
	EPM_PROTOCOL_NAMED_PIPE=(int)(0x10),
	EPM_PROTOCOL_NETBIOS=(int)(0x11),
	EPM_PROTOCOL_NETBEUI=(int)(0x12),
	EPM_PROTOCOL_SPX=(int)(0x13),
	EPM_PROTOCOL_NB_IPX=(int)(0x14),
	EPM_PROTOCOL_DSP=(int)(0x16),
	EPM_PROTOCOL_DDP=(int)(0x17),
	EPM_PROTOCOL_APPLETALK=(int)(0x18),
	EPM_PROTOCOL_VINES_SPP=(int)(0x1a),
	EPM_PROTOCOL_VINES_IPC=(int)(0x1b),
	EPM_PROTOCOL_STREETTALK=(int)(0x1c),
	EPM_PROTOCOL_HTTP=(int)(0x1f),
	EPM_PROTOCOL_UNIX_DS=(int)(0x20),
	EPM_PROTOCOL_NULL=(int)(0x21)
}
#else
 { __donnot_use_enum_epm_protocol=0x7FFFFFFF}
#define EPM_PROTOCOL_DNET_NSP ( 0x04 )
#define EPM_PROTOCOL_OSI_TP4 ( 0x05 )
#define EPM_PROTOCOL_OSI_CLNS ( 0x06 )
#define EPM_PROTOCOL_TCP ( 0x07 )
#define EPM_PROTOCOL_UDP ( 0x08 )
#define EPM_PROTOCOL_IP ( 0x09 )
#define EPM_PROTOCOL_NCADG ( 0x0a )
#define EPM_PROTOCOL_NCACN ( 0x0b )
#define EPM_PROTOCOL_NCALRPC ( 0x0c )
#define EPM_PROTOCOL_UUID ( 0x0d )
#define EPM_PROTOCOL_IPX ( 0x0e )
#define EPM_PROTOCOL_SMB ( 0x0f )
#define EPM_PROTOCOL_NAMED_PIPE ( 0x10 )
#define EPM_PROTOCOL_NETBIOS ( 0x11 )
#define EPM_PROTOCOL_NETBEUI ( 0x12 )
#define EPM_PROTOCOL_SPX ( 0x13 )
#define EPM_PROTOCOL_NB_IPX ( 0x14 )
#define EPM_PROTOCOL_DSP ( 0x16 )
#define EPM_PROTOCOL_DDP ( 0x17 )
#define EPM_PROTOCOL_APPLETALK ( 0x18 )
#define EPM_PROTOCOL_VINES_SPP ( 0x1a )
#define EPM_PROTOCOL_VINES_IPC ( 0x1b )
#define EPM_PROTOCOL_STREETTALK ( 0x1c )
#define EPM_PROTOCOL_HTTP ( 0x1f )
#define EPM_PROTOCOL_UNIX_DS ( 0x20 )
#define EPM_PROTOCOL_NULL ( 0x21 )
#endif
;

struct epm_rhs_dnet_nsp {
	char _empty_;
};

struct epm_rhs_osi_tp4 {
	char _empty_;
};

struct epm_rhs_osi_clns {
	char _empty_;
};

struct epm_rhs_udp {
	uint16_t port;
};

struct epm_rhs_tcp {
	uint16_t port;
};

struct epm_rhs_ip {
	const char * ipaddr;
};

struct epm_rhs_ncadg {
	uint16_t minor_version;
};

struct epm_rhs_ncacn {
	uint16_t minor_version;
};

struct epm_rhs_uuid {
	DATA_BLOB unknown;/* [flag(LIBNDR_FLAG_REMAINING)] */
};

struct epm_rhs_ipx {
	char _empty_;
};

struct epm_rhs_smb {
	const char * unc;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};

struct epm_rhs_named_pipe {
	const char * path;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};

struct epm_rhs_netbios {
	const char * name;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};

struct epm_rhs_netbeui {
	char _empty_;
};

struct epm_rhs_spx {
	char _empty_;
};

struct epm_rhs_nb_ipx {
	char _empty_;
};

struct epm_rhs_http {
	uint16_t port;
};

struct epm_rhs_unix_ds {
	const char * path;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};

struct epm_rhs_null {
	char _empty_;
};

struct epm_rhs_ncalrpc {
	uint16_t minor_version;
};

struct epm_rhs_appletalk {
	char _empty_;
};

struct epm_rhs_atalk_stream {
	char _empty_;
};

struct epm_rhs_atalk_datagram {
	char _empty_;
};

struct epm_rhs_vines_spp {
	uint16_t port;
};

struct epm_rhs_vines_ipc {
	uint16_t port;
};

struct epm_rhs_streettalk {
	const char * streettalk;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};

union epm_rhs {
	struct epm_rhs_dnet_nsp dnet_nsp;/* [case(EPM_PROTOCOL_DNET_NSP)] */
	struct epm_rhs_osi_tp4 osi_tp4;/* [case(EPM_PROTOCOL_OSI_TP4)] */
	struct epm_rhs_osi_clns osi_clns;/* [case(EPM_PROTOCOL_OSI_CLNS)] */
	struct epm_rhs_tcp tcp;/* [case(EPM_PROTOCOL_TCP)] */
	struct epm_rhs_udp udp;/* [case(EPM_PROTOCOL_UDP)] */
	struct epm_rhs_ip ip;/* [case(EPM_PROTOCOL_IP)] */
	struct epm_rhs_ncadg ncadg;/* [case(EPM_PROTOCOL_NCADG)] */
	struct epm_rhs_ncacn ncacn;/* [case(EPM_PROTOCOL_NCACN)] */
	struct epm_rhs_ncalrpc ncalrpc;/* [case(EPM_PROTOCOL_NCALRPC)] */
	struct epm_rhs_uuid uuid;/* [case(EPM_PROTOCOL_UUID)] */
	struct epm_rhs_ipx ipx;/* [case(EPM_PROTOCOL_IPX)] */
	struct epm_rhs_smb smb;/* [case(EPM_PROTOCOL_SMB)] */
	struct epm_rhs_named_pipe named_pipe;/* [case(EPM_PROTOCOL_NAMED_PIPE)] */
	struct epm_rhs_netbios netbios;/* [case(EPM_PROTOCOL_NETBIOS)] */
	struct epm_rhs_netbeui netbeui;/* [case(EPM_PROTOCOL_NETBEUI)] */
	struct epm_rhs_spx spx;/* [case(EPM_PROTOCOL_SPX)] */
	struct epm_rhs_nb_ipx nb_ipx;/* [case(EPM_PROTOCOL_NB_IPX)] */
	struct epm_rhs_atalk_stream atalk_stream;/* [case(EPM_PROTOCOL_DSP)] */
	struct epm_rhs_atalk_datagram atalk_datagram;/* [case(EPM_PROTOCOL_DDP)] */
	struct epm_rhs_appletalk appletalk;/* [case(EPM_PROTOCOL_APPLETALK)] */
	struct epm_rhs_vines_spp vines_spp;/* [case(EPM_PROTOCOL_VINES_SPP)] */
	struct epm_rhs_vines_ipc vines_ipc;/* [case(EPM_PROTOCOL_VINES_IPC)] */
	struct epm_rhs_streettalk streettalk;/* [case(EPM_PROTOCOL_STREETTALK)] */
	struct epm_rhs_http http;/* [case(EPM_PROTOCOL_HTTP)] */
	struct epm_rhs_unix_ds unix_ds;/* [case(EPM_PROTOCOL_UNIX_DS)] */
	struct epm_rhs_null null;/* [case(EPM_PROTOCOL_NULL)] */
	DATA_BLOB unknown;/* [default,flag(LIBNDR_FLAG_REMAINING)] */
}/* [nodiscriminant,flag(LIBNDR_FLAG_BIGENDIAN)] */;

struct epm_lhs {
	enum epm_protocol protocol;
	DATA_BLOB lhs_data;/* [flag(LIBNDR_FLAG_REMAINING)] */
};

struct epm_floor {
	struct epm_lhs lhs;/* [subcontext(2)] */
	union epm_rhs rhs;/* [subcontext(2),switch_is(lhs.protocol)] */
};

struct epm_tower {
	uint16_t num_floors;
	struct epm_floor *floors;
}/* [gensize,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN)] */;

struct epm_twr_t {
	uint32_t tower_length;/* [value(ndr_size_epm_tower(&tower,ndr->flags))] */
	struct epm_tower tower;/* [subcontext(4)] */
};

struct epm_entry_t {
	struct GUID object;
	struct epm_twr_t *tower;/* [ptr] */
	uint32_t __annotation_offset;/* [value(0)] */
	uint32_t __annotation_length;/* [value(strlen(annotation)+1)] */
	const char *annotation;/* [charset(DOS)] */
};

struct rpc_if_id_t {
	struct GUID uuid;
	uint16_t vers_major;
	uint16_t vers_minor;
};

enum epm_InquiryType
#ifndef USE_UINT_ENUMS
 {
	RPC_C_EP_ALL_ELTS=(int)(0x00000000),
	RPC_C_EP_MATCH_BY_IF=(int)(0x00000001),
	RPC_C_EP_MATCH_BY_OBJ=(int)(0x00000002),
	RPC_C_EP_MATCH_BY_BOTH=(int)(0x00000003)
}
#else
 { __donnot_use_enum_epm_InquiryType=0x7FFFFFFF}
#define RPC_C_EP_ALL_ELTS ( 0x00000000 )
#define RPC_C_EP_MATCH_BY_IF ( 0x00000001 )
#define RPC_C_EP_MATCH_BY_OBJ ( 0x00000002 )
#define RPC_C_EP_MATCH_BY_BOTH ( 0x00000003 )
#endif
;

enum epm_VersionOption
#ifndef USE_UINT_ENUMS
 {
	RPC_C_VERS_ALL=(int)(0x00000000),
	RPC_C_VERS_COMPATIBLE=(int)(0x00000001),
	RPC_C_VERS_EXACT=(int)(0x00000002),
	RPC_C_VERS_MAJOR_ONLY=(int)(0x00000003),
	RPC_C_VERS_UPTO=(int)(0x00000004)
}
#else
 { __donnot_use_enum_epm_VersionOption=0x7FFFFFFF}
#define RPC_C_VERS_ALL ( 0x00000000 )
#define RPC_C_VERS_COMPATIBLE ( 0x00000001 )
#define RPC_C_VERS_EXACT ( 0x00000002 )
#define RPC_C_VERS_MAJOR_ONLY ( 0x00000003 )
#define RPC_C_VERS_UPTO ( 0x00000004 )
#endif
;

struct epm_twr_p_t {
	struct epm_twr_t *twr;/* [ptr] */
};


struct epm_Insert {
	struct {
		uint32_t num_ents;
		struct epm_entry_t *entries;/* [size_is(num_ents)] */
		uint32_t replace;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct epm_Delete {
	struct {
		uint32_t num_ents;
		struct epm_entry_t *entries;/* [size_is(num_ents)] */
	} in;

	struct {
		uint32_t result;
	} out;

};


struct epm_Lookup {
	struct {
		enum epm_InquiryType inquiry_type;
		struct GUID *object;/* [ptr] */
		struct rpc_if_id_t *interface_id;/* [ptr] */
		enum epm_VersionOption vers_option;
		uint32_t max_ents;
		struct policy_handle *entry_handle;/* [ref] */
	} in;

	struct {
		uint32_t *num_ents;/* [ref] */
		struct epm_entry_t *entries;/* [length_is(*num_ents),size_is(max_ents)] */
		struct policy_handle *entry_handle;/* [ref] */
		uint32_t result;
	} out;

};


struct epm_Map {
	struct {
		struct GUID *object;/* [ptr] */
		struct epm_twr_t *map_tower;/* [ptr] */
		uint32_t max_towers;
		struct policy_handle *entry_handle;/* [ref] */
	} in;

	struct {
		uint32_t *num_towers;/* [ref] */
		struct epm_twr_p_t *towers;/* [length_is(*num_towers),size_is(max_towers)] */
		struct policy_handle *entry_handle;/* [ref] */
		uint32_t result;
	} out;

};


struct epm_LookupHandleFree {
	struct {
		struct policy_handle *entry_handle;/* [ref] */
	} in;

	struct {
		struct policy_handle *entry_handle;/* [ref] */
		uint32_t result;
	} out;

};


struct epm_InqObject {
	struct {
		struct GUID *epm_object;/* [ref] */
	} in;

	struct {
		uint32_t result;
	} out;

};


struct epm_MgmtDelete {
	struct {
		uint32_t object_speced;
		struct GUID *object;/* [ptr] */
		struct epm_twr_t *tower;/* [ptr] */
	} in;

	struct {
		uint32_t result;
	} out;

};


struct epm_MapAuth {
	struct {
		uint32_t result;
	} out;

};

#endif /* _HEADER_epmapper */
#endif /* _PIDL_HEADER_epmapper */