Add a 1004 level for srvsvc.
[Samba/gebeck_regimport.git] / source4 / librpc / idl / srvsvc.idl
blob31399520c0beb4903bebfbc9d183fea01c205c61
1 /*
2 srvsvc interface definitions
3 */
5 [ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
6 version(3.0),
7 pointer_default(unique)
8 ] interface srvsvc
10 /******************/
11 /* Function: 0x00 */
12 NTSTATUS srvsvc_00(
15 /******************/
16 /* Function: 0x01 */
17 NTSTATUS srvsvc_01(
20 /******************/
21 /* Function: 0x02 */
22 NTSTATUS srvsvc_02(
25 /******************/
26 /* Function: 0x03 */
27 NTSTATUS srvsvc_03(
30 /******************/
31 /* Function: 0x04 */
32 NTSTATUS srvsvc_04(
35 /******************/
36 /* Function: 0x05 */
37 NTSTATUS srvsvc_05(
40 /******************/
41 /* Function: 0x06 */
42 NTSTATUS srvsvc_06(
45 /******************/
46 /* Function: 0x07 */
47 NTSTATUS srvsvc_07(
50 /******************/
51 /* Function: 0x08 */
53 typedef struct {
54 uint32 conn_id;
55 } srvsvc_NetConn0;
57 typedef struct {
58 uint32 count;
59 [size_is(count)] srvsvc_NetConn0 *array;
60 } srvsvc_NetConnCtr0;
62 typedef struct {
63 uint32 conn_id;
64 uint32 conn_type;
65 uint32 num_open;
66 uint32 num_users;
67 uint32 conn_time;
68 unistr *user;
69 unistr *client;
70 } srvsvc_NetConn1;
72 typedef struct {
73 uint32 count;
74 [size_is(count)] srvsvc_NetConn1 *array;
75 } srvsvc_NetConnCtr1;
77 typedef union {
78 [case(0)] srvsvc_NetConnCtr0 *ctr0;
79 [case(1)] srvsvc_NetConnCtr1 *ctr1;
80 [default] ;
81 } srvsvc_NetConnCtr;
83 WERROR srvsvc_NetConnEnum(
84 [in] unistr *server_unc,
85 [in] unistr *path,
86 [in,out] uint32 level,
87 [in,out,switch_is(level)] srvsvc_NetConnCtr ctr,
88 [in] uint32 preferred_len,
89 [out] uint32 total,
90 [in,out] uint32 *resume_handle
93 /******************/
94 /* Function: 0x09 */
96 typedef struct {
97 uint32 fid;
98 } srvsvc_NetFile2;
100 typedef struct {
101 uint32 count;
102 [size_is(count)] srvsvc_NetFile2 *array;
103 } srvsvc_NetFileCtr2;
105 typedef struct {
106 uint32 fid;
107 uint32 permissions;
108 uint32 num_locks;
109 unistr *path;
110 unistr *user;
111 } srvsvc_NetFile3;
113 typedef struct {
114 uint32 count;
115 [size_is(count)] srvsvc_NetFile3 *array;
116 } srvsvc_NetFileCtr3;
118 typedef union {
119 [case(2)] srvsvc_NetFileCtr2 *ctr2;
120 [case(3)] srvsvc_NetFileCtr3 *ctr3;
121 [default] ;
122 } srvsvc_NetFileCtr;
124 WERROR srvsvc_NetFileEnum(
125 [in] unistr *server_unc,
126 [in] unistr *path,
127 [in] unistr *user,
128 [in,out] uint32 level,
129 [in,out,switch_is(level)] srvsvc_NetFileCtr ctr,
130 [in] uint32 preferred_len,
131 [out] uint32 total,
132 [in,out] uint32 *resume_handle
135 /******************/
136 /* Function: 0x0a */
137 NTSTATUS srvsvc_0a(
140 /******************/
141 /* Function: 0x0b */
142 NTSTATUS srvsvc_NET_FILE_CLOSE(
145 /******************/
146 /* Function: 0x0c */
148 typedef struct {
149 unistr *client;
150 } srvsvc_NetSess0;
152 typedef struct {
153 uint32 count;
154 [size_is(count)] srvsvc_NetSess0 *array;
155 } srvsvc_NetSessCtr0;
157 typedef struct {
158 unistr *client;
159 unistr *user;
160 uint32 num_open;
161 uint32 time;
162 uint32 idle_time;
163 uint32 user_flags;
164 } srvsvc_NetSess1;
166 typedef struct {
167 uint32 count;
168 [size_is(count)] srvsvc_NetSess1 *array;
169 } srvsvc_NetSessCtr1;
171 typedef struct {
172 unistr *client;
173 unistr *user;
174 uint32 num_open;
175 uint32 time;
176 uint32 idle_time;
177 uint32 user_flags;
178 unistr *client_type;
179 } srvsvc_NetSess2;
181 typedef struct {
182 uint32 count;
183 [size_is(count)] srvsvc_NetSess2 *array;
184 } srvsvc_NetSessCtr2;
186 typedef struct {
187 unistr *client;
188 unistr *user;
189 uint32 time;
190 uint32 idle_time;
191 } srvsvc_NetSess10;
193 typedef struct {
194 uint32 count;
195 [size_is(count)] srvsvc_NetSess10 *array;
196 } srvsvc_NetSessCtr10;
198 typedef struct {
199 unistr *client;
200 unistr *user;
201 uint32 num_open;
202 uint32 time;
203 uint32 idle_time;
204 uint32 user_flags;
205 unistr *client_type;
206 unistr *transport;
207 } srvsvc_NetSess502;
209 typedef struct {
210 uint32 count;
211 [size_is(count)] srvsvc_NetSess502 *array;
212 } srvsvc_NetSessCtr502;
214 typedef union {
215 [case(0)] srvsvc_NetSessCtr0 *ctr0;
216 [case(1)] srvsvc_NetSessCtr1 *ctr1;
217 [case(2)] srvsvc_NetSessCtr2 *ctr2;
218 [case(10)] srvsvc_NetSessCtr10 *ctr10;
219 [case(502)] srvsvc_NetSessCtr502 *ctr502;
220 [default] ;
221 } srvsvc_NetSessCtr;
223 WERROR srvsvc_NetSessEnum(
224 [in] unistr *server_unc,
225 [in] unistr *client,
226 [in] unistr *user,
227 [in,out] uint32 level,
228 [in,out,switch_is(level)] srvsvc_NetSessCtr ctr,
229 [in] uint32 preferred_len,
230 [out] uint32 total,
231 [in,out] uint32 *resume_handle
234 /******************/
235 /* Function: 0x0d */
236 NTSTATUS srvsvc_0d(
239 /******************/
240 /* Function: 0x0e */
241 NTSTATUS srvsvc_NET_SHARE_ADD(
244 /******************/
245 /* Function: 0x0f */
247 typedef struct {
248 unistr *name;
249 } srvsvc_NetShare0;
251 typedef struct {
252 uint32 count;
253 [size_is(count)] srvsvc_NetShare0 *array;
254 } srvsvc_NetShareCtr0;
256 typedef struct {
257 unistr *name;
258 uint32 type;
259 unistr *comment;
260 } srvsvc_NetShare1;
262 typedef struct {
263 uint32 count;
264 [size_is(count)] srvsvc_NetShare1 *array;
265 } srvsvc_NetShareCtr1;
267 typedef struct {
268 unistr *name;
269 uint32 type;
270 unistr *comment;
271 uint32 permissions;
272 uint32 max_users;
273 uint32 current_users;
274 unistr *path;
275 uint32 *password;
276 } srvsvc_NetShare2;
278 typedef struct {
279 uint32 count;
280 [size_is(count)] srvsvc_NetShare2 *array;
281 } srvsvc_NetShareCtr2;
283 typedef struct {
284 unistr *name;
285 uint32 type;
286 unistr *comment;
287 uint32 csc_policy;
288 } srvsvc_NetShare501;
290 typedef struct {
291 uint32 count;
292 [size_is(count)] srvsvc_NetShare501 *array;
293 } srvsvc_NetShareCtr501;
295 typedef struct {
296 unistr *name;
297 uint32 type;
298 unistr *comment;
299 uint32 permissions;
300 uint32 max_users;
301 uint32 current_users;
302 unistr *path;
303 uint32 *password;
304 uint32 unknown;
305 [subcontext] security_descriptor *sd;
306 } srvsvc_NetShare502;
308 typedef struct {
309 uint32 count;
310 [size_is(count)] srvsvc_NetShare502 *array;
311 } srvsvc_NetShareCtr502;
313 typedef struct {
314 unistr *comment;
315 } srvsvc_NetShare1004;
317 typedef struct {
318 uint32 count;
319 [size_is(count)] srvsvc_NetShare1004 *array;
320 } srvsvc_NetShareCtr1004;
322 typedef union {
323 [case(0)] srvsvc_NetShareCtr0 *ctr0;
324 [case(1)] srvsvc_NetShareCtr1 *ctr1;
325 [case(2)] srvsvc_NetShareCtr2 *ctr2;
326 [case(501)] srvsvc_NetShareCtr501 *ctr501;
327 [case(502)] srvsvc_NetShareCtr502 *ctr502;
328 [case(1004)] srvsvc_NetShareCtr1004 *ctr1004;
329 [default] ;
330 } srvsvc_NetShareCtr;
332 WERROR srvsvc_NetShareEnumAll(
333 [in] unistr *server_unc,
334 [in,out] uint32 level,
335 [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
336 [in] uint32 preferred_len,
337 [out] uint32 totalentries,
338 [in,out] uint32 *resume_handle
341 /******************/
342 /* Function: 0x10 */
343 NTSTATUS srvsvc_NET_SHARE_GET_INFO(
346 /******************/
347 /* Function: 0x11 */
348 NTSTATUS srvsvc_NET_SHARE_SET_INFO(
351 /******************/
352 /* Function: 0x12 */
353 NTSTATUS srvsvc_NET_SHARE_DEL(
356 /******************/
357 /* Function: 0x13 */
358 NTSTATUS srvsvc_NET_SHARE_DEL_STICKY(
361 /******************/
362 /* Function: 0x14 */
363 NTSTATUS srvsvc_14(
366 /******************/
367 /* Function: 0x15 */
368 NTSTATUS srvsvc_NET_SRV_GET_INFO(
371 /******************/
372 /* Function: 0x16 */
373 NTSTATUS srvsvc_NET_SRV_SET_INFO(
376 /******************/
377 /* Function: 0x17 */
379 typedef struct {
380 uint32 unknown;
381 uint32 size;
382 [size_is(size)] uint8 *disk;
383 } srvsvc_NetDisk0;
385 typedef struct {
386 uint32 count;
387 uint32 unknown1;
388 uint32 unknown2;
389 [size_is(count)] srvsvc_NetDisk0 *array;
390 } srvsvc_NetDiskCtr0;
392 typedef struct {
393 uint32 dummy;
394 } srvsvc_NetDisk1;
396 typedef struct {
397 uint32 count;
398 [size_is(count)] srvsvc_NetDisk1 *array;
399 } srvsvc_NetDiskCtr1;
401 typedef struct {
402 uint32 dummy;
403 } srvsvc_NetDisk2;
405 typedef struct {
406 uint32 count;
407 [size_is(count)] srvsvc_NetDisk2 *array;
408 } srvsvc_NetDiskCtr2;
410 typedef struct {
411 uint32 dummy;
412 } srvsvc_NetDisk3;
414 typedef struct {
415 uint32 count;
416 [size_is(count)] srvsvc_NetDisk3 *array;
417 } srvsvc_NetDiskCtr3;
419 typedef union {
420 [case(0)] srvsvc_NetDiskCtr0 ctr0;
421 [case(1)] srvsvc_NetDiskCtr1 ctr1;
422 [case(2)] srvsvc_NetDiskCtr2 ctr2;
423 [case(3)] srvsvc_NetDiskCtr3 ctr3;
424 [default] ;
425 } srvsvc_NetDiskSubCtr;
427 typedef struct {
428 uint32 num1;
429 srvsvc_NetDiskCtr0 *ctr0;
430 } srvsvc_NetDiskCtr;
432 WERROR srvsvc_NetDiskEnum(
433 [in] unistr *server_unc,
434 [in] uint32 level,
435 [in] uint32 unknown1,
436 [in] uint32 unknown2,
437 [in] uint32 preferred_len,
438 [out] srvsvc_NetDiskCtr ctr,
439 [out] uint32 total,
440 [in,out] uint32 *resume_handle
443 /******************/
444 /* Function: 0x18 */
445 NTSTATUS srvsvc_18(
448 /******************/
449 /* Function: 0x19 */
450 NTSTATUS srvsvc_19(
453 /******************/
454 /* Function: 0x1a */
456 typedef struct {
457 uint32 count;
458 [size_is(count)] uint8 *addr;
459 } srvsvc_TransportAddress;
461 typedef struct {
462 uint32 vcs;
463 unistr *name;
464 srvsvc_TransportAddress *addr;
465 uint32 addr_len;
466 unistr *net_addr;
467 } srvsvc_NetTransport0;
469 typedef struct {
470 uint32 count;
471 [size_is(count)] srvsvc_NetTransport0 *array;
472 } srvsvc_NetTransportCtr0;
474 typedef struct {
475 uint32 vcs;
476 unistr *name;
477 srvsvc_TransportAddress *addr;
478 uint32 addr_len;
479 unistr *net_addr;
480 unistr *domain;
481 } srvsvc_NetTransport1;
483 typedef struct {
484 uint32 count;
485 [size_is(count)] srvsvc_NetTransport1 *array;
486 } srvsvc_NetTransportCtr1;
488 typedef struct {
489 uint32 dummy;
490 } srvsvc_NetTransport2;
492 typedef struct {
493 uint32 count;
494 [size_is(count)] srvsvc_NetTransport2 *array;
495 } srvsvc_NetTransportCtr2;
497 typedef union {
498 [case(0)] srvsvc_NetTransportCtr0 *ctr0;
499 [case(1)] srvsvc_NetTransportCtr1 *ctr1;
500 [case(2)] srvsvc_NetTransportCtr2 *ctr2;
501 } srvsvc_NetTransportCtr;
503 WERROR srvsvc_NetTransportEnum(
504 [in] unistr *server_unc,
505 [in,out] uint32 level,
506 [in,out,switch_is(level)] srvsvc_NetTransportCtr ctr,
507 [in] uint32 preferred_len,
508 [out] uint32 total,
509 [in,out] uint32 *resume_handle
512 /******************/
513 /* Function: 0x1b */
514 NTSTATUS srvsvc_1b(
517 /******************/
518 /* Function: 0x1c */
519 NTSTATUS srvsvc_NET_REMOTE_TOD(
522 /******************/
523 /* Function: 0x1d */
524 NTSTATUS srvsvc_1d(
527 /******************/
528 /* Function: 0x1e */
529 NTSTATUS srvsvc_1e(
532 /******************/
533 /* Function: 0x1f */
534 NTSTATUS srvsvc_1f(
537 /******************/
538 /* Function: 0x20 */
539 NTSTATUS srvsvc_20(
542 /******************/
543 /* Function: 0x21 */
544 NTSTATUS srvsvc_NET_NAME_VALIDATE(
547 /******************/
548 /* Function: 0x22 */
549 NTSTATUS srvsvc_22(
552 /******************/
553 /* Function: 0x23 */
554 NTSTATUS srvsvc_23(
557 /******************/
558 /* Function: 0x24 */
559 /* Note, there must be some way to return entries read vs
560 total entries ... */
561 WERROR srvsvc_NetShareEnum(
562 [in] unistr *server_unc,
563 [in,out] uint32 level,
564 [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
565 [in] uint32 preferred_len,
566 [out] uint32 totalentries,
567 [in,out] uint32 *resume_handle
570 /******************/
571 /* Function: 0x25 */
572 NTSTATUS srvsvc_25(
575 /******************/
576 /* Function: 0x26 */
577 NTSTATUS srvsvc_26(
580 /******************/
581 /* Function: 0x27 */
582 NTSTATUS srvsvc_NET_FILE_QUERY_SECDESC(
585 /******************/
586 /* Function: 0x28 */
587 NTSTATUS srvsvc_NET_FILE_SET_SECDESC(