[CRT] Massively improve performance of rand_s
[reactos.git] / sdk / include / reactos / idl / srvsvc.idl
1 /*
2 * Server Service interface definition
3 */
4
5 #include <ms-dtyp.idl>
6
7 typedef [handle, string] wchar_t *SRVSVC_HANDLE;
8
9 typedef struct _CONNECTION_INFO_0
10 {
11 DWORD coni0_id;
12 } CONNECTION_INFO_0, *PCONNECTION_INFO_0, *LPCONNECTION_INFO_0;
13
14 typedef struct _CONNECT_INFO_0_CONTAINER
15 {
16 DWORD EntriesRead;
17 [size_is(EntriesRead)] LPCONNECTION_INFO_0 Buffer;
18 } CONNECT_INFO_0_CONTAINER, *PCONNECT_INFO_0_CONTAINER, *LPCONNECT_INFO_0_CONTAINER;
19
20 typedef struct _CONNECTION_INFO_1
21 {
22 DWORD coni1_id;
23 DWORD coni1_type;
24 DWORD coni1_num_opens;
25 DWORD coni1_num_users;
26 DWORD coni1_time;
27 [string] wchar_t *coni1_username;
28 [string] wchar_t *coni1_netname;
29 } CONNECTION_INFO_1, *PCONNECTION_INFO_1, *LPCONNECTION_INFO_1;
30
31 typedef struct _CONNECT_INFO_1_CONTAINER
32 {
33 DWORD EntriesRead;
34 [size_is(EntriesRead)] LPCONNECTION_INFO_1 Buffer;
35 } CONNECT_INFO_1_CONTAINER, *PCONNECT_INFO_1_CONTAINER, *LPCONNECT_INFO_1_CONTAINER;
36
37 typedef [switch_type(DWORD)] union _CONNECT_ENUM_UNION
38 {
39 [case(0)] CONNECT_INFO_0_CONTAINER *Level0;
40 [case(1)] CONNECT_INFO_1_CONTAINER *Level1;
41 } CONNECT_ENUM_UNION;
42
43 typedef struct _CONNECT_ENUM_STRUCT
44 {
45 DWORD Level;
46 [switch_is(Level)] CONNECT_ENUM_UNION ConnectInfo;
47 } CONNECT_ENUM_STRUCT, *PCONNECT_ENUM_STRUCT, *LPCONNECT_ENUM_STRUCT;
48
49 typedef struct _FILE_INFO_2
50 {
51 DWORD fi2_id;
52 } FILE_INFO_2, *PFILE_INFO_2, *LPFILE_INFO_2;
53
54 typedef struct _FILE_INFO_2_CONTAINER
55 {
56 DWORD EntriesRead;
57 [size_is(EntriesRead)] LPFILE_INFO_2 Buffer;
58 } FILE_INFO_2_CONTAINER, *PFILE_INFO_2_CONTAINER, *LPFILE_INFO_2_CONTAINER;
59
60 typedef struct _FILE_INFO_3
61 {
62 DWORD fi3_id;
63 DWORD fi3_permissions;
64 DWORD fi3_num_locks;
65 [string] wchar_t *fi3_pathname;
66 [string] wchar_t *fi3_username;
67 } FILE_INFO_3, *PFILE_INFO_3, *LPFILE_INFO_3;
68
69 typedef struct _FILE_INFO_3_CONTAINER
70 {
71 DWORD EntriesRead;
72 [size_is(EntriesRead)] LPFILE_INFO_3 Buffer;
73 } FILE_INFO_3_CONTAINER, *PFILE_INFO_3_CONTAINER, *LPFILE_INFO_3_CONTAINER;
74
75 typedef [switch_type(DWORD)] union _FILE_ENUM_UNION
76 {
77 [case(2)] FILE_INFO_2_CONTAINER* Level2;
78 [case(3)] FILE_INFO_3_CONTAINER* Level3;
79 } FILE_ENUM_UNION;
80
81 typedef struct _FILE_ENUM_STRUCT
82 {
83 DWORD Level;
84 [switch_is(Level)] FILE_ENUM_UNION FileInfo;
85 } FILE_ENUM_STRUCT, *PFILE_ENUM_STRUCT, *LPFILE_ENUM_STRUCT;
86
87 typedef [switch_type(unsigned long)] union _FILE_INFO
88 {
89 [case(2)] LPFILE_INFO_2 FileInfo2;
90 [case(3)] LPFILE_INFO_3 FileInfo3;
91 } FILE_INFO, *PFILE_INFO, *LPFILE_INFO;
92
93 typedef struct _SESSION_INFO_0
94 {
95 [string] wchar_t *sesi0_cname;
96 } SESSION_INFO_0, *PSESSION_INFO_0, *LPSESSION_INFO_0;
97
98 typedef struct _SESSION_INFO_0_CONTAINER
99 {
100 DWORD EntriesRead;
101 [size_is(EntriesRead)] LPSESSION_INFO_0 Buffer;
102 } SESSION_INFO_0_CONTAINER, *PSESSION_INFO_0_CONTAINER, *LPSESSION_INFO_0_CONTAINER;
103
104 typedef struct _SESSION_INFO_1
105 {
106 [string] wchar_t *sesi1_cname;
107 [string] wchar_t *sesi1_username;
108 DWORD sesi1_num_opens;
109 DWORD sesi1_time;
110 DWORD sesi1_idle_time;
111 DWORD sesi1_user_flags;
112 } SESSION_INFO_1, *PSESSION_INFO_1, *LPSESSION_INFO_1;
113
114 typedef struct _SESSION_INFO_1_CONTAINER
115 {
116 DWORD EntriesRead;
117 [size_is(EntriesRead)] LPSESSION_INFO_1 Buffer;
118 } SESSION_INFO_1_CONTAINER, *PSESSION_INFO_1_CONTAINER, *LPSESSION_INFO_1_CONTAINER;
119
120 typedef struct _SESSION_INFO_2
121 {
122 [string] wchar_t *sesi2_cname;
123 [string] wchar_t *sesi2_username;
124 DWORD sesi2_num_opens;
125 DWORD sesi2_time;
126 DWORD sesi2_idle_time;
127 DWORD sesi2_user_flags;
128 [string] wchar_t *sesi2_cltype_name;
129 } SESSION_INFO_2, *PSESSION_INFO_2, *LPSESSION_INFO_2;
130
131 typedef struct _SESSION_INFO_2_CONTAINER
132 {
133 DWORD EntriesRead;
134 [size_is(EntriesRead)] LPSESSION_INFO_2 Buffer;
135 } SESSION_INFO_2_CONTAINER, *PSESSION_INFO_2_CONTAINER, *LPSESSION_INFO_2_CONTAINER;
136
137 typedef struct _SESSION_INFO_10
138 {
139 [string] wchar_t *sesi10_cname;
140 [string] wchar_t *sesi10_username;
141 DWORD sesi10_time;
142 DWORD sesi10_idle_time;
143 } SESSION_INFO_10, *PSESSION_INFO_10, *LPSESSION_INFO_10;
144
145 typedef struct _SESSION_INFO_10_CONTAINER
146 {
147 DWORD EntriesRead;
148 [size_is(EntriesRead)] LPSESSION_INFO_10 Buffer;
149 } SESSION_INFO_10_CONTAINER, *PSESSION_INFO_10_CONTAINER, *LPSESSION_INFO_10_CONTAINER;
150
151 typedef struct _SESSION_INFO_502
152 {
153 [string] wchar_t *sesi502_cname;
154 [string] wchar_t *sesi502_username;
155 DWORD sesi502_num_opens;
156 DWORD sesi502_time;
157 DWORD sesi502_idle_time;
158 DWORD sesi502_user_flags;
159 [string] wchar_t *sesi502_cltype_name;
160 [string] wchar_t *sesi502_transport;
161 } SESSION_INFO_502, *PSESSION_INFO_502, *LPSESSION_INFO_502;
162
163 typedef struct _SESSION_INFO_502_CONTAINER
164 {
165 DWORD EntriesRead;
166 [size_is(EntriesRead)] LPSESSION_INFO_502 Buffer;
167 } SESSION_INFO_502_CONTAINER, *PSESSION_INFO_502_CONTAINER, *LPSESSION_INFO_502_CONTAINER;
168
169 typedef [switch_type(DWORD)] union _SESSION_ENUM_UNION
170 {
171 [case(0)] SESSION_INFO_0_CONTAINER *Level0;
172 [case(1)] SESSION_INFO_1_CONTAINER *Level1;
173 [case(2)] SESSION_INFO_2_CONTAINER *Level2;
174 [case(10)] SESSION_INFO_10_CONTAINER *Level10;
175 [case(502)] SESSION_INFO_502_CONTAINER *Level502;
176 } SESSION_ENUM_UNION;
177
178 typedef struct _SESSION_ENUM_STRUCT {
179 DWORD Level;
180 [switch_is(Level)] SESSION_ENUM_UNION SessionInfo;
181 } SESSION_ENUM_STRUCT, *PSESSION_ENUM_STRUCT, *LPSESSION_ENUM_STRUCT;
182
183 typedef struct _SHARE_INFO_502_I
184 {
185 [string] WCHAR *shi502_netname;
186 DWORD shi502_type;
187 [string] WCHAR *shi502_remark;
188 DWORD shi502_permissions;
189 DWORD shi502_max_uses;
190 DWORD shi502_current_uses;
191 [string] WCHAR *shi502_path;
192 [string] WCHAR *shi502_passwd;
193 DWORD shi502_reserved;
194 [size_is(shi502_reserved)] unsigned char *shi502_security_descriptor;
195 } SHARE_INFO_502_I, *PSHARE_INFO_502_I, *LPSHARE_INFO_502_I;
196
197 typedef struct _SHARE_INFO_503_I
198 {
199 [string] WCHAR *shi503_netname;
200 DWORD shi503_type;
201 [string] WCHAR *shi503_remark;
202 DWORD shi503_permissions;
203 DWORD shi503_max_uses;
204 DWORD shi503_current_uses;
205 [string] WCHAR *shi503_path;
206 [string] WCHAR *shi503_passwd;
207 [string] WCHAR *shi503_servername;
208 DWORD shi503_reserved;
209 [size_is(shi503_reserved)] PUCHAR shi503_security_descriptor;
210 } SHARE_INFO_503_I, *PSHARE_INFO_503_I, *LPSHARE_INFO_503_I;
211
212 typedef struct _SHARE_INFO_503_CONTAINER
213 { DWORD EntriesRead;
214 [size_is(EntriesRead)] LPSHARE_INFO_503_I Buffer;
215 } SHARE_INFO_503_CONTAINER, *PSHARE_INFO_503_CONTAINER, *LPSHARE_INFO_503_CONTAINER;
216
217 typedef struct _SHARE_INFO_1501_I
218 {
219 DWORD shi1501_reserved;
220 [size_is(shi1501_reserved)] unsigned char *shi1501_security_descriptor;
221 } SHARE_INFO_1501_I, *PSHARE_INFO_1501_I, *LPSHARE_INFO_1501_I;
222
223 typedef struct _SHARE_INFO_0
224 {
225 [string] wchar_t *shi0_netname;
226 } SHARE_INFO_0, *PSHARE_INFO_0, *LPSHARE_INFO_0;
227
228 typedef struct _SHARE_INFO_0_CONTAINER
229 {
230 DWORD EntriesRead;
231 [size_is(EntriesRead)] LPSHARE_INFO_0 Buffer;
232 } SHARE_INFO_0_CONTAINER;
233
234 typedef struct _SHARE_INFO_1
235 {
236 [string] wchar_t *shi1_netname;
237 DWORD shi1_type;
238 [string] wchar_t *shi1_remark;
239 } SHARE_INFO_1, *PSHARE_INFO_1, *LPSHARE_INFO_1;
240
241 typedef struct _SHARE_INFO_1_CONTAINER
242 {
243 DWORD EntriesRead;
244 [size_is(EntriesRead)] LPSHARE_INFO_1 Buffer;
245 } SHARE_INFO_1_CONTAINER;
246
247 typedef struct _SHARE_INFO_2
248 {
249 [string] wchar_t *shi2_netname;
250 DWORD shi2_type;
251 [string] wchar_t *shi2_remark;
252 DWORD shi2_permissions;
253 DWORD shi2_max_uses;
254 DWORD shi2_current_uses;
255 [string] wchar_t *shi2_path;
256 [string] wchar_t *shi2_passwd;
257 } SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;
258
259 typedef struct _SHARE_INFO_2_CONTAINER
260 {
261 DWORD EntriesRead;
262 [size_is(EntriesRead)] LPSHARE_INFO_2 Buffer;
263 } SHARE_INFO_2_CONTAINER, *PSHARE_INFO_2_CONTAINER, *LPSHARE_INFO_2_CONTAINER;
264
265 typedef struct _SHARE_INFO_501
266 {
267 [string] wchar_t *shi501_netname;
268 DWORD shi501_type;
269 [string] wchar_t *shi501_remark;
270 DWORD shi501_flags;
271 } SHARE_INFO_501, *PSHARE_INFO_501, *LPSHARE_INFO_501;
272
273 typedef struct _SHARE_INFO_501_CONTAINER
274 {
275 DWORD EntriesRead;
276 [size_is(EntriesRead)] LPSHARE_INFO_501 Buffer;
277 } SHARE_INFO_501_CONTAINER, *PSHARE_INFO_501_CONTAINER, *LPSHARE_INFO_501_CONTAINER;
278
279 typedef struct _SHARE_INFO_502_CONTAINER
280 {
281 DWORD EntriesRead;
282 [size_is(EntriesRead)] LPSHARE_INFO_502_I Buffer;
283 } SHARE_INFO_502_CONTAINER, *PSHARE_INFO_502_CONTAINER, *LPSHARE_INFO_502_CONTAINER;
284
285 typedef [switch_type(DWORD)] union _SHARE_ENUM_UNION
286 {
287 [case(0)] SHARE_INFO_0_CONTAINER *Level0;
288 [case(1)] SHARE_INFO_1_CONTAINER *Level1;
289 [case(2)] SHARE_INFO_2_CONTAINER *Level2;
290 [case(501)] SHARE_INFO_501_CONTAINER *Level501;
291 [case(502)] SHARE_INFO_502_CONTAINER *Level502;
292 [case(503)] SHARE_INFO_503_CONTAINER *Level503;
293 } SHARE_ENUM_UNION;
294
295 typedef struct _SHARE_ENUM_STRUCT
296 {
297 DWORD Level;
298 [switch_is(Level)] SHARE_ENUM_UNION ShareInfo;
299 } SHARE_ENUM_STRUCT, *PSHARE_ENUM_STRUCT, *LPSHARE_ENUM_STRUCT;
300
301 typedef struct _SHARE_INFO_1004
302 {
303 [string] wchar_t *shi1004_remark;
304 } SHARE_INFO_1004, *PSHARE_INFO_1004, *LPSHARE_INFO_1004;
305
306 typedef struct _SHARE_INFO_1006
307 {
308 DWORD shi1006_max_uses;
309 } SHARE_INFO_1006, *PSHARE_INFO_1006, *LPSHARE_INFO_1006;
310
311 typedef struct _SHARE_INFO_1005
312 {
313 DWORD shi1005_flags;
314 } SHARE_INFO_1005, *PSHARE_INFO_1005, *LPSHARE_INFO_1005;
315
316 //JMP: order differs in documentation
317 typedef [switch_type(unsigned long)] union _SHARE_INFO
318 // for Get & Set info
319 {
320 [case(0)] LPSHARE_INFO_0 ShareInfo0;
321 [case(1)] LPSHARE_INFO_1 ShareInfo1;
322 [case(2)] LPSHARE_INFO_2 ShareInfo2;
323 [case(502)] LPSHARE_INFO_502_I ShareInfo502;
324 [case(1004)] LPSHARE_INFO_1004 ShareInfo1004;
325 [case(1006)] LPSHARE_INFO_1006 ShareInfo1006;
326 [case(1501)] LPSHARE_INFO_1501_I ShareInfo1501;
327 [default] ;
328 [case(1005)] LPSHARE_INFO_1005 ShareInfo1005;
329 [case(501)] LPSHARE_INFO_501 ShareInfo501;
330 [case(503)] LPSHARE_INFO_503_I ShareInfo503;
331 } SHARE_INFO, *PSHARE_INFO, *LPSHARE_INFO;
332
333
334 cpp_quote("#ifndef _LMSERVER_H")
335 typedef struct _SERVER_INFO_100
336 {
337 DWORD sv100_platform_id;
338 [string] wchar_t *sv100_name;
339 } SERVER_INFO_100, *PSERVER_INFO_100, *LPSERVER_INFO_100;
340
341 typedef struct _SERVER_INFO_101
342 {
343 DWORD sv101_platform_id;
344 [string] wchar_t *sv101_name;
345 DWORD sv101_version_major;
346 DWORD sv101_version_minor;
347 DWORD sv101_type;
348 [string] wchar_t *sv101_comment;
349 } SERVER_INFO_101, *PSERVER_INFO_101, *LPSERVER_INFO_101;
350
351 typedef struct _SERVER_INFO_102
352 {
353 DWORD sv102_platform_id;
354 [string] wchar_t *sv102_name;
355 DWORD sv102_version_major;
356 DWORD sv102_version_minor;
357 DWORD sv102_type;
358 [string] wchar_t *sv102_comment;
359 DWORD sv102_users;
360 long sv102_disc;
361 int sv102_hidden;
362 DWORD sv102_announce;
363 DWORD sv102_anndelta;
364 DWORD sv102_licenses;
365 [string] wchar_t *sv102_userpath;
366 } SERVER_INFO_102, *PSERVER_INFO_102, *LPSERVER_INFO_102;
367 cpp_quote("#endif")
368
369 typedef struct _SERVER_INFO_103
370 {
371 DWORD sv103_platform_id;
372 [string] wchar_t *sv103_name;
373 DWORD sv103_version_major;
374 DWORD sv103_version_minor;
375 DWORD sv103_type;
376 [string] wchar_t *sv103_comment;
377 DWORD sv103_users;
378 LONG sv103_disc;
379 BOOL sv103_hidden;
380 DWORD sv103_announce;
381 DWORD sv103_anndelta;
382 DWORD sv103_licenses;
383 [string] wchar_t* sv103_userpath;
384 DWORD sv103_capabilities;
385 } SERVER_INFO_103, *PSERVER_INFO_103, *LPSERVER_INFO_103;
386
387 cpp_quote("#ifndef _LMSERVER_H")
388 typedef struct _SERVER_INFO_502
389 {
390 DWORD sv502_sessopens;
391 DWORD sv502_sessvcs;
392 DWORD sv502_opensearch;
393 DWORD sv502_sizreqbuf;
394 DWORD sv502_initworkitems;
395 DWORD sv502_maxworkitems;
396 DWORD sv502_rawworkitems;
397 DWORD sv502_irpstacksize;
398 DWORD sv502_maxrawbuflen;
399 DWORD sv502_sessusers;
400 DWORD sv502_sessconns;
401 DWORD sv502_maxpagedmemoryusage;
402 DWORD sv502_maxnonpagedmemoryusage;
403 int sv502_enablesoftcompat;
404 int sv502_enableforcedlogoff;
405 int sv502_timesource;
406 int sv502_acceptdownlevelapis;
407 int sv502_lmannounce;
408 } SERVER_INFO_502, *PSERVER_INFO_502, *LPSERVER_INFO_502;
409
410 typedef struct _SERVER_INFO_503
411 {
412 DWORD sv503_sessopens;
413 DWORD sv503_sessvcs;
414 DWORD sv503_opensearch;
415 DWORD sv503_sizreqbuf;
416 DWORD sv503_initworkitems;
417 DWORD sv503_maxworkitems;
418 DWORD sv503_rawworkitems;
419 DWORD sv503_irpstacksize;
420 DWORD sv503_maxrawbuflen;
421 DWORD sv503_sessusers;
422 DWORD sv503_sessconns;
423 DWORD sv503_maxpagedmemoryusage;
424 DWORD sv503_maxnonpagedmemoryusage;
425 int sv503_enablesoftcompat;
426 int sv503_enableforcedlogoff;
427 int sv503_timesource;
428 int sv503_acceptdownlevelapis;
429 int sv503_lmannounce;
430 [string] wchar_t *sv503_domain;
431 DWORD sv503_maxcopyreadlen;
432 DWORD sv503_maxcopywritelen;
433 DWORD sv503_minkeepsearch;
434 DWORD sv503_maxkeepsearch;
435 DWORD sv503_minkeepcomplsearch;
436 DWORD sv503_maxkeepcomplsearch;
437 DWORD sv503_threadcountadd;
438 DWORD sv503_numblockthreads;
439 DWORD sv503_scavtimeout;
440 DWORD sv503_minrcvqueue;
441 DWORD sv503_minfreeworkitems;
442 DWORD sv503_xactmemsize;
443 DWORD sv503_threadpriority;
444 DWORD sv503_maxmpxct;
445 DWORD sv503_oplockbreakwait;
446 DWORD sv503_oplockbreakresponsewait;
447 int sv503_enableoplocks;
448 int sv503_enableoplockforceclose;
449 int sv503_enablefcbopens;
450 int sv503_enableraw;
451 int sv503_enablesharednetdrives;
452 DWORD sv503_minfreeconnections;
453 DWORD sv503_maxfreeconnections;
454 } SERVER_INFO_503, *PSERVER_INFO_503, *LPSERVER_INFO_503;
455
456 typedef struct _SERVER_INFO_599
457 {
458 DWORD sv599_sessopens;
459 DWORD sv599_sessvcs;
460 DWORD sv599_opensearch;
461 DWORD sv599_sizreqbuf;
462 DWORD sv599_initworkitems;
463 DWORD sv599_maxworkitems;
464 DWORD sv599_rawworkitems;
465 DWORD sv599_irpstacksize;
466 DWORD sv599_maxrawbuflen;
467 DWORD sv599_sessusers;
468 DWORD sv599_sessconns;
469 DWORD sv599_maxpagedmemoryusage;
470 DWORD sv599_maxnonpagedmemoryusage;
471 int sv599_enablesoftcompat;
472 int sv599_enableforcedlogoff;
473 int sv599_timesource;
474 int sv599_acceptdownlevelapis;
475 int sv599_lmannounce;
476 [string] wchar_t *sv599_domain;
477 DWORD sv599_maxcopyreadlen;
478 DWORD sv599_maxcopywritelen;
479 DWORD sv599_minkeepsearch;
480 DWORD sv599_maxkeepsearch;
481 DWORD sv599_minkeepcomplsearch;
482 DWORD sv599_maxkeepcomplsearch;
483 DWORD sv599_threadcountadd;
484 DWORD sv599_numblockthreads;
485 DWORD sv599_scavtimeout;
486 DWORD sv599_minrcvqueue;
487 DWORD sv599_minfreeworkitems;
488 DWORD sv599_xactmemsize;
489 DWORD sv599_threadpriority;
490 DWORD sv599_maxmpxct;
491 DWORD sv599_oplockbreakwait;
492 DWORD sv599_oplockbreakresponsewait;
493 int sv599_enableoplocks;
494 int sv599_enableoplockforceclose;
495 int sv599_enablefcbopens;
496 int sv599_enableraw;
497 int sv599_enablesharednetdrives;
498 DWORD sv599_minfreeconnections;
499 DWORD sv599_maxfreeconnections;
500 DWORD sv599_initsesstable;
501 DWORD sv599_initconntable;
502 DWORD sv599_initfiletable;
503 DWORD sv599_initsearchtable;
504 DWORD sv599_alertschedule;
505 DWORD sv599_errorthreshold;
506 DWORD sv599_networkerrorthreshold;
507 DWORD sv599_diskspacethreshold;
508 DWORD sv599_reserved;
509 DWORD sv599_maxlinkdelay;
510 DWORD sv599_minlinkthroughput;
511 DWORD sv599_linkinfovalidtime;
512 DWORD sv599_scavqosinfoupdatetime;
513 DWORD sv599_maxworkitemidletime;
514 } SERVER_INFO_599, *PSERVER_INFO_599, *LPSERVER_INFO_599;
515
516 typedef struct _SERVER_INFO_1005
517 {
518 [string] wchar_t *sv1005_comment;
519 } SERVER_INFO_1005, *PSERVER_INFO_1005, *LPSERVER_INFO_1005;
520
521 typedef struct _SERVER_INFO_1107
522 {
523 DWORD sv1107_users;
524 } SERVER_INFO_1107, *PSERVER_INFO_1107, *LPSERVER_INFO_1107;
525
526 typedef struct _SERVER_INFO_1010
527 {
528 long sv1010_disc;
529 } SERVER_INFO_1010, *PSERVER_INFO_1010, *LPSERVER_INFO_1010;
530
531 typedef struct _SERVER_INFO_1016
532 {
533 int sv1016_hidden;
534 } SERVER_INFO_1016, *PSERVER_INFO_1016, *LPSERVER_INFO_1016;
535
536 typedef struct _SERVER_INFO_1017
537 {
538 DWORD sv1017_announce;
539 } SERVER_INFO_1017, *PSERVER_INFO_1017, *LPSERVER_INFO_1017;
540
541 typedef struct _SERVER_INFO_1018
542 {
543 DWORD sv1018_anndelta;
544 } SERVER_INFO_1018, *PSERVER_INFO_1018, *LPSERVER_INFO_1018;
545
546 typedef struct _SERVER_INFO_1501
547 {
548 DWORD sv1501_sessopens;
549 } SERVER_INFO_1501, *PSERVER_INFO_1501, *LPSERVER_INFO_1501;
550
551 typedef struct _SERVER_INFO_1502
552 {
553 DWORD sv1502_sessvcs;
554 } SERVER_INFO_1502, *PSERVER_INFO_1502, *LPSERVER_INFO_1502;
555
556 typedef struct _SERVER_INFO_1503
557 {
558 DWORD sv1503_opensearch;
559 } SERVER_INFO_1503, *PSERVER_INFO_1503, *LPSERVER_INFO_1503;
560
561 typedef struct _SERVER_INFO_1506
562 {
563 DWORD sv1506_maxworkitems;
564 } SERVER_INFO_1506, *PSERVER_INFO_1506, *LPSERVER_INFO_1506;
565
566 typedef struct _SERVER_INFO_1510
567 {
568 DWORD sv1510_sessusers;
569 } SERVER_INFO_1510, *PSERVER_INFO_1510, *LPSERVER_INFO_1510;
570
571 typedef struct _SERVER_INFO_1511
572 {
573 DWORD sv1511_sessconns;
574 } SERVER_INFO_1511, *PSERVER_INFO_1511, *LPSERVER_INFO_1511;
575
576 typedef struct _SERVER_INFO_1512
577 {
578 DWORD sv1512_maxnonpagedmemoryusage;
579 } SERVER_INFO_1512, *PSERVER_INFO_1512, *LPSERVER_INFO_1512;
580
581 typedef struct _SERVER_INFO_1513
582 {
583 DWORD sv1513_maxpagedmemoryusage;
584 } SERVER_INFO_1513, *PSERVER_INFO_1513, *LPSERVER_INFO_1513;
585
586 typedef struct _SERVER_INFO_1514
587 {
588 int sv1514_enablesoftcompat;
589 } SERVER_INFO_1514, *PSERVER_INFO_1514, *LPSERVER_INFO_1514;
590
591 typedef struct _SERVER_INFO_1515
592 {
593 int sv1515_enableforcedlogoff;
594 } SERVER_INFO_1515, *PSERVER_INFO_1515, *LPSERVER_INFO_1515;
595
596 typedef struct _SERVER_INFO_1516
597 {
598 int sv1516_timesource;
599 } SERVER_INFO_1516, *PSERVER_INFO_1516, *LPSERVER_INFO_1516;
600
601 typedef struct _SERVER_INFO_1518
602 {
603 int sv1518_lmannounce;
604 } SERVER_INFO_1518, *PSERVER_INFO_1518, *LPSERVER_INFO_1518;
605
606 typedef struct _SERVER_INFO_1523
607 {
608 DWORD sv1523_maxkeepsearch;
609 } SERVER_INFO_1523, *PSERVER_INFO_1523, *LPSERVER_INFO_1523;
610
611 typedef struct _SERVER_INFO_1528
612 {
613 DWORD sv1528_scavtimeout;
614 } SERVER_INFO_1528, *PSERVER_INFO_1528, *LPSERVER_INFO_1528;
615
616 typedef struct _SERVER_INFO_1529
617 {
618 DWORD sv1529_minrcvqueue;
619 } SERVER_INFO_1529, *PSERVER_INFO_1529, *LPSERVER_INFO_1529;
620
621 typedef struct _SERVER_INFO_1530
622 {
623 DWORD sv1530_minfreeworkitems;
624 } SERVER_INFO_1530, *PSERVER_INFO_1530, *LPSERVER_INFO_1530;
625
626 typedef struct _SERVER_INFO_1533
627 {
628 DWORD sv1533_maxmpxct;
629 } SERVER_INFO_1533, *PSERVER_INFO_1533, *LPSERVER_INFO_1533;
630
631 typedef struct _SERVER_INFO_1534
632 {
633 DWORD sv1534_oplockbreakwait;
634 } SERVER_INFO_1534, *PSERVER_INFO_1534, *LPSERVER_INFO_1534;
635
636 typedef struct _SERVER_INFO_1535
637 {
638 DWORD sv1535_oplockbreakresponsewait;
639 } SERVER_INFO_1535, *PSERVER_INFO_1535, *LPSERVER_INFO_1535;
640
641 typedef struct _SERVER_INFO_1536
642 {
643 int sv1536_enableoplocks;
644 } SERVER_INFO_1536, *PSERVER_INFO_1536, *LPSERVER_INFO_1536;
645
646 typedef struct _SERVER_INFO_1538
647 {
648 int sv1538_enablefcbopens;
649 } SERVER_INFO_1538, *PSERVER_INFO_1538, *LPSERVER_INFO_1538;
650
651 typedef struct _SERVER_INFO_1539
652 {
653 int sv1539_enableraw;
654 } SERVER_INFO_1539, *PSERVER_INFO_1539, *LPSERVER_INFO_1539;
655
656 typedef struct _SERVER_INFO_1540
657 {
658 int sv1540_enablesharednetdrives;
659 } SERVER_INFO_1540, *PSERVER_INFO_1540, *LPSERVER_INFO_1540;
660
661 typedef struct _SERVER_INFO_1541
662 {
663 int sv1541_minfreeconnections;
664 } SERVER_INFO_1541, *PSERVER_INFO_1541, *LPSERVER_INFO_1541;
665
666 typedef struct _SERVER_INFO_1542
667 {
668 int sv1542_maxfreeconnections;
669 } SERVER_INFO_1542, *PSERVER_INFO_1542, *LPSERVER_INFO_1542;
670
671 typedef struct _SERVER_INFO_1543
672 {
673 DWORD sv1543_initsesstable;
674 } SERVER_INFO_1543, *PSERVER_INFO_1543, *LPSERVER_INFO_1543;
675
676 typedef struct _SERVER_INFO_1544
677 {
678 DWORD sv1544_initconntable;
679 } SERVER_INFO_1544, *PSERVER_INFO_1544, *LPSERVER_INFO_1544;
680
681 typedef struct _SERVER_INFO_1545
682 {
683 DWORD sv1545_initfiletable;
684 } SERVER_INFO_1545, *PSERVER_INFO_1545, *LPSERVER_INFO_1545;
685
686 typedef struct _SERVER_INFO_1546
687 {
688 DWORD sv1546_initsearchtable;
689 } SERVER_INFO_1546, *PSERVER_INFO_1546, *LPSERVER_INFO_1546;
690
691 typedef struct _SERVER_INFO_1547
692 {
693 DWORD sv1547_alertschedule;
694 } SERVER_INFO_1547, *PSERVER_INFO_1547, *LPSERVER_INFO_1547;
695
696 typedef struct _SERVER_INFO_1548
697 {
698 DWORD sv1548_errorthreshold;
699 } SERVER_INFO_1548, *PSERVER_INFO_1548, *LPSERVER_INFO_1548;
700
701 typedef struct _SERVER_INFO_1549
702 {
703 DWORD sv1549_networkerrorthreshold;
704 } SERVER_INFO_1549, *PSERVER_INFO_1549, *LPSERVER_INFO_1549;
705
706 typedef struct _SERVER_INFO_1550
707 {
708 DWORD sv1550_diskspacethreshold;
709 } SERVER_INFO_1550, *PSERVER_INFO_1550, *LPSERVER_INFO_1550;
710
711 typedef struct _SERVER_INFO_1552
712 {
713 DWORD sv1552_maxlinkdelay;
714 } SERVER_INFO_1552, *PSERVER_INFO_1552, *LPSERVER_INFO_1552;
715
716 typedef struct _SERVER_INFO_1553
717 {
718 DWORD sv1553_minlinkthroughput;
719 } SERVER_INFO_1553, *PSERVER_INFO_1553, *LPSERVER_INFO_1553;
720
721 typedef struct _SERVER_INFO_1554
722 {
723 DWORD sv1554_linkinfovalidtime;
724 } SERVER_INFO_1554, *PSERVER_INFO_1554, *LPSERVER_INFO_1554;
725
726 typedef struct _SERVER_INFO_1555
727 {
728 DWORD sv1555_scavqosinfoupdatetime;
729 } SERVER_INFO_1555, *PSERVER_INFO_1555, *LPSERVER_INFO_1555;
730
731 typedef struct _SERVER_INFO_1556
732 {
733 DWORD sv1556_maxworkitemidletime;
734 } SERVER_INFO_1556, *PSERVER_INFO_1556, *LPSERVER_INFO_1556;
735 cpp_quote("#endif")
736
737 /*
738 typedef [switch_type(unsigned long)] union _SERVER_INFO
739 {
740 [case(100)] LPSERVER_INFO_100 ServerInfo100;
741 [case(101)] LPSERVER_INFO_101 ServerInfo101;
742 [case(102)] LPSERVER_INFO_102 ServerInfo102;
743 [case(103)] LPSERVER_INFO_103 ServerInfo103;
744 [case(502)] LPSERVER_INFO_502 ServerInfo502;
745 [case(503)] LPSERVER_INFO_503 ServerInfo503;
746 [case(599)] LPSERVER_INFO_599 ServerInfo599;
747 [case(1005)] LPSERVER_INFO_1005 ServerInfo1005;
748 [case(1107)] LPSERVER_INFO_1107 ServerInfo1107;
749 [case(1010)] LPSERVER_INFO_1010 ServerInfo1010;
750 [case(1016)] LPSERVER_INFO_1016 ServerInfo1016;
751 [case(1017)] LPSERVER_INFO_1017 ServerInfo1017;
752 [case(1018)] LPSERVER_INFO_1018 ServerInfo1018;
753 [case(1501)] LPSERVER_INFO_1501 ServerInfo1501;
754 [case(1502)] LPSERVER_INFO_1502 ServerInfo1502;
755 [case(1503)] LPSERVER_INFO_1503 ServerInfo1503;
756 [case(1506)] LPSERVER_INFO_1506 ServerInfo1506;
757 [case(1510)] LPSERVER_INFO_1510 ServerInfo1510;
758 [case(1511)] LPSERVER_INFO_1511 ServerInfo1511;
759 [case(1512)] LPSERVER_INFO_1512 ServerInfo1512;
760 [case(1513)] LPSERVER_INFO_1513 ServerInfo1513;
761 [case(1514)] LPSERVER_INFO_1514 ServerInfo1514;
762 [case(1515)] LPSERVER_INFO_1515 ServerInfo1515;
763 [case(1516)] LPSERVER_INFO_1516 ServerInfo1516;
764 [case(1518)] LPSERVER_INFO_1518 ServerInfo1518;
765 [case(1523)] LPSERVER_INFO_1523 ServerInfo1523;
766 [case(1528)] LPSERVER_INFO_1528 ServerInfo1528;
767 [case(1529)] LPSERVER_INFO_1529 ServerInfo1529;
768 [case(1530)] LPSERVER_INFO_1530 ServerInfo1530;
769 [case(1533)] LPSERVER_INFO_1533 ServerInfo1533;
770 [case(1534)] LPSERVER_INFO_1534 ServerInfo1534;
771 [case(1535)] LPSERVER_INFO_1535 ServerInfo1535;
772 [case(1536)] LPSERVER_INFO_1536 ServerInfo1536;
773 [case(1538)] LPSERVER_INFO_1538 ServerInfo1538;
774 [case(1539)] LPSERVER_INFO_1539 ServerInfo1539;
775 [case(1540)] LPSERVER_INFO_1540 ServerInfo1540;
776 [case(1541)] LPSERVER_INFO_1541 ServerInfo1541;
777 [case(1542)] LPSERVER_INFO_1542 ServerInfo1542;
778 [case(1543)] LPSERVER_INFO_1543 ServerInfo1543;
779 [case(1544)] LPSERVER_INFO_1544 ServerInfo1544;
780 [case(1545)] LPSERVER_INFO_1545 ServerInfo1545;
781 [case(1546)] LPSERVER_INFO_1546 ServerInfo1546;
782 [case(1547)] LPSERVER_INFO_1547 ServerInfo1547;
783 [case(1548)] LPSERVER_INFO_1548 ServerInfo1548;
784 [case(1549)] LPSERVER_INFO_1549 ServerInfo1549;
785 [case(1550)] LPSERVER_INFO_1550 ServerInfo1550;
786 [case(1552)] LPSERVER_INFO_1552 ServerInfo1552;
787 [case(1553)] LPSERVER_INFO_1553 ServerInfo1553;
788 [case(1554)] LPSERVER_INFO_1554 ServerInfo1554;
789 [case(1555)] LPSERVER_INFO_1555 ServerInfo1555;
790 [case(1556)] LPSERVER_INFO_1556 ServerInfo1556;
791 } SERVER_INFO, *PSERVER_INFO, *LPSERVER_INFO;
792 */
793 typedef [switch_type(unsigned long)] union _SERVER_INFO
794 {
795 [case(100)] SERVER_INFO_100 ServerInfo100;
796 [case(101)] SERVER_INFO_101 ServerInfo101;
797 [case(102)] SERVER_INFO_102 ServerInfo102;
798 [case(103)] SERVER_INFO_103 ServerInfo103;
799 [case(502)] SERVER_INFO_502 ServerInfo502;
800 [case(503)] SERVER_INFO_503 ServerInfo503;
801 [case(599)] SERVER_INFO_599 ServerInfo599;
802 [case(1005)] SERVER_INFO_1005 ServerInfo1005;
803 [case(1107)] SERVER_INFO_1107 ServerInfo1107;
804 [case(1010)] SERVER_INFO_1010 ServerInfo1010;
805 [case(1016)] SERVER_INFO_1016 ServerInfo1016;
806 [case(1017)] SERVER_INFO_1017 ServerInfo1017;
807 [case(1018)] SERVER_INFO_1018 ServerInfo1018;
808 [case(1501)] SERVER_INFO_1501 ServerInfo1501;
809 [case(1502)] SERVER_INFO_1502 ServerInfo1502;
810 [case(1503)] SERVER_INFO_1503 ServerInfo1503;
811 [case(1506)] SERVER_INFO_1506 ServerInfo1506;
812 [case(1510)] SERVER_INFO_1510 ServerInfo1510;
813 [case(1511)] SERVER_INFO_1511 ServerInfo1511;
814 [case(1512)] SERVER_INFO_1512 ServerInfo1512;
815 [case(1513)] SERVER_INFO_1513 ServerInfo1513;
816 [case(1514)] SERVER_INFO_1514 ServerInfo1514;
817 [case(1515)] SERVER_INFO_1515 ServerInfo1515;
818 [case(1516)] SERVER_INFO_1516 ServerInfo1516;
819 [case(1518)] SERVER_INFO_1518 ServerInfo1518;
820 [case(1523)] SERVER_INFO_1523 ServerInfo1523;
821 [case(1528)] SERVER_INFO_1528 ServerInfo1528;
822 [case(1529)] SERVER_INFO_1529 ServerInfo1529;
823 [case(1530)] SERVER_INFO_1530 ServerInfo1530;
824 [case(1533)] SERVER_INFO_1533 ServerInfo1533;
825 [case(1534)] SERVER_INFO_1534 ServerInfo1534;
826 [case(1535)] SERVER_INFO_1535 ServerInfo1535;
827 [case(1536)] SERVER_INFO_1536 ServerInfo1536;
828 [case(1538)] SERVER_INFO_1538 ServerInfo1538;
829 [case(1539)] SERVER_INFO_1539 ServerInfo1539;
830 [case(1540)] SERVER_INFO_1540 ServerInfo1540;
831 [case(1541)] SERVER_INFO_1541 ServerInfo1541;
832 [case(1542)] SERVER_INFO_1542 ServerInfo1542;
833 [case(1543)] SERVER_INFO_1543 ServerInfo1543;
834 [case(1544)] SERVER_INFO_1544 ServerInfo1544;
835 [case(1545)] SERVER_INFO_1545 ServerInfo1545;
836 [case(1546)] SERVER_INFO_1546 ServerInfo1546;
837 [case(1547)] SERVER_INFO_1547 ServerInfo1547;
838 [case(1548)] SERVER_INFO_1548 ServerInfo1548;
839 [case(1549)] SERVER_INFO_1549 ServerInfo1549;
840 [case(1550)] SERVER_INFO_1550 ServerInfo1550;
841 [case(1552)] SERVER_INFO_1552 ServerInfo1552;
842 [case(1553)] SERVER_INFO_1553 ServerInfo1553;
843 [case(1554)] SERVER_INFO_1554 ServerInfo1554;
844 [case(1555)] SERVER_INFO_1555 ServerInfo1555;
845 [case(1556)] SERVER_INFO_1556 ServerInfo1556;
846 } SERVER_INFO, *PSERVER_INFO, *LPSERVER_INFO;
847
848 typedef struct _DISK_INFO
849 {
850 [string] WCHAR Disk[3];
851 } DISK_INFO, *PDISK_INFO, *LPDISK_INFO;
852
853 typedef struct _DISK_ENUM_CONTAINER
854 {
855 DWORD EntriesRead;
856 [size_is(EntriesRead), length_is(EntriesRead)] LPDISK_INFO Buffer;
857 } DISK_ENUM_CONTAINER;
858
859 cpp_quote("#ifndef _LMSERVER_H")
860 typedef struct _SERVER_TRANSPORT_INFO_0
861 {
862 DWORD svti0_numberofvcs;
863 [string] wchar_t *svti0_transportname;
864 [size_is(svti0_transportaddresslength)] unsigned char *svti0_transportaddress;
865 DWORD svti0_transportaddresslength;
866 [string] wchar_t *svti0_networkaddress;
867 } SERVER_TRANSPORT_INFO_0, *PSERVER_TRANSPORT_INFO_0, *LPSERVER_TRANSPORT_INFO_0;
868 cpp_quote("#endif")
869
870 typedef struct _SERVER_XPORT_INFO_0_CONTAINER
871 {
872 DWORD EntriesRead;
873 [size_is(EntriesRead)] LPSERVER_TRANSPORT_INFO_0 Buffer;
874 } SERVER_XPORT_INFO_0_CONTAINER, *PSERVER_XPORT_INFO_0_CONTAINER;
875
876 cpp_quote("#ifndef _LMSERVER_H")
877 typedef struct _SERVER_TRANSPORT_INFO_1
878 {
879 DWORD svti1_numberofvcs;
880 [string] wchar_t *svti1_transportname;
881 [size_is(svti1_transportaddresslength)] unsigned char *svti1_transportaddress;
882 DWORD svti1_transportaddresslength;
883 [string] wchar_t *svti1_networkaddress;
884 [string] wchar_t *svti1_domain;
885 } SERVER_TRANSPORT_INFO_1, *PSERVER_TRANSPORT_INFO_1, *LPSERVER_TRANSPORT_INFO_1;
886 cpp_quote("#endif")
887
888 typedef struct _SERVER_XPORT_INFO_1_CONTAINER
889 {
890 DWORD EntriesRead;
891 [size_is(EntriesRead)] LPSERVER_TRANSPORT_INFO_1 Buffer;
892 } SERVER_XPORT_INFO_1_CONTAINER, *PSERVER_XPORT_INFO_1_CONTAINER;
893
894 cpp_quote("#ifndef _LMSERVER_H")
895 typedef struct _SERVER_TRANSPORT_INFO_2
896 {
897 DWORD svti2_numberofvcs;
898 [string] wchar_t *svti2_transportname;
899 [size_is(svti2_transportaddresslength)] unsigned char *svti2_transportaddress;
900 DWORD svti2_transportaddresslength;
901 [string] wchar_t *svti2_networkaddress;
902 [string] wchar_t *svti2_domain;
903 unsigned long svti2_flags;
904 } SERVER_TRANSPORT_INFO_2, *PSERVER_TRANSPORT_INFO_2, *LPSERVER_TRANSPORT_INFO_2;
905 cpp_quote("#endif")
906
907 typedef struct _SERVER_XPORT_INFO_2_CONTAINER
908 {
909 DWORD EntriesRead;
910 [size_is(EntriesRead)] LPSERVER_TRANSPORT_INFO_2 Buffer;
911 } SERVER_XPORT_INFO_2_CONTAINER, *PSERVER_XPORT_INFO_2_CONTAINER;
912
913 cpp_quote("#ifndef _LMSERVER_H")
914 typedef struct _SERVER_TRANSPORT_INFO_3
915 {
916 DWORD svti3_numberofvcs;
917 [string] wchar_t *svti3_transportname;
918 [size_is(svti3_transportaddresslength)] unsigned char *svti3_transportaddress;
919 DWORD svti3_transportaddresslength;
920 [string] wchar_t *svti3_networkaddress;
921 [string] wchar_t *svti3_domain;
922 unsigned long svti3_flags;
923 DWORD svti3_passwordlength;
924 unsigned char svti3_password[256];
925 } SERVER_TRANSPORT_INFO_3, *PSERVER_TRANSPORT_INFO_3, *LPSERVER_TRANSPORT_INFO_3;
926 cpp_quote("#endif")
927
928 typedef struct _SERVER_XPORT_INFO_3_CONTAINER
929 {
930 DWORD EntriesRead;
931 [size_is(EntriesRead)] LPSERVER_TRANSPORT_INFO_3 Buffer;
932 } SERVER_XPORT_INFO_3_CONTAINER, *PSERVER_XPORT_INFO_3_CONTAINER;
933
934 typedef [switch_type(unsigned long)] union _TRANSPORT_INFO
935 {
936 [case(0)] SERVER_TRANSPORT_INFO_0 Transport0;
937 [case(1)] SERVER_TRANSPORT_INFO_1 Transport1;
938 [case(2)] SERVER_TRANSPORT_INFO_2 Transport2;
939 [case(3)] SERVER_TRANSPORT_INFO_3 Transport3;
940 } TRANSPORT_INFO, *PTRANSPORT_INFO, *LPTRANSPORT_INFO;
941
942 typedef [switch_type(DWORD)] union _SERVER_XPORT_ENUM_UNION
943 {
944 [case(0)] PSERVER_XPORT_INFO_0_CONTAINER Level0;
945 [case(1)] PSERVER_XPORT_INFO_1_CONTAINER Level1;
946 [case(2)] PSERVER_XPORT_INFO_2_CONTAINER Level2;
947 [case(3)] PSERVER_XPORT_INFO_3_CONTAINER Level3;
948 } SERVER_XPORT_ENUM_UNION;
949
950 typedef struct _SERVER_XPORT_ENUM_STRUCT
951 {
952 DWORD Level;
953 [switch_is(Level)] SERVER_XPORT_ENUM_UNION XportInfo;
954 } SERVER_XPORT_ENUM_STRUCT, *PSERVER_XPORT_ENUM_STRUCT, *LPSERVER_XPORT_ENUM_STRUCT;
955
956
957 typedef [context_handle] void *SHARE_DEL_HANDLE;
958 typedef SHARE_DEL_HANDLE *PSHARE_DEL_HANDLE;
959
960 typedef struct _ADT_SECURITY_DESCRIPTOR
961 {
962 DWORD Length;
963 [size_is(Length)] unsigned char *Buffer;
964 } ADT_SECURITY_DESCRIPTOR, *PADT_SECURITY_DESCRIPTOR;
965
966 typedef struct _STAT_SERVER_0
967 {
968 DWORD sts0_start;
969 DWORD sts0_fopens;
970 DWORD sts0_devopens;
971 DWORD sts0_jobsqueued;
972 DWORD sts0_sopens;
973 DWORD sts0_stimedout;
974 DWORD sts0_serrorout;
975 DWORD sts0_pwerrors;
976 DWORD sts0_permerrors;
977 DWORD sts0_syserrors;
978 DWORD sts0_bytessent_low;
979 DWORD sts0_bytessent_high;
980 DWORD sts0_bytesrcvd_low;
981 DWORD sts0_bytesrcvd_high;
982 DWORD sts0_avresponse;
983 DWORD sts0_reqbufneed;
984 DWORD sts0_bigbufneed;
985 } STAT_SERVER_0, *PSTAT_SERVER_0, *LPSTAT_SERVER_0;
986
987 typedef struct _TIME_OF_DAY_INFO
988 {
989 DWORD tod_elapsedt;
990 DWORD tod_msecs;
991 DWORD tod_hours;
992 DWORD tod_mins;
993 DWORD tod_secs;
994 DWORD tod_hunds;
995 long tod_timezone;
996 DWORD tod_tinterval;
997 DWORD tod_day;
998 DWORD tod_month;
999 DWORD tod_year;
1000 DWORD tod_weekday;
1001 } TIME_OF_DAY_INFO, *PTIME_OF_DAY_INFO, *LPTIME_OF_DAY_INFO;
1002
1003 typedef struct _NET_DFS_ENTRY_ID
1004 {
1005 GUID Uid;
1006 [string] WCHAR *Prefix;
1007 } NET_DFS_ENTRY_ID, *LPNET_DFS_ENTRY_ID;
1008
1009 typedef struct _NET_DFS_ENTRY_ID_CONTAINER
1010 {
1011 unsigned long Count;
1012 [size_is(Count)] LPNET_DFS_ENTRY_ID Buffer;
1013 } NET_DFS_ENTRY_ID_CONTAINER, *LPNET_DFS_ENTRY_ID_CONTAINER;
1014
1015 typedef struct _DFS_SITENAME_INFO
1016 {
1017 unsigned long SiteFlags;
1018 [string,unique] WCHAR *SiteName;
1019 } DFS_SITENAME_INFO, *PDFS_SITENAME_INFO, *LPDFS_SITENAME_INFO;
1020
1021 typedef struct _DFS_SITELIST_INFO
1022 {
1023 unsigned long cSites;
1024 [size_is(cSites)] DFS_SITENAME_INFO Site[];
1025 } DFS_SITELIST_INFO, *PDFS_SITELIST_INFO, *LPDFS_SITELIST_INFO;
1026
1027 typedef struct _SERVER_ALIAS_INFO_0
1028 {
1029 [string] LMSTR srvai0_alias;
1030 [string] LMSTR srvai0_target;
1031 BOOLEAN srvai0_default;
1032 ULONG srvai0_reserved;
1033 }SERVER_ALIAS_INFO_0, *PSERVER_ALIAS_INFO_0, *LPSERVER_ALIAS_INFO_0;
1034
1035 typedef struct _SERVER_ALIAS_INFO_0_CONTAINER
1036 {
1037 DWORD EntriesRead;
1038 [size_is(EntriesRead)] LPSERVER_ALIAS_INFO_0 Buffer;
1039 } SERVER_ALIAS_INFO_0_CONTAINER;
1040
1041 typedef struct _SERVER_ALIAS_ENUM_STRUCT
1042 {
1043 DWORD Level;
1044 [switch_is(Level)] union SERVER_ALIAS_ENUM_UNION
1045 {
1046 [case(0)] SERVER_ALIAS_INFO_0_CONTAINER *Level0;
1047 } ServerAliasInfo;
1048 } SERVER_ALIAS_ENUM_STRUCT, *PSERVER_ALIAS_ENUM_STRUCT, *LPSERVER_ALIAS_ENUM_STRUCT;
1049
1050 typedef [switch_type(unsigned long)] union _SERVER_ALIAS_INFO
1051 {
1052 [case(0)] LPSERVER_ALIAS_INFO_0 ServerAliasInfo0;
1053 } SERVER_ALIAS_INFO, *PSERVER_ALIAS_INFO, *LPSERVER_ALIAS_INFO;
1054
1055
1056 [
1057 uuid(4B324FC8-1670-01D3-1278-5A47BF6EE188),
1058 version(3.0),
1059 // ms_union,
1060 pointer_default(unique),
1061 endpoint("ncacn_np:[\\pipe\\srvsvc]")
1062 #ifndef __midl
1063 ,implicit_handle(handle_t hBinding)
1064 #endif
1065 ]
1066 interface srvsvc
1067 {
1068 // This method not used on the wire
1069 void
1070 __stdcall
1071 Opnum0NotUsedOnWire(void);
1072
1073 // This method not used on the wire
1074 void
1075 __stdcall
1076 Opnum1NotUsedOnWire(void);
1077
1078 // This method not used on the wire
1079 void
1080 __stdcall
1081 Opnum2NotUsedOnWire(void);
1082
1083 // This method not used on the wire
1084 void
1085 __stdcall
1086 Opnum3NotUsedOnWire(void);
1087
1088 // This method not used on the wire
1089 void
1090 __stdcall
1091 Opnum4NotUsedOnWire(void);
1092
1093 // This method not used on the wire
1094 void
1095 __stdcall
1096 Opnum5NotUsedOnWire(void);
1097
1098 // This method not used on the wire
1099 void
1100 __stdcall
1101 Opnum6NotUsedOnWire(void);
1102
1103 // This method not used on the wire
1104 void
1105 __stdcall
1106 Opnum7NotUsedOnWire(void);
1107
1108 NET_API_STATUS
1109 __stdcall
1110 NetrConnectionEnum(
1111 [in, string, unique] SRVSVC_HANDLE ServerName,
1112 [in, string, unique] WCHAR *Qualifier,
1113 [in, out] LPCONNECT_ENUM_STRUCT InfoStruct,
1114 [in] DWORD PreferedMaximumLength,
1115 [out] DWORD *TotalEntries,
1116 [in, out, unique] DWORD *ResumeHandle);
1117
1118 NET_API_STATUS
1119 __stdcall
1120 NetrFileEnum(
1121 [in, string, unique] SRVSVC_HANDLE ServerName,
1122 [in, string, unique] WCHAR *BasePath,
1123 [in, string, unique] WCHAR *UserName,
1124 [in, out] PFILE_ENUM_STRUCT InfoStruct,
1125 [in] DWORD PreferedMaximumLength,
1126 [out] DWORD *TotalEntries,
1127 [in, out, unique] DWORD *ResumeHandle);
1128
1129 NET_API_STATUS
1130 __stdcall
1131 NetrFileGetInfo(
1132 [in, string, unique] SRVSVC_HANDLE ServerName,
1133 [in] DWORD FileId,
1134 [in] DWORD Level,
1135 [out, switch_is(Level)] LPFILE_INFO InfoStruct);
1136
1137 NET_API_STATUS
1138 __stdcall
1139 NetrFileClose(
1140 [in,string,unique] SRVSVC_HANDLE ServerName,
1141 [in] DWORD FileId);
1142
1143 NET_API_STATUS
1144 __stdcall
1145 NetrSessionEnum(
1146 [in, string, unique] SRVSVC_HANDLE ServerName,
1147 [in, string, unique] WCHAR *ClientName,
1148 [in, string, unique] WCHAR *UserName,
1149 [in, out] PSESSION_ENUM_STRUCT InfoStruct,
1150 [in] DWORD PreferedMaximumLength,
1151 [out] DWORD *TotalEntries,
1152 [in, out, unique] DWORD *ResumeHandle);
1153
1154 NET_API_STATUS
1155 __stdcall
1156 NetrSessionDel(
1157 [in, string, unique] SRVSVC_HANDLE ServerName,
1158 [in, string, unique] WCHAR *ClientName,
1159 [in, string, unique] WCHAR *UserName);
1160
1161 NET_API_STATUS
1162 __stdcall
1163 NetrShareAdd(
1164 [in, string, unique] SRVSVC_HANDLE ServerName,
1165 [in] DWORD Level,
1166 [in, switch_is(Level)] LPSHARE_INFO InfoStruct,
1167 [in, out, unique] DWORD *ParmErr);
1168
1169 NET_API_STATUS
1170 __stdcall
1171 NetrShareEnum(
1172 [in, string, unique] SRVSVC_HANDLE ServerName,
1173 [in, out] LPSHARE_ENUM_STRUCT InfoStruct,
1174 [in] DWORD PreferedMaximumLength,
1175 [out] DWORD *TotalEntries,
1176 [in, out, unique] DWORD *ResumeHandle);
1177
1178 NET_API_STATUS
1179 __stdcall
1180 NetrShareGetInfo(
1181 [in, string, unique] SRVSVC_HANDLE ServerName,
1182 [in, string] WCHAR *NetName,
1183 [in] DWORD Level,
1184 [out, switch_is(Level)] LPSHARE_INFO InfoStruct);
1185
1186 NET_API_STATUS
1187 __stdcall
1188 NetrShareSetInfo(
1189 [in, string, unique] SRVSVC_HANDLE ServerName,
1190 [in, string] WCHAR *NetName,
1191 [in] DWORD Level,
1192 [in, switch_is(Level)] LPSHARE_INFO ShareInfo,
1193 [in, out, unique] DWORD *ParmErr);
1194
1195 NET_API_STATUS
1196 __stdcall
1197 NetrShareDel (
1198 [in, string, unique] SRVSVC_HANDLE ServerName,
1199 [in, string] WCHAR *NetName,
1200 [in] DWORD Reserved);
1201
1202 NET_API_STATUS
1203 __stdcall
1204 NetrShareDelSticky(
1205 [in, string, unique] SRVSVC_HANDLE ServerName,
1206 [in, string] WCHAR *NetName,
1207 [in] DWORD Reserved);
1208
1209 NET_API_STATUS
1210 __stdcall
1211 NetrShareCheck(
1212 [in, string, unique] SRVSVC_HANDLE ServerName,
1213 [in, string] WCHAR *Device,
1214 [out] DWORD *Type);
1215
1216 NET_API_STATUS
1217 __stdcall
1218 NetrServerGetInfo(
1219 [in, string, unique] SRVSVC_HANDLE ServerName,
1220 [in] DWORD Level,
1221 [out, switch_is(Level)] LPSERVER_INFO *InfoStruct);
1222 // [out, switch_is(Level)] LPSERVER_INFO InfoStruct);
1223
1224 NET_API_STATUS
1225 __stdcall
1226 NetrServerSetInfo(
1227 [in, string, unique] SRVSVC_HANDLE ServerName,
1228 [in] DWORD Level,
1229 [in, switch_is(Level)] LPSERVER_INFO ServerInfo,
1230 [in, out, unique] DWORD *ParmErr);
1231
1232 NET_API_STATUS
1233 __stdcall
1234 NetrServerDiskEnum(
1235 [in, string, unique] SRVSVC_HANDLE ServerName,
1236 [in] DWORD Level,
1237 [in, out] DISK_ENUM_CONTAINER *DiskInfoStruct,
1238 [in] DWORD PreferedMaximumLength,
1239 [out] DWORD *TotalEntries,
1240 [in, out, unique] DWORD *ResumeHandle);
1241
1242 NET_API_STATUS
1243 __stdcall
1244 NetrServerStatisticsGet(
1245 [in, string, unique] SRVSVC_HANDLE ServerName,
1246 [in, string, unique] WCHAR *Service,
1247 [in] DWORD Level,
1248 [in] DWORD Options,
1249 [out] LPSTAT_SERVER_0 *InfoStruct);
1250
1251 NET_API_STATUS
1252 __stdcall
1253 NetrServerTransportAdd(
1254 [in, string, unique] SRVSVC_HANDLE ServerName,
1255 [in] DWORD Level,
1256 [in] LPSERVER_TRANSPORT_INFO_0 Buffer);
1257
1258 NET_API_STATUS
1259 __stdcall
1260 NetrServerTransportEnum(
1261 [in, string, unique] SRVSVC_HANDLE ServerName,
1262 [in, out] LPSERVER_XPORT_ENUM_STRUCT InfoStruct,
1263 [in] DWORD PreferedMaximumLength,
1264 [out] DWORD *TotalEntries,
1265 [in, out, unique] DWORD *ResumeHandle);
1266
1267 NET_API_STATUS
1268 __stdcall
1269 NetrServerTransportDel(
1270 [in, string, unique] SRVSVC_HANDLE ServerName,
1271 [in] DWORD Level,
1272 [in] LPSERVER_TRANSPORT_INFO_0 Buffer);
1273
1274 NET_API_STATUS
1275 __stdcall
1276 NetrRemoteTOD(
1277 [in, string, unique] SRVSVC_HANDLE ServerName,
1278 [out] LPTIME_OF_DAY_INFO *BufferPtr);
1279
1280 /* Function 29 - Not used on wire */
1281 NET_API_STATUS
1282 __stdcall
1283 NetrServerSetServiceBits(
1284 [in, string, unique] SRVSVC_HANDLE ServerName,
1285 [in, string, unique] WCHAR *Transport,
1286 [in] DWORD ServiceBits,
1287 [in] DWORD UpdateImmediately);
1288
1289 NET_API_STATUS
1290 __stdcall
1291 NetprPathType(
1292 [in, string, unique] SRVSVC_HANDLE ServerName,
1293 [in, string] WCHAR *PathName,
1294 [out] DWORD *PathType,
1295 [in] DWORD Flags);
1296
1297 NET_API_STATUS
1298 __stdcall
1299 NetprPathCanonicalize(
1300 [in, string, unique] SRVSVC_HANDLE ServerName,
1301 [in, string] WCHAR *PathName,
1302 [out, size_is(OutbufLen)] unsigned char *Outbuf,
1303 [in, range(0, 64000)] DWORD OutbufLen,
1304 [in, string] WCHAR *Prefix,
1305 [in, out] DWORD *PathType,
1306 [in] DWORD Flags);
1307
1308 long
1309 __stdcall
1310 NetprPathCompare(
1311 [in, string,unique] SRVSVC_HANDLE ServerName,
1312 [in, string] WCHAR *PathName1,
1313 [in, string] WCHAR *PathName2,
1314 [in] DWORD PathType,
1315 [in] DWORD Flags);
1316
1317 NET_API_STATUS
1318 __stdcall
1319 NetprNameValidate(
1320 [in, string, unique] SRVSVC_HANDLE ServerName,
1321 [in, string] WCHAR *Name,
1322 [in] DWORD NameType,
1323 [in] DWORD Flags);
1324
1325 NET_API_STATUS
1326 __stdcall
1327 NetprNameCanonicalize(
1328 [in, string, unique] SRVSVC_HANDLE ServerName,
1329 [in, string] WCHAR *Name,
1330 [out, size_is(OutbufLen)] WCHAR *Outbuf,
1331 [in, range(0, 64000)] DWORD OutbufLen,
1332 [in] DWORD NameType,
1333 [in] DWORD Flags);
1334
1335 long
1336 __stdcall
1337 NetprNameCompare(
1338 [in, string, unique] SRVSVC_HANDLE ServerName,
1339 [in, string] WCHAR *Name1,
1340 [in, string] WCHAR *Name2,
1341 [in] DWORD NameType,
1342 [in] DWORD Flags);
1343
1344 NET_API_STATUS
1345 __stdcall
1346 NetrShareEnumSticky(
1347 [in, string, unique] SRVSVC_HANDLE ServerName,
1348 [in, out] LPSHARE_ENUM_STRUCT InfoStruct,
1349 [in] DWORD PreferedMaximumLength,
1350 [out] DWORD *TotalEntries,
1351 [in, out, unique] DWORD *ResumeHandle);
1352
1353 NET_API_STATUS
1354 __stdcall
1355 NetrShareDelStart(
1356 [in, string, unique] SRVSVC_HANDLE ServerName,
1357 [in, string] WCHAR *NetName,
1358 [in] DWORD Reserved,
1359 [out] PSHARE_DEL_HANDLE ContextHandle);
1360
1361 NET_API_STATUS
1362 __stdcall
1363 NetrShareDelCommit(
1364 [in, out] PSHARE_DEL_HANDLE ContextHandle);
1365
1366 DWORD
1367 __stdcall
1368 NetrpGetFileSecurity(
1369 [in, string, unique] SRVSVC_HANDLE ServerName,
1370 [in, string, unique] WCHAR *ShareName,
1371 [in, string] WCHAR *lpFileName,
1372 [in] SECURITY_INFORMATION RequestedInformation,
1373 [out] PADT_SECURITY_DESCRIPTOR *SecurityDescriptor);
1374
1375 DWORD
1376 __stdcall
1377 NetrpSetFileSecurity(
1378 [in, string, unique] SRVSVC_HANDLE ServerName,
1379 [in, string, unique] WCHAR *ShareName,
1380 [in, string] WCHAR *lpFileName,
1381 [in] SECURITY_INFORMATION SecurityInformation,
1382 [in] PADT_SECURITY_DESCRIPTOR SecurityDescriptor);
1383
1384 NET_API_STATUS
1385 __stdcall
1386 NetrServerTransportAddEx(
1387 [in, string, unique] SRVSVC_HANDLE ServerName,
1388 [in] DWORD Level,
1389 [in, switch_is(Level)] LPTRANSPORT_INFO Buffer);
1390
1391 /* Function 42 - Not used on wire */
1392 NET_API_STATUS
1393 __stdcall
1394 NetrServerSetServiceBitsEx(
1395 [in, string, unique] SRVSVC_HANDLE ServerName,
1396 [in, string, unique] WCHAR *EmulatedServer,
1397 [in, string, unique] WCHAR *Transport,
1398 [in] DWORD ServiceBitsOfInterest,
1399 [in] DWORD ServiceBits,
1400 [in] DWORD UpdateImmediately);
1401
1402 NET_API_STATUS
1403 __stdcall
1404 NetrDfsGetVersion(
1405 [in, string, unique] SRVSVC_HANDLE ServerName,
1406 [out] DWORD *Version);
1407
1408 NET_API_STATUS
1409 __stdcall
1410 NetrDfsCreateLocalPartition(
1411 [in, string, unique] SRVSVC_HANDLE ServerName,
1412 [in, string] WCHAR *ShareName,
1413 [in] GUID *EntryUid,
1414 [in, string] WCHAR *EntryPrefix,
1415 [in, string] WCHAR *ShortName,
1416 [in] LPNET_DFS_ENTRY_ID_CONTAINER RelationInfo,
1417 [in] int Force);
1418
1419 NET_API_STATUS
1420 __stdcall
1421 NetrDfsDeleteLocalPartition(
1422 [in, string, unique] SRVSVC_HANDLE ServerName,
1423 [in] GUID *Uid,
1424 [in, string] WCHAR *Prefix);
1425
1426 NET_API_STATUS
1427 __stdcall
1428 NetrDfsSetLocalVolumeState(
1429 [in, string, unique] SRVSVC_HANDLE ServerName,
1430 [in] GUID *Uid,
1431 [in, string] WCHAR *Prefix,
1432 [in] unsigned long State);
1433
1434 /* Function 47 - Not used on wire */
1435 NET_API_STATUS
1436 __stdcall
1437 NetrDfsSetServerInfo(void);
1438
1439 NET_API_STATUS
1440 __stdcall
1441 NetrDfsCreateExitPoint(
1442 [in, string, unique] SRVSVC_HANDLE ServerName,
1443 [in] GUID *Uid,
1444 [in, string] WCHAR *Prefix,
1445 [in] unsigned long Type,
1446 [in, range(0,32) ] DWORD ShortPrefixLen,
1447 [out, size_is(ShortPrefixLen)] WCHAR *ShortPrefix);
1448
1449 NET_API_STATUS
1450 __stdcall
1451 NetrDfsDeleteExitPoint(
1452 [in, string, unique] SRVSVC_HANDLE ServerName,
1453 [in] GUID *Uid,
1454 [in, string] WCHAR *Prefix,
1455 [in] unsigned long Type);
1456
1457 NET_API_STATUS
1458 __stdcall
1459 NetrDfsModifyPrefix(
1460 [in, string, unique] SRVSVC_HANDLE ServerName,
1461 [in] GUID *Uid,
1462 [in, string] WCHAR *Prefix);
1463
1464 NET_API_STATUS
1465 __stdcall
1466 NetrDfsFixLocalVolume(
1467 [in, string, unique] SRVSVC_HANDLE ServerName,
1468 [in, string] WCHAR *VolumeName,
1469 [in] unsigned long EntryType,
1470 [in] unsigned long ServiceType,
1471 [in, string] WCHAR *StgId,
1472 [in] GUID *EntryUid,
1473 [in, string] WCHAR *EntryPrefix,
1474 [in] LPNET_DFS_ENTRY_ID_CONTAINER RelationInfo,
1475 [in] unsigned long CreateDisposition);
1476
1477 NET_API_STATUS
1478 __stdcall
1479 NetrDfsManagerReportSiteInfo(
1480 [in, string, unique] SRVSVC_HANDLE ServerName,
1481 [in, out, unique] LPDFS_SITELIST_INFO *ppSiteInfo);
1482
1483 NET_API_STATUS
1484 __stdcall
1485 NetrServerTransportDelEx(
1486 [in, string, unique] SRVSVC_HANDLE ServerName,
1487 [in] DWORD Level,
1488 [in, switch_is(Level)] LPTRANSPORT_INFO Buffer);
1489 }