Fix up some things in the IDL, and fix up a mistake I made before.
[Samba/gebeck_regimport.git] / source4 / librpc / idl / srvsvc.idl
blob02055dccb66b4f2aaa6a801bca25cc1200dfc4aa
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 struct {
78 } srvsvc_NetConnCtrDefault;
80 typedef [nodiscriminant,public] union {
81 case(0) srvsvc_NetConnCtr0 *ctr0;
82 case(1) srvsvc_NetConnCtr1 *ctr1;
83 default srvsvc_NetConnCtrDefault ctrDefault;
84 } srvsvc_NetConnSubCtr;
86 typedef struct {
87 uint32 level;
88 uint32 level2;
89 [switch_is(level)] srvsvc_NetConnSubCtr subctr;
90 } srvsvc_NetConnCtr;
92 WERROR srvsvc_NetConnEnum(
93 [in] unistr *server_unc,
94 [in] unistr *path,
95 [in,out] srvsvc_NetConnCtr ctr,
96 [in] uint32 preferred_len,
97 [out] uint32 total,
98 [in,out] uint32 *resume_handle
101 /******************/
102 /* Function: 0x09 */
104 typedef struct {
105 uint32 fid;
106 } srvsvc_NetFile2;
108 typedef struct {
109 uint32 count;
110 [size_is(count)] srvsvc_NetFile2 *array;
111 } srvsvc_NetFileCtr2;
113 typedef struct {
114 uint32 fid;
115 uint32 permissions;
116 uint32 num_locks;
117 unistr *path;
118 unistr *user;
119 } srvsvc_NetFile3;
121 typedef struct {
122 uint32 count;
123 [size_is(count)] srvsvc_NetFile3 *array;
124 } srvsvc_NetFileCtr3;
126 typedef struct {
127 } srvsvc_NetFileCtrDefault;
129 typedef [nodiscriminant,public] union {
130 case(2) srvsvc_NetFileCtr2 *ctr2;
131 case(3) srvsvc_NetFileCtr3 *ctr3;
132 default srvsvc_NetFileCtrDefault ctrDefault;
133 } srvsvc_NetFileSubCtr;
135 typedef struct {
136 uint32 level;
137 uint32 level2;
138 [switch_is(level)] srvsvc_NetFileSubCtr subctr;
139 } srvsvc_NetFileCtr;
141 WERROR srvsvc_NetFileEnum(
142 [in] unistr *server_unc,
143 [in] unistr *path,
144 [in] unistr *user,
145 [in,out] srvsvc_NetFileCtr ctr,
146 [in] uint32 preferred_len,
147 [out] uint32 total,
148 [in,out] uint32 *resume_handle
151 /******************/
152 /* Function: 0x0a */
153 NTSTATUS srvsvc_0a(
156 /******************/
157 /* Function: 0x0b */
158 NTSTATUS srvsvc_NET_FILE_CLOSE(
161 /******************/
162 /* Function: 0x0c */
164 typedef struct {
165 unistr *client;
166 } srvsvc_NetSess0;
168 typedef struct {
169 uint32 count;
170 [size_is(count)] srvsvc_NetSess0 *array;
171 } srvsvc_NetSessCtr0;
173 typedef struct {
174 unistr *client;
175 unistr *user;
176 uint32 num_open;
177 uint32 time;
178 uint32 idle_time;
179 uint32 user_flags;
180 } srvsvc_NetSess1;
182 typedef struct {
183 uint32 count;
184 [size_is(count)] srvsvc_NetSess1 *array;
185 } srvsvc_NetSessCtr1;
187 typedef struct {
188 unistr *client;
189 unistr *user;
190 uint32 num_open;
191 uint32 time;
192 uint32 idle_time;
193 uint32 user_flags;
194 unistr *client_type;
195 } srvsvc_NetSess2;
197 typedef struct {
198 uint32 count;
199 [size_is(count)] srvsvc_NetSess2 *array;
200 } srvsvc_NetSessCtr2;
202 typedef struct {
203 unistr *client;
204 unistr *user;
205 uint32 time;
206 uint32 idle_time;
207 } srvsvc_NetSess10;
209 typedef struct {
210 uint32 count;
211 [size_is(count)] srvsvc_NetSess10 *array;
212 } srvsvc_NetSessCtr10;
214 typedef struct {
215 unistr *client;
216 unistr *user;
217 uint32 num_open;
218 uint32 time;
219 uint32 idle_time;
220 uint32 user_flags;
221 unistr *client_type;
222 unistr *transport;
223 } srvsvc_NetSess502;
225 typedef struct {
226 uint32 count;
227 [size_is(count)] srvsvc_NetSess502 *array;
228 } srvsvc_NetSessCtr502;
230 typedef struct {
231 } srvsvc_NetSessCtrDefault;
233 typedef [nodiscriminant,public] union {
234 case(0) srvsvc_NetSessCtr0 *ctr0;
235 case(1) srvsvc_NetSessCtr1 *ctr1;
236 case(2) srvsvc_NetSessCtr2 *ctr2;
237 case(10) srvsvc_NetSessCtr10 *ctr10;
238 case(502) srvsvc_NetSessCtr502 *ctr502;
239 default srvsvc_NetSessCtrDefault ctrDefault;
240 } srvsvc_NetSessSubCtr;
242 typedef struct {
243 uint32 level;
244 uint32 level2;
245 [switch_is(level)] srvsvc_NetSessSubCtr subctr;
246 } srvsvc_NetSessCtr;
248 WERROR srvsvc_NetSessEnum(
249 [in] unistr *server_unc,
250 [in] unistr *client,
251 [in] unistr *user,
252 [in,out] srvsvc_NetSessCtr ctr,
253 [in] uint32 preferred_len,
254 [out] uint32 total,
255 [in,out] uint32 *resume_handle
258 /******************/
259 /* Function: 0x0d */
260 NTSTATUS srvsvc_0d(
263 /******************/
264 /* Function: 0x0e */
265 NTSTATUS srvsvc_NET_SHARE_ADD(
268 /******************/
269 /* Function: 0x0f */
271 typedef struct {
272 unistr *name;
273 } srvsvc_NetShare0;
275 typedef struct {
276 uint32 count;
277 [size_is(count)] srvsvc_NetShare0 *array;
278 } srvsvc_NetShareCtr0;
280 typedef struct {
281 unistr *name;
282 uint32 type;
283 unistr *comment;
284 } srvsvc_NetShare1;
286 typedef struct {
287 uint32 count;
288 [size_is(count)] srvsvc_NetShare1 *array;
289 } srvsvc_NetShareCtr1;
291 typedef struct {
292 unistr *name;
293 uint32 type;
294 unistr *comment;
295 uint32 permissions;
296 uint32 max_users;
297 uint32 current_users;
298 unistr *path;
299 uint32 *password;
300 } srvsvc_NetShare2;
302 typedef struct {
303 uint32 count;
304 [size_is(count)] srvsvc_NetShare2 *array;
305 } srvsvc_NetShareCtr2;
307 typedef struct {
308 unistr *name;
309 uint32 type;
310 unistr *comment;
311 uint32 csc_policy;
312 } srvsvc_NetShare501;
314 typedef struct {
315 uint32 count;
316 [size_is(count)] srvsvc_NetShare501 *array;
317 } srvsvc_NetShareCtr501;
319 typedef struct {
320 unistr *name;
321 uint32 type;
322 unistr *comment;
323 uint32 permissions;
324 uint32 max_users;
325 uint32 current_users;
326 unistr *path;
327 uint32 *password;
328 uint32 unknown;
329 [subcontext] security_descriptor *sd;
330 } srvsvc_NetShare502;
332 typedef struct {
333 uint32 count;
334 [size_is(count)] srvsvc_NetShare502 *array;
335 } srvsvc_NetShareCtr502;
337 typedef struct {
338 } srvsvc_NetShareCtrDefault;
340 typedef [nodiscriminant,public] union {
341 case(0) srvsvc_NetShareCtr0 *ctr0;
342 case(1) srvsvc_NetShareCtr1 *ctr1;
343 case(2) srvsvc_NetShareCtr2 *ctr2;
344 case(501) srvsvc_NetShareCtr501 *ctr501;
345 case(502) srvsvc_NetShareCtr502 *ctr502;
346 default srvsvc_NetShareCtrDefault ctrDefault;
347 } srvsvc_NetShareSubCtr;
349 typedef struct {
350 uint32 level;
351 [switch_is(level)] srvsvc_NetShareSubCtr subctr;
352 } srvsvc_NetShareCtr;
354 WERROR srvsvc_NetShareEnumAll(
355 [in] unistr *server_unc,
356 [in] uint32 level,
357 [in,out] srvsvc_NetShareCtr ctr,
358 [in] uint32 preferred_len,
359 [out] uint32 totalentries,
360 [in,out] uint32 *resume_handle
363 /******************/
364 /* Function: 0x10 */
365 NTSTATUS srvsvc_NET_SHARE_GET_INFO(
368 /******************/
369 /* Function: 0x11 */
370 NTSTATUS srvsvc_NET_SHARE_SET_INFO(
373 /******************/
374 /* Function: 0x12 */
375 NTSTATUS srvsvc_NET_SHARE_DEL(
378 /******************/
379 /* Function: 0x13 */
380 NTSTATUS srvsvc_NET_SHARE_DEL_STICKY(
383 /******************/
384 /* Function: 0x14 */
385 NTSTATUS srvsvc_14(
388 /******************/
389 /* Function: 0x15 */
390 NTSTATUS srvsvc_NET_SRV_GET_INFO(
393 /******************/
394 /* Function: 0x16 */
395 NTSTATUS srvsvc_NET_SRV_SET_INFO(
398 /******************/
399 /* Function: 0x17 */
401 typedef struct {
402 uint32 unknown;
403 uint32 size;
404 [size_is(size)] uint8 *disk;
405 } srvsvc_NetDisk0;
407 typedef struct {
408 uint32 count;
409 uint32 unknown1;
410 uint32 unknown2;
411 [size_is(count)] srvsvc_NetDisk0 *array;
412 } srvsvc_NetDiskCtr0;
414 typedef struct {
415 uint32 dummy;
416 } srvsvc_NetDisk1;
418 typedef struct {
419 uint32 count;
420 [size_is(count)] srvsvc_NetDisk1 *array;
421 } srvsvc_NetDiskCtr1;
423 typedef struct {
424 uint32 dummy;
425 } srvsvc_NetDisk2;
427 typedef struct {
428 uint32 count;
429 [size_is(count)] srvsvc_NetDisk2 *array;
430 } srvsvc_NetDiskCtr2;
432 typedef struct {
433 uint32 dummy;
434 } srvsvc_NetDisk3;
436 typedef struct {
437 uint32 count;
438 [size_is(count)] srvsvc_NetDisk3 *array;
439 } srvsvc_NetDiskCtr3;
441 typedef struct {
442 } srvsvc_NetDiskCtrDefault;
444 typedef [nodiscriminant,public] union {
445 case(0) srvsvc_NetDiskCtr0 ctr0;
446 case(1) srvsvc_NetDiskCtr1 ctr1;
447 case(2) srvsvc_NetDiskCtr2 ctr2;
448 case(3) srvsvc_NetDiskCtr3 ctr3;
449 default srvsvc_NetDiskCtrDefault ctrDefault;
450 } srvsvc_NetDiskSubCtr;
452 typedef struct {
453 uint32 num1;
454 srvsvc_NetDiskCtr0 *ctr0;
455 } srvsvc_NetDiskCtr;
457 WERROR srvsvc_NetDiskEnum(
458 [in] unistr *server_unc,
459 [in] uint32 level,
460 [in] uint32 unknown1,
461 [in] uint32 unknown2,
462 [in] uint32 preferred_len,
463 [out] srvsvc_NetDiskCtr ctr,
464 [out] uint32 total,
465 [in,out] uint32 *resume_handle
468 /******************/
469 /* Function: 0x18 */
470 NTSTATUS srvsvc_18(
473 /******************/
474 /* Function: 0x19 */
475 NTSTATUS srvsvc_19(
478 /******************/
479 /* Function: 0x1a */
481 typedef struct {
482 uint32 count;
483 [size_is(count)] uint8 *addr;
484 } srvsvc_TransportAddress;
486 typedef struct {
487 uint32 vcs;
488 unistr *name;
489 srvsvc_TransportAddress *addr;
490 uint32 addr_len;
491 unistr *net_addr;
492 } srvsvc_NetTransport0;
494 typedef struct {
495 uint32 count;
496 [size_is(count)] srvsvc_NetTransport0 *array;
497 } srvsvc_NetTransportCtr0;
499 typedef struct {
500 uint32 vcs;
501 unistr *name;
502 srvsvc_TransportAddress *addr;
503 uint32 addr_len;
504 unistr *net_addr;
505 unistr *domain;
506 } srvsvc_NetTransport1;
508 typedef struct {
509 uint32 count;
510 [size_is(count)] srvsvc_NetTransport1 *array;
511 } srvsvc_NetTransportCtr1;
513 typedef struct {
514 uint32 dummy;
515 } srvsvc_NetTransport2;
517 typedef struct {
518 uint32 count;
519 [size_is(count)] srvsvc_NetTransport2 *array;
520 } srvsvc_NetTransportCtr2;
522 typedef struct {
523 } srvsvc_NetTransportCtrDefault;
525 typedef [nodiscriminant,public] union {
526 case(0) srvsvc_NetTransportCtr0 *ctr0;
527 case(1) srvsvc_NetTransportCtr1 *ctr1;
528 case(2) srvsvc_NetTransportCtr2 *ctr2;
529 default srvsvc_NetTransportCtrDefault ctrDefault;
530 } srvsvc_NetTransportSubCtr;
532 typedef struct {
533 uint32 level;
534 uint32 level2;
535 [switch_is(level)] srvsvc_NetTransportSubCtr subctr;
536 } srvsvc_NetTransportCtr;
538 WERROR srvsvc_NetTransportEnum(
539 [in] unistr *server_unc,
540 [in,out] srvsvc_NetTransportCtr ctr,
541 [in] uint32 preferred_len,
542 [out] uint32 total,
543 [in,out] uint32 *resume_handle
546 /******************/
547 /* Function: 0x1b */
548 NTSTATUS srvsvc_1b(
551 /******************/
552 /* Function: 0x1c */
553 NTSTATUS srvsvc_NET_REMOTE_TOD(
556 /******************/
557 /* Function: 0x1d */
558 NTSTATUS srvsvc_1d(
561 /******************/
562 /* Function: 0x1e */
563 NTSTATUS srvsvc_1e(
566 /******************/
567 /* Function: 0x1f */
568 NTSTATUS srvsvc_1f(
571 /******************/
572 /* Function: 0x20 */
573 NTSTATUS srvsvc_20(
576 /******************/
577 /* Function: 0x21 */
578 NTSTATUS srvsvc_NET_NAME_VALIDATE(
581 /******************/
582 /* Function: 0x22 */
583 NTSTATUS srvsvc_22(
586 /******************/
587 /* Function: 0x23 */
588 NTSTATUS srvsvc_23(
591 /******************/
592 /* Function: 0x24 */
593 /* Note, there must be some way to return entries read vs
594 total entries ... */
595 WERROR srvsvc_NetShareEnum(
596 [in] unistr *server_unc,
597 [in] uint32 level,
598 [in,out] srvsvc_NetShareCtr ctr,
599 [in] uint32 preferred_len,
600 [out] uint32 totalentries,
601 [in,out] uint32 *resume_handle
604 /******************/
605 /* Function: 0x25 */
606 NTSTATUS srvsvc_25(
609 /******************/
610 /* Function: 0x26 */
611 NTSTATUS srvsvc_26(
614 /******************/
615 /* Function: 0x27 */
616 NTSTATUS srvsvc_NET_FILE_QUERY_SECDESC(
619 /******************/
620 /* Function: 0x28 */
621 NTSTATUS srvsvc_NET_FILE_SET_SECDESC(