13 typedef struct _UNISTR2 {
17 wchar buffer[str_len];
26 /* -- CHARACTER DEVICE INFORMATION -- */
28 typedef struct _CHARDEV_INFO_0 {
32 typedef struct _CHARDEV_INFO_1 {
39 typedef union _CHARDEV_INFO switch (DWORD dwLevel) ctr {
40 case 1: CHARDEV_INFO_0 *ci0;
41 case 2: CHARDEV_INFO_1 *ci1;
44 typedef struct _CHARDEV_ENUM_0 {
46 [size_is(dwEntries)] CHARDEV_INFO_0 *ci0;
49 typedef struct _CHARDEV_ENUM_1 {
51 [size_is(dwEntries)] CHARDEV_INFO_1 *ci1;
54 typedef struct _CHARDEV_ENUM {
56 [switch_is(dwLevel)] union {
57 [case(0)] CHARDEV_ENUM_0 *ce0;
58 [case(1)] CHARDEV_ENUM_1 *ce1;
62 STATUS NetrCharDevEnum( /* Function 0x00 */
63 [in,unique] LPWSTR pszServer,
64 [in,out] CHARDEV_ENUM* pCharDevEnum,
66 [out] DWORD* dwEntries,
67 [in,out] DWORD* hResume
70 STATUS NetrCharDevGetInfo( /* Function 0x01 */
71 [in,unique] LPWSTR pszServer,
72 [in,ref] LPWSTR pszDevice,
74 [out] CHARDEV_INFO* pCharDevInfo
77 STATUS NetrCharDevControl( /* Function 0x02 */
78 [in,unique] LPWSTR pszServer,
79 [in,ref] LPWSTR pszDevice,
83 /* -- CHARACTER DEVICE QUEUE INFORMATION -- */
85 typedef struct _CHARDEVQ_INFO_0 {
89 typedef struct _CHARDEVQ_INFO_1 {
97 typedef union _CHARDEVQ_INFO switch (DWORD dwLevel) ctr {
98 case 1: CHARDEVQ_INFO_0 *ci0;
99 case 2: CHARDEVQ_INFO_1 *ci1;
102 typedef struct _CHARDEVQ_ENUM_0 {
104 [size_is(dwEntries)] CHARDEVQ_INFO_0 *ci0;
107 typedef struct _CHARDEVQ_ENUM_1 {
109 [size_is(dwEntries)] CHARDEVQ_INFO_1 *ci1;
112 typedef struct _CHARDEVQ_ENUM {
114 [switch_is(dwLevel)] union {
115 [case(0)] CHARDEVQ_ENUM_0 *ce0;
116 [case(1)] CHARDEVQ_ENUM_1 *ce1;
120 STATUS NetrCharDevQEnum( /* Function 0x03 */
121 [in,unique] LPWSTR pszServer,
122 [in,unique] LPWSTR pszUser,
123 [in,out] CHARDEVQ_ENUM* pCharDevQEnum,
125 [out] DWORD* dwEntries,
126 [in,out] DWORD* hResume
129 STATUS NetrCharDevQGetInfo( /* Function 0x04 */
130 [in,unique] LPWSTR pszServer,
131 [in,ref] LPWSTR pszQueue,
132 [in,ref] LPWSTR pszUser,
134 [out] CHARDEVQ_INFO* pCharDevQInfo
137 STATUS NetrCharDevQSetInfo( /* Function 0x05 */
138 [in,unique] LPWSTR pszServer,
139 [in,ref] LPWSTR pszQueue,
141 [in] CHARDEVQ_INFO* pCharDevQInfo,
142 [in,out] DWORD* dwParmError
145 STATUS NetrCharDevQPurge( /* Function 0x06 */
146 [in,unique] LPWSTR pszServer,
147 [in,ref] LPWSTR pszQueue
150 STATUS NetrCharDevQPurgeSelf( /* Function 0x07 */
151 [in,unique] LPWSTR pszServer,
152 [in,ref] LPWSTR pszQueue,
153 [in,ref] LPWSTR pszComputer
156 /* -- CONNECTION INFORMATION -- */
158 typedef struct _CONNECTION_INFO_0 {
162 typedef struct _CONNECTION_INFO_1 {
172 typedef struct _CONNECTION_ENUM_0 {
174 [size_is(dwEntries)] CONNECTION_INFO_0 *ci0;
177 typedef struct _CONNECTION_ENUM_1 {
179 [size_is(dwEntries)] CONNECTION_INFO_1 *ci1;
182 typedef struct _CONNECTION_ENUM {
184 [switch_is(dwLevel)] union {
185 [case(0)] CONNECTION_ENUM_0 *ce0;
186 [case(1)] CONNECTION_ENUM_1 *ce1;
190 STATUS NetrConnectionEnum( /* Function 0x08 */
191 [in,unique] LPWSTR pszServer,
192 [in,unique] LPWSTR pszClient,
193 [in,out] CONNECTION_ENUM* pConnectionEnum,
195 [out] DWORD* dwEntries,
196 [in,out] DWORD* hResume
199 /* -- FILE INFORMATION -- */
201 typedef struct _FILE_INFO_2 {
205 typedef struct _FILE_INFO_3 {
213 typedef union _FILE_INFO switch (DWORD dwLevel) ctr {
214 case 2: FILE_INFO_2 *fi2;
215 case 3: FILE_INFO_3 *fi3;
218 typedef struct _FILE_ENUM_2 {
220 [size_is(dwEntries)] FILE_INFO_2 *fi2;
223 typedef struct _FILE_ENUM_3 {
225 [size_is(dwEntries)] FILE_INFO_3 *fi3;
228 typedef struct _FILE_ENUM {
230 [switch_is(dwLevel)] union {
231 [case(2)] FILE_ENUM_2 *fe2;
232 [case(3)] FILE_ENUM_3 *fe3;
236 STATUS NetrFileEnum( /* Function 0x09 */
237 [in,unique] LPWSTR pszServer,
238 [in,unique] LPWSTR pszBasePath,
239 [in,unique] LPWSTR pszUser,
240 [in,out] FILE_ENUM* pFileEnum,
242 [out] DWORD* dwEntries,
243 [in,out] DWORD* hResume
246 STATUS NetrFileGetInfo( /* Function 0x0A */
247 [in,unique] LPWSTR pszServer,
250 [out] FILE_INFO* pFileInfo
253 STATUS NetrFileClose( /* Function 0x0B */
254 [in,unique] LPWSTR pszServer,
258 /* -- SESSION INFORMATION -- */
260 typedef struct _SESSION_INFO_0 {
264 typedef struct _SESSION_INFO_1 {
273 typedef struct _SESSION_INFO_2 {
280 LPWSTR pszClientType;
283 typedef struct _SESSION_ENUM_0 {
285 [size_is(dwEntries)] SESSION_INFO_0 *si0;
288 typedef struct _SESSION_ENUM_1 {
290 [size_is(dwEntries)] SESSION_INFO_1 *si1;
293 typedef struct _SESSION_ENUM_2 {
295 [size_is(dwEntries)] SESSION_INFO_2 *si2;
298 typedef struct _SESSION_ENUM {
300 [switch_is(dwLevel)] union {
301 [case(0)] SESSION_ENUM_0 *se0;
302 [case(1)] SESSION_ENUM_1 *se1;
303 [case(2)] SESSION_ENUM_2 *se2;
307 STATUS NetrSessionEnum( /* Function 0x0C */
308 [in,unique] LPWSTR pszServer,
309 [in,unique] LPWSTR pszClient,
310 [in,unique] LPWSTR pszUser,
311 [in,out] SESSION_ENUM* pFileEnum,
313 [out] DWORD* dwEntries,
314 [in,out] DWORD* hResume
317 STATUS NetrSessionDel( /* Function 0x0D */
318 [in,unique] LPWSTR pszServer,
319 [in,ref] LPWSTR pszClient,
320 [in,ref] LPWSTR pszUser
323 /* -- SHARE INFORMATION -- */
325 typedef struct _SHARE_INFO_0 {
329 typedef struct _SHARE_INFO_1 {
335 typedef struct _SHARE_INFO_2 {
346 typedef union _SHARE_INFO switch (DWORD dwLevel) ctr {
347 case 0: SHARE_INFO_0 *si0;
348 case 1: SHARE_INFO_1 *si1;
349 case 2: SHARE_INFO_2 *si2;
352 typedef struct _SHARE_ENUM_0 {
354 [size_is(dwEntries)] SHARE_INFO_0 *si0;
357 typedef struct _SHARE_ENUM_1 {
359 [size_is(dwEntries)] SHARE_INFO_1 *si1;
362 typedef struct _SHARE_ENUM_2 {
364 [size_is(dwEntries)] SHARE_INFO_2 *si2;
367 typedef struct _SHARE_ENUM {
369 [switch_is(dwLevel)] union {
370 [case(0)] SHARE_ENUM_0 *se0;
371 [case(1)] SHARE_ENUM_1 *se1;
372 [case(2)] SHARE_ENUM_2 *se2;
376 STATUS NetrShareAdd( /* Function 0x0E */
377 [in,unique] LPWSTR pszServer,
379 [out] SHARE_INFO* pShareInfo,
380 [in,out] DWORD* dwParmError
383 STATUS NetrShareEnum( /* Function 0x0F */
384 [in,unique] LPWSTR pszServer,
385 [in,out] SHARE_ENUM* pShareEnum,
387 [out] DWORD* dwEntries,
388 [in,out] DWORD* hResume
391 STATUS NetrShareGetInfo( /* Function 0x10 */
392 [in,unique] LPWSTR pszServer,
393 [in,ref] LPWSTR pszShare,
395 [out] SHARE_INFO* pShareInfo
398 STATUS NetrShareSetInfo( /* Function 0x11 */
399 [in,unique] LPWSTR pszServer,
400 [in,ref] LPWSTR pszShare,
402 [in] SHARE_INFO* pShareInfo,
403 [in] DWORD dwReserved
406 STATUS NetrShareDel( /* Function 0x12 */
407 [in,unique] LPWSTR pszServer,
408 [in,ref] LPWSTR pszShare,
409 [in] DWORD dwReserved
412 STATUS NetrShareDelSticky( /* Function 0x13 */
413 [in,unique] LPWSTR pszServer,
414 [in,ref] LPWSTR pszShare,
415 [in] DWORD dwReserved
418 STATUS NetrShareCheck( /* Function 0x14 */
419 [in,unique] LPWSTR pszServer,
420 [in,ref] LPWSTR pszDevice,
424 /* --- SERVER INFORMATION --- */
426 typedef struct _SERVER_INFO_100 {
431 typedef struct _SERVER_INFO_101 {
440 typedef struct _SERVER_INFO_102 {
456 typedef union _SERVER_INFO switch (DWORD dwLevel) ctr {
457 case 100: SERVER_INFO_100 *sv100;
458 case 101: SERVER_INFO_101 *sv101;
459 case 102: SERVER_INFO_102 *sv102;
462 STATUS NetrServerGetInfo( /* Function 0x15 */
463 [in,unique] LPWSTR pszServerName,
465 [out] SERVER_INFO* pServerInfo
468 STATUS NetrServerSetInfo( /* Function 0x16 */
469 [in,unique] LPWSTR pszServerName,
471 [in] SERVER_INFO* pServerInfo,
472 [in] DWORD dwReserved
475 typedef struct _DISK_INFO {
479 typedef struct _DISK_ENUM {
481 [size_is(dwEntries)] DISK_INFO *di;
484 STATUS NetrServerDiskEnum( /* Function 0x17 */
485 [in,unique] LPWSTR pszServer,
487 [in,out] DISK_ENUM* pDiskEnum,
489 [out] DWORD* dwEntries,
490 [in,out] DWORD* hResume
493 typedef struct _STAT_SERVER {
504 DWORD dwBytesSentLow;
505 DWORD dwBytesSentHigh;
506 DWORD dwBytesRcvdLow;
507 DWORD dwBytesRcvdHigh;
513 STATUS NetrServerStatisticsGet( /* Function 0x18 */
514 [in,unique] LPWSTR pszServer,
516 [in] DWORD dwOptions,
517 [out] STAT_SERVER* pStatServer
520 typedef struct _TRANSPORT_INFO_0 {
524 typedef union _TRANSPORT_INFO switch (DWORD dwLevel) ctr {
525 case 0: TRANSPORT_INFO_0 *ti0;
528 typedef struct _TRANSPORT_ENUM_0 {
530 [size_is(dwEntries)] TRANSPORT_INFO_0 *ti0;
533 typedef struct _TRANSPORT_ENUM {
535 [switch_is(dwLevel)] union {
536 [case(0)] TRANSPORT_ENUM_0 *te0;
540 STATUS NetrServerTransportAdd( /* Function 0x19 */
541 [in,unique] LPWSTR pszServer,
543 [out] TRANSPORT_INFO* pTransportInfo
546 STATUS NetrServerTransportEnum( /* Function 0x1a */
547 [in,unique] LPWSTR pszServer,
548 [in,out] TRANSPORT_ENUM* pTransportEnum,
550 [out] DWORD* dwEntries,
551 [in,out] DWORD* hResume
554 STATUS NetrServerTransportDel( /* Function 0x1b */
555 [in,unique] LPWSTR pszServer,
557 [out] TRANSPORT_INFO* pTransportInfo
560 typedef struct _TIME_OF_DAY {
575 STATUS NetrRemoteTOD( /* Function 0x1c */
576 [in,unique] LPWSTR pszServer,
577 [out] TIME_OF_DAY* pTOD
580 STATUS NetrServerSetServiceBits( /* Function 0x1d */
581 [in,unique] LPWSTR pszServer,
582 [in] DWORD hServiceStatus, /* ?? */
583 [in] DWORD dwServiceBits,
584 [in] BOOL bSetBitsOn,
585 [in] BOOL bUpdateImmediately
588 /* --- PATH INFORMATION --- */
590 STATUS NetprPathType( /* Function 0x1e */
594 STATUS NetprPathCanonicalize( /* Function 0x1f */
598 STATUS NetprPathCompare( /* Function 0x20 */
602 STATUS NetprNameValidate( /* Function 0x21 */
606 STATUS NetprNameCanonicalize( /* Function 0x22 */
610 STATUS NetprNameCompare( /* Function 0x23 */
614 /* --- LATER ADDITIONS --- */
616 STATUS NetrShareEnumSticky( /* Function 0x24 */
617 [in,unique] LPWSTR pszServer,
618 [in,out] SHARE_ENUM* pShareEnum,
620 [out] DWORD* dwEntries,
621 [in,out] DWORD* hResume
624 STATUS NetrShareDelStart( /* Function 0x25 */
625 [in,unique] LPWSTR pszServer,
626 [in,ref] LPWSTR pszShare,
627 [in] DWORD dwReserved /* ? */
630 STATUS NetrShareDelCommit( /* Function 0x26 */
631 [in,unique] LPWSTR pszServer
634 STATUS NetrpGetFileSecurity( /* Function 0x27 */
638 STATUS NetrpSetFileSecurity( /* Function 0x28 */
642 STATUS NetrServerTransportAddEx( /* Function 0x29 */
643 [in,unique] LPWSTR pszServer,
645 [out] TRANSPORT_INFO* pTransportInfo
648 STATUS NetrServerSetServiceBitsEx( /* Function 0x30 */
649 [in,unique] LPWSTR pszServer,
650 [in] DWORD hServiceStatus, /* ?? */
651 [in] DWORD dwServiceBits,
652 [in] BOOL bSetBitsOn,
653 [in] BOOL bUpdateImmediately