1#include "idl_types.h" 2 3/*import "security.idl", "svcctl.idl";*/ 4 5/* 6 srvsvc interface definitions 7*/ 8 9[ uuid("4b324fc8-1670-01d3-1278-5a47bf6ee188"), 10 version(3.0), 11 endpoint("ncacn_np:[\\pipe\\srvsvc]", "ncacn_ip_tcp:", "ncalrpc:"), 12 pointer_default(unique), 13 pointer_default_top(unique), 14 helpstring("Server Service") 15] interface srvsvc 16{ 17 typedef bitmap svcctl_ServerType svcctl_ServerType; 18 typedef bitmap security_secinfo security_secinfo; 19 20/**************************/ 21/* srvsvc_NetCharDev */ 22/**************************/ 23 typedef struct { 24 [string,charset(UTF16)] uint16 *device; 25 } srvsvc_NetCharDevInfo0; 26 27 typedef struct { 28 uint32 count; 29 [size_is(count)] srvsvc_NetCharDevInfo0 *array; 30 } srvsvc_NetCharDevCtr0; 31 32 typedef struct { 33 [string,charset(UTF16)] uint16 *device; 34 uint32 status; 35 [string,charset(UTF16)] uint16 *user; 36 uint32 time; 37 } srvsvc_NetCharDevInfo1; 38 39 typedef struct { 40 uint32 count; 41 [size_is(count)] srvsvc_NetCharDevInfo1 *array; 42 } srvsvc_NetCharDevCtr1; 43 44 typedef union { 45 [case(0)] srvsvc_NetCharDevInfo0 *info0; 46 [case(1)] srvsvc_NetCharDevInfo1 *info1; 47 [default] ; 48 } srvsvc_NetCharDevInfo; 49 50 typedef union { 51 [case(0)] srvsvc_NetCharDevCtr0 *ctr0; 52 [case(1)] srvsvc_NetCharDevCtr1 *ctr1; 53 [default] ; 54 } srvsvc_NetCharDevCtr; 55 56 /******************/ 57 /* Function: 0x00 */ 58 WERROR srvsvc_NetCharDevEnum( 59 [in] [string,charset(UTF16)] uint16 *server_unc, 60 [in,out,ref] uint32 *level, 61 [in,out,switch_is(level),ref] srvsvc_NetCharDevCtr *ctr, 62 [in] uint32 max_buffer, 63 [out,ref] uint32 *totalentries, 64 [in,out] uint32 *resume_handle 65 ); 66 67 /******************/ 68 /* Function: 0x01 */ 69 WERROR srvsvc_NetCharDevGetInfo( 70 [in] [string,charset(UTF16)] uint16 *server_unc, 71 [in] [string,charset(UTF16)] uint16 device_name[], 72 [in] uint32 level, 73 [out,switch_is(level),ref] srvsvc_NetCharDevInfo *info 74 ); 75 76 /******************/ 77 /* Function: 0x02 */ 78 WERROR srvsvc_NetCharDevControl( 79 [in] [string,charset(UTF16)] uint16 *server_unc, 80 [in] [string,charset(UTF16)] uint16 device_name[], 81 [in] uint32 opcode 82 ); 83 84/**************************/ 85/* srvsvc_NetCharDevQ */ 86/**************************/ 87 typedef struct { 88 [string,charset(UTF16)] uint16 *device; 89 } srvsvc_NetCharDevQInfo0; 90 91 typedef struct { 92 uint32 count; 93 [size_is(count)] srvsvc_NetCharDevQInfo0 *array; 94 } srvsvc_NetCharDevQCtr0; 95 96 typedef struct { 97 [string,charset(UTF16)] uint16 *device; 98 uint32 priority; 99 [string,charset(UTF16)] uint16 *devices; 100 uint32 users; 101 uint32 num_ahead; 102 } srvsvc_NetCharDevQInfo1; 103 104 typedef struct { 105 uint32 count; 106 [size_is(count)] srvsvc_NetCharDevQInfo1 *array; 107 } srvsvc_NetCharDevQCtr1; 108 109 typedef union { 110 [case(0)] srvsvc_NetCharDevQInfo0 *info0; 111 [case(1)] srvsvc_NetCharDevQInfo1 *info1; 112 [default] ; 113 } srvsvc_NetCharDevQInfo; 114 115 typedef union { 116 [case(0)] srvsvc_NetCharDevQCtr0 *ctr0; 117 [case(1)] srvsvc_NetCharDevQCtr1 *ctr1; 118 [default] ; 119 } srvsvc_NetCharDevQCtr; 120 121 /******************/ 122 /* Function: 0x03 */ 123 WERROR srvsvc_NetCharDevQEnum( 124 [in] [string,charset(UTF16)] uint16 *server_unc, 125 [in] [string,charset(UTF16)] uint16 *user, 126 [in,out,ref] uint32 *level, 127 [in,out,switch_is(level),ref] srvsvc_NetCharDevQCtr *ctr, 128 [in] uint32 max_buffer, 129 [out,ref] uint32 *totalentries, 130 [in,out] uint32 *resume_handle 131 ); 132 133 /******************/ 134 /* Function: 0x04 */ 135 WERROR srvsvc_NetCharDevQGetInfo( 136 [in] [string,charset(UTF16)] uint16 *server_unc, 137 [in] [string,charset(UTF16)] uint16 queue_name[], 138 [in] [string,charset(UTF16)] uint16 user[], 139 [in] uint32 level, 140 [out,switch_is(level),ref] srvsvc_NetCharDevQInfo *info 141 ); 142 143 /******************/ 144 /* Function: 0x05 */ 145 WERROR srvsvc_NetCharDevQSetInfo( 146 [in] [string,charset(UTF16)] uint16 *server_unc, 147 [in] [string,charset(UTF16)] uint16 queue_name[], 148 [in] uint32 level, 149 [in,switch_is(level)] srvsvc_NetCharDevQInfo info, 150 [in,out] uint32 *parm_error 151 ); 152 153 /******************/ 154 /* Function: 0x06 */ 155 WERROR srvsvc_NetCharDevQPurge( 156 [in] [string,charset(UTF16)] uint16 *server_unc, 157 [in] [string,charset(UTF16)] uint16 queue_name[] 158 ); 159 160 /******************/ 161 /* Function: 0x07 */ 162 WERROR srvsvc_NetCharDevQPurgeSelf( 163 [in] [string,charset(UTF16)] uint16 *server_unc, 164 [in] [string,charset(UTF16)] uint16 queue_name[], 165 [in] [string,charset(UTF16)] uint16 computer_name[] 166 ); 167 168/**************************/ 169/* srvsvc_NetConn */ 170/**************************/ 171 typedef struct { 172 uint32 conn_id; 173 } srvsvc_NetConnInfo0; 174 175 typedef struct { 176 uint32 count; 177 [size_is(count)] srvsvc_NetConnInfo0 *array; 178 } srvsvc_NetConnCtr0; 179 180 typedef struct { 181 uint32 conn_id; 182 uint32 conn_type; 183 uint32 num_open; 184 uint32 num_users; 185 uint32 conn_time; 186 [string,charset(UTF16)] uint16 *user; 187 [string,charset(UTF16)] uint16 *share; 188 } srvsvc_NetConnInfo1; 189 190 typedef struct { 191 uint32 count; 192 [size_is(count)] srvsvc_NetConnInfo1 *array; 193 } srvsvc_NetConnCtr1; 194 195 typedef union { 196 [case(0)] srvsvc_NetConnCtr0 *ctr0; 197 [case(1)] srvsvc_NetConnCtr1 *ctr1; 198 [default] ; 199 } srvsvc_NetConnCtr; 200 201 /******************/ 202 /* Function: 0x08 */ 203 WERROR srvsvc_NetConnEnum( 204 [in] [string,charset(UTF16)] uint16 *server_unc, 205 [in] [string,charset(UTF16)] uint16 *path, 206 [in,out,ref] uint32 *level, 207 [in,out,switch_is(level),ref] srvsvc_NetConnCtr *ctr, 208 [in] uint32 max_buffer, 209 [out,ref] uint32 *totalentries, 210 [in,out] uint32 *resume_handle 211 ); 212 213/**************************/ 214/* srvsvc_NetFile */ 215/**************************/ 216 typedef struct { 217 uint32 fid; 218 } srvsvc_NetFileInfo2; 219 220 typedef struct { 221 uint32 count; 222 [size_is(count)] srvsvc_NetFileInfo2 *array; 223 } srvsvc_NetFileCtr2; 224 225 typedef struct { 226 uint32 fid; 227 uint32 permissions; 228 uint32 num_locks; 229 [string,charset(UTF16)] uint16 *path; 230 [string,charset(UTF16)] uint16 *user; 231 } srvsvc_NetFileInfo3; 232 233 typedef struct { 234 uint32 count; 235 [size_is(count)] srvsvc_NetFileInfo3 *array; 236 } srvsvc_NetFileCtr3; 237 238 typedef union { 239 [case(2)] srvsvc_NetFileInfo2 *info2; 240 [case(3)] srvsvc_NetFileInfo3 *info3; 241 [default] ; 242 } srvsvc_NetFileInfo; 243 244 typedef union { 245 [case(2)] srvsvc_NetFileCtr2 *ctr2; 246 [case(3)] srvsvc_NetFileCtr3 *ctr3; 247 [default] ; 248 } srvsvc_NetFileCtr; 249 250 /******************/ 251 /* Function: 0x09 */ 252 WERROR srvsvc_NetFileEnum( 253 [in] [string,charset(UTF16)] uint16 *server_unc, 254 [in] [string,charset(UTF16)] uint16 *path, 255 [in] [string,charset(UTF16)] uint16 *user, 256 [in,out,ref] uint32 *level, 257 [in,out,switch_is(level),ref] srvsvc_NetFileCtr *ctr, 258 [in] uint32 max_buffer, 259 [out,ref] uint32 *totalentries, 260 [in,out] uint32 *resume_handle 261 ); 262 263 /******************/ 264 /* Function: 0x0a */ 265 WERROR srvsvc_NetFileGetInfo( 266 [in] [string,charset(UTF16)] uint16 *server_unc, 267 [in] uint32 fid, 268 [in] uint32 level, 269 [out,switch_is(level),ref] srvsvc_NetFileInfo *info 270 ); 271 272 /******************/ 273 /* Function: 0x0b */ 274 WERROR srvsvc_NetFileClose( 275 [in] [string,charset(UTF16)] uint16 *server_unc, 276 [in] uint32 fid 277 ); 278 279/**************************/ 280/* srvsvc_NetSess */ 281/**************************/ 282 typedef [bitmap32bit] bitmap { 283 SESS_GUEST = 0x00000001, 284 SESS_NOENCRYPTION = 0x00000002 285 } srvsvc_SessionUserFlags; 286 287 typedef struct { 288 [string,charset(UTF16)] uint16 *client; 289 } srvsvc_NetSessInfo0; 290 291 typedef struct { 292 uint32 count; 293 [size_is(count)] srvsvc_NetSessInfo0 *array; 294 } srvsvc_NetSessCtr0; 295 296 typedef struct { 297 [string,charset(UTF16)] uint16 *client; 298 [string,charset(UTF16)] uint16 *user; 299 uint32 num_open; 300 uint32 time; 301 uint32 idle_time; 302 srvsvc_SessionUserFlags user_flags; 303 } srvsvc_NetSessInfo1; 304 305 typedef struct { 306 uint32 count; 307 [size_is(count)] srvsvc_NetSessInfo1 *array; 308 } srvsvc_NetSessCtr1; 309 310 typedef struct { 311 [string,charset(UTF16)] uint16 *client; 312 [string,charset(UTF16)] uint16 *user; 313 uint32 num_open; 314 uint32 time; 315 uint32 idle_time; 316 srvsvc_SessionUserFlags user_flags; 317 [string,charset(UTF16)] uint16 *client_type; 318 } srvsvc_NetSessInfo2; 319 320 typedef struct { 321 uint32 count; 322 [size_is(count)] srvsvc_NetSessInfo2 *array; 323 } srvsvc_NetSessCtr2; 324 325 typedef struct { 326 [string,charset(UTF16)] uint16 *client; 327 [string,charset(UTF16)] uint16 *user; 328 uint32 time; 329 uint32 idle_time; 330 } srvsvc_NetSessInfo10; 331 332 typedef struct { 333 uint32 count; 334 [size_is(count)] srvsvc_NetSessInfo10 *array; 335 } srvsvc_NetSessCtr10; 336 337 typedef struct { 338 [string,charset(UTF16)] uint16 *client; 339 [string,charset(UTF16)] uint16 *user; 340 uint32 num_open; 341 uint32 time; 342 uint32 idle_time; 343 srvsvc_SessionUserFlags user_flags; 344 [string,charset(UTF16)] uint16 *client_type; 345 [string,charset(UTF16)] uint16 *transport; 346 } srvsvc_NetSessInfo502; 347 348 typedef struct { 349 uint32 count; 350 [size_is(count)] srvsvc_NetSessInfo502 *array; 351 } srvsvc_NetSessCtr502; 352 353 typedef union { 354 [case(0)] srvsvc_NetSessCtr0 *ctr0; 355 [case(1)] srvsvc_NetSessCtr1 *ctr1; 356 [case(2)] srvsvc_NetSessCtr2 *ctr2; 357 [case(10)] srvsvc_NetSessCtr10 *ctr10; 358 [case(502)] srvsvc_NetSessCtr502 *ctr502; 359 [default] ; 360 } srvsvc_NetSessCtr; 361 362 /******************/ 363 /* Function: 0x0c */ 364 WERROR srvsvc_NetSessEnum( 365 [in] [string,charset(UTF16)] uint16 *server_unc, 366 [in] [string,charset(UTF16)] uint16 *client, 367 [in] [string,charset(UTF16)] uint16 *user, 368 [in,out,ref] uint32 *level, 369 [in,out,switch_is(level),ref] srvsvc_NetSessCtr *ctr, 370 [in] uint32 max_buffer, 371 [out,ref] uint32 *totalentries, 372 [in,out] uint32 *resume_handle 373 ); 374 375 /******************/ 376 /* Function: 0x0d */ 377 WERROR srvsvc_NetSessDel( 378 [in] [string,charset(UTF16)] uint16 *server_unc, 379 [in] [string,charset(UTF16)] uint16 *client, 380 [in] [string,charset(UTF16)] uint16 *user 381 ); 382 383/**************************/ 384/* srvsvc_NetShare */ 385/**************************/ 386 387 /* share types */ 388 const uint32 STYPE_TEMPORARY = 0x40000000; /* share is a temporary one */ 389 const uint32 STYPE_HIDDEN = 0x80000000; /* share is a hidden one */ 390 391 typedef [v1_enum, flag(NDR_PAHEX)] enum { 392 STYPE_DISKTREE = 0, 393 STYPE_DISKTREE_TEMPORARY = STYPE_DISKTREE|STYPE_TEMPORARY, 394 STYPE_DISKTREE_HIDDEN = STYPE_DISKTREE|STYPE_HIDDEN, 395 STYPE_PRINTQ = 1, 396 STYPE_PRINTQ_TEMPORARY = STYPE_PRINTQ|STYPE_TEMPORARY, 397 STYPE_PRINTQ_HIDDEN = STYPE_PRINTQ|STYPE_HIDDEN, 398 STYPE_DEVICE = 2, /* Serial device */ 399 STYPE_DEVICE_TEMPORARY = STYPE_DEVICE|STYPE_TEMPORARY, 400 STYPE_DEVICE_HIDDEN = STYPE_DEVICE|STYPE_HIDDEN, 401 STYPE_IPC = 3, /* Interprocess communication (IPC) */ 402 STYPE_IPC_TEMPORARY = STYPE_IPC|STYPE_TEMPORARY, 403 STYPE_IPC_HIDDEN = STYPE_IPC|STYPE_HIDDEN 404 } srvsvc_ShareType; 405 406 typedef struct { 407 [string,charset(UTF16)] uint16 *name; 408 } srvsvc_NetShareInfo0; 409 410 typedef struct { 411 [string,charset(UTF16)] uint16 *name; 412 srvsvc_ShareType type; 413 [string,charset(UTF16)] uint16 *comment; 414 } srvsvc_NetShareInfo1; 415 416 typedef struct { 417 [string,charset(UTF16)] uint16 *name; 418 srvsvc_ShareType type; 419 [string,charset(UTF16)] uint16 *comment; 420 uint32 permissions; 421 uint32 max_users; 422 uint32 current_users; 423 [string,charset(UTF16)] uint16 *path; 424 [string,charset(UTF16)] uint16 *password; 425 } srvsvc_NetShareInfo2; 426 427 typedef struct { 428 [string,charset(UTF16)] uint16 *name; 429 srvsvc_ShareType type; 430 [string,charset(UTF16)] uint16 *comment; 431 uint32 csc_policy; 432 } srvsvc_NetShareInfo501; 433 434 typedef struct { 435 [string,charset(UTF16)] uint16 *name; 436 srvsvc_ShareType type; 437 [string,charset(UTF16)] uint16 *comment; 438 uint32 permissions; 439 int32 max_users; 440 uint32 current_users; 441 [string,charset(UTF16)] uint16 *path; 442 [string,charset(UTF16)] uint16 *password; 443 /* maybe here is a struct sec_desc_buf following */ 444 uint32 unknown; 445 [subcontext(4)] security_descriptor *sd; 446 } srvsvc_NetShareInfo502; 447 448 typedef struct { 449 [string,charset(UTF16)] uint16 *comment; 450 } srvsvc_NetShareInfo1004; 451 452 typedef struct { 453 int32 max_users; 454 } srvsvc_NetShareInfo1006; 455 456 typedef [bitmap32bit] bitmap { 457 SHARE_1005_FLAGS_IN_DFS = 0x00000001, 458 SHARE_1005_FLAGS_DFS_ROOT = 0x00000002, 459 CSC_CACHE_AUTO_REINT = 0x00000010, 460 CSC_CACHE_VDO = 0x00000020, 461 FLAGS_RESTRICT_EXCLUSIVE_OPENS = 0x00000100, 462 FLAGS_FORCE_SHARED_DELETE = 0x00000200, 463 FLAGS_ALLOW_NAMESPACE_CACHING = 0x00000400, 464 FLAGS_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800 465 } srvsvc_DFSFlags; 466 467 const uint32 SHARE_1005_CSC_POLICY_MASK = 0x00000030; 468 const uint32 SHARE_1005_CSC_POLICY_SHIFT = 4; 469 470 typedef struct { 471 uint32 count; 472 [size_is(count)] srvsvc_NetShareInfo0 *array; 473 } srvsvc_NetShareCtr0; 474 475 typedef struct { 476 uint32 count; 477 [size_is(count)] srvsvc_NetShareInfo1 *array; 478 } srvsvc_NetShareCtr1; 479 480 typedef struct { 481 uint32 count; 482 [size_is(count)] srvsvc_NetShareInfo2 *array; 483 } srvsvc_NetShareCtr2; 484 485 typedef struct { 486 uint32 count; 487 [size_is(count)] srvsvc_NetShareInfo501 *array; 488 } srvsvc_NetShareCtr501; 489 490 typedef struct { 491 uint32 count; 492 [size_is(count)] srvsvc_NetShareInfo502 *array; 493 } srvsvc_NetShareCtr502; 494 495 typedef struct { 496 uint32 count; 497 [size_is(count)] srvsvc_NetShareInfo1004 *array; 498 } srvsvc_NetShareCtr1004; 499 500 typedef struct { 501 srvsvc_DFSFlags dfs_flags; 502 } srvsvc_NetShareInfo1005; 503 504 typedef struct { 505 uint32 count; 506 [size_is(count)] srvsvc_NetShareInfo1005 *array; 507 } srvsvc_NetShareCtr1005; 508 509 typedef struct { 510 uint32 count; 511 [size_is(count)] srvsvc_NetShareInfo1006 *array; 512 } srvsvc_NetShareCtr1006; 513 514 typedef struct { 515 uint32 flags; 516 [string,charset(UTF16)] uint16 *alternate_directory_name; 517 } srvsvc_NetShareInfo1007; 518 519 typedef struct { 520 uint32 count; 521 [size_is(count)] srvsvc_NetShareInfo1007 *array; 522 } srvsvc_NetShareCtr1007; 523 524 typedef struct { 525 uint32 count; 526 [size_is(count)] sec_desc_buf *array; 527 } srvsvc_NetShareCtr1501; 528 529 typedef union { 530 [case(0)] srvsvc_NetShareInfo0 *info0; 531 [case(1)] srvsvc_NetShareInfo1 *info1; 532 [case(2)] srvsvc_NetShareInfo2 *info2; 533 [case(501)] srvsvc_NetShareInfo501 *info501; 534 [case(502)] srvsvc_NetShareInfo502 *info502; 535 [case(1004)] srvsvc_NetShareInfo1004 *info1004; 536 [case(1005)] srvsvc_NetShareInfo1005 *info1005; 537 [case(1006)] srvsvc_NetShareInfo1006 *info1006; 538 [case(1007)] srvsvc_NetShareInfo1007 *info1007; 539 [case(1501)] sec_desc_buf *info1501; 540 [default] ; 541 } srvsvc_NetShareInfo; 542 543 typedef union { 544 [case(0)] srvsvc_NetShareCtr0 *ctr0; 545 [case(1)] srvsvc_NetShareCtr1 *ctr1; 546 [case(2)] srvsvc_NetShareCtr2 *ctr2; 547 [case(501)] srvsvc_NetShareCtr501 *ctr501; 548 [case(502)] srvsvc_NetShareCtr502 *ctr502; 549 [case(1004)] srvsvc_NetShareCtr1004 *ctr1004; 550 [case(1005)] srvsvc_NetShareCtr1005 *ctr1005; 551 [case(1006)] srvsvc_NetShareCtr1006 *ctr1006; 552 [case(1007)] srvsvc_NetShareCtr1007 *ctr1007; 553 [case(1501)] srvsvc_NetShareCtr1501 *ctr1501; 554 [default] ; 555 } srvsvc_NetShareCtr; 556 557 /******************/ 558 /* Function: 0x0e */ 559 WERROR srvsvc_NetShareAdd( 560 [in] [string,charset(UTF16)] uint16 *server_unc, 561 [in] uint32 level, 562 [in,switch_is(level)] srvsvc_NetShareInfo info, 563 [in,out] uint32 *parm_error 564 ); 565 566 /******************/ 567 /* Function: 0x0f */ 568 WERROR srvsvc_NetShareEnumAll ( 569 [in] [string,charset(UTF16)] uint16 *server_unc, 570 [in,out,ref] uint32 *level, 571 [in,out,switch_is(level),ref] srvsvc_NetShareCtr *ctr, 572 [in] uint32 max_buffer, 573 [out,ref] uint32 *totalentries, 574 [in,out] uint32 *resume_handle 575 ); 576 577 /******************/ 578 /* Function: 0x10 */ 579 WERROR srvsvc_NetShareGetInfo( 580 [in] [string,charset(UTF16)] uint16 *server_unc, 581 [in] [string,charset(UTF16)] uint16 share_name[], 582 [in] uint32 level, 583 [out,switch_is(level),ref] srvsvc_NetShareInfo *info 584 ); 585 586 /******************/ 587 /* Function: 0x11 */ 588 WERROR srvsvc_NetShareSetInfo( 589 [in] [string,charset(UTF16)] uint16 *server_unc, 590 [in] [string,charset(UTF16)] uint16 share_name[], 591 [in] uint32 level, 592 [in,switch_is(level)] srvsvc_NetShareInfo info, 593 [in,out] uint32 *parm_error 594 ); 595 596 /******************/ 597 /* Function: 0x12 */ 598 WERROR srvsvc_NetShareDel( 599 [in] [string,charset(UTF16)] uint16 *server_unc, 600 [in] [string,charset(UTF16)] uint16 share_name[], 601 [in] uint32 reserved 602 ); 603 604 /******************/ 605 /* Function: 0x13 */ 606 WERROR srvsvc_NetShareDelSticky( 607 [in] [string,charset(UTF16)] uint16 *server_unc, 608 [in] [string,charset(UTF16)] uint16 share_name[], 609 [in] uint32 reserved 610 ); 611 612 /******************/ 613 /* Function: 0x14 */ 614 WERROR srvsvc_NetShareCheck( 615 [in] [string,charset(UTF16)] uint16 *server_unc, 616 [in] [string,charset(UTF16)] uint16 device_name[], 617 [out,ref] srvsvc_ShareType *type 618 ); 619 620/**************************/ 621/* srvsvc_NetSrv */ 622/**************************/ 623 typedef [public,v1_enum] enum { 624 PLATFORM_ID_DOS = 300, 625 PLATFORM_ID_OS2 = 400, 626 PLATFORM_ID_NT = 500, 627 PLATFORM_ID_OSF = 600, 628 PLATFORM_ID_VMS = 700 629 } srvsvc_PlatformId; 630 631 typedef struct { 632 srvsvc_PlatformId platform_id; 633 [string,charset(UTF16)] uint16 *server_name; 634 } srvsvc_NetSrvInfo100; 635 636 typedef struct { 637 srvsvc_PlatformId platform_id; 638 [string,charset(UTF16)] uint16 *server_name; 639 uint32 version_major; 640 uint32 version_minor; 641 svcctl_ServerType server_type; 642 [string,charset(UTF16)] uint16 *comment; 643 } srvsvc_NetSrvInfo101; 644 645 typedef struct { 646 srvsvc_PlatformId platform_id; 647 [string,charset(UTF16)] uint16 *server_name; 648 uint32 version_major; 649 uint32 version_minor; 650 svcctl_ServerType server_type; 651 [string,charset(UTF16)] uint16 *comment; 652 uint32 users; 653 uint32 disc; 654 uint32 hidden; 655 uint32 announce; 656 uint32 anndelta; 657 uint32 licenses; 658 [string,charset(UTF16)] uint16 *userpath; 659 } srvsvc_NetSrvInfo102; 660 661 typedef struct { 662 uint32 ulist_mtime; 663 uint32 glist_mtime; 664 uint32 alist_mtime; 665 [string,charset(UTF16)] uint16 *alerts; 666 uint32 security; 667 uint32 numadmin; 668 uint32 lanmask; 669 [string,charset(UTF16)] uint16 *guestaccount; 670 uint32 chdevs; 671 uint32 chdevqs; 672 uint32 chdevjobs; 673 uint32 connections; 674 uint32 shares; 675 uint32 openfiles; 676 uint32 sessopen; 677 uint32 sesssvc; 678 uint32 sessreqs; 679 uint32 opensearch; 680 uint32 activelocks; 681 uint32 sizereqbufs; 682 uint32 numbigbufs; 683 uint32 numfiletasks; 684 uint32 alertsched; 685 uint32 erroralert; 686 uint32 logonalert; 687 uint32 accessalert; 688 uint32 diskalert; 689 uint32 netioalert; 690 uint32 maxaudits; 691 [string,charset(UTF16)] uint16 *srvheuristics; 692 } srvsvc_NetSrvInfo402; 693 694 typedef struct { 695 uint32 ulist_mtime; 696 uint32 glist_mtime; 697 uint32 alist_mtime; 698 [string,charset(UTF16)] uint16 *alerts; 699 uint32 security; 700 uint32 numadmin; 701 uint32 lanmask; 702 [string,charset(UTF16)] uint16 *guestaccount; 703 uint32 chdevs; 704 uint32 chdevqs; 705 uint32 chdevjobs; 706 uint32 connections; 707 uint32 shares; 708 uint32 openfiles; 709 uint32 sessopen; 710 uint32 sesssvc; 711 uint32 sessreqs; 712 uint32 opensearch; 713 uint32 activelocks; 714 uint32 sizereqbufs; 715 uint32 numbigbufs; 716 uint32 numfiletasks; 717 uint32 alertsched; 718 uint32 eroralert; 719 uint32 logonalert; 720 uint32 accessalert; 721 uint32 diskalert; 722 uint32 netioalert; 723 uint32 maxaudits; 724 [string,charset(UTF16)] uint16 *srvheuristics; 725 uint32 auditedevents; 726 uint32 auditprofile; 727 [string,charset(UTF16)] uint16 *autopath; 728 } srvsvc_NetSrvInfo403; 729 730 typedef struct { 731 uint32 sessopen; 732 uint32 sesssvc; 733 uint32 opensearch; 734 uint32 sizereqbufs; 735 uint32 initworkitems; 736 uint32 maxworkitems; 737 uint32 rawworkitems; 738 uint32 irpstacksize; 739 uint32 maxrawbuflen; 740 uint32 sessusers; 741 uint32 sessconns; 742 uint32 maxpagedmemoryusage; 743 uint32 maxnonpagedmemoryusage; 744 uint32 enablesoftcompat; 745 uint32 enableforcedlogoff; 746 uint32 timesource; 747 uint32 acceptdownlevelapis; 748 uint32 lmannounce; 749 } srvsvc_NetSrvInfo502; 750 751 typedef struct{ 752 uint32 sessopen; 753 uint32 sesssvc; 754 uint32 opensearch; 755 uint32 sizereqbufs; 756 uint32 initworkitems; 757 uint32 maxworkitems; 758 uint32 rawworkitems; 759 uint32 irpstacksize; 760 uint32 maxrawbuflen; 761 uint32 sessusers; 762 uint32 sessconns; 763 uint32 maxpagedmemoryusage; 764 uint32 maxnonpagedmemoryusage; 765 uint32 enablesoftcompat; 766 uint32 enableforcedlogoff; 767 uint32 timesource; 768 uint32 acceptdownlevelapis; 769 uint32 lmannounce; 770 [string,charset(UTF16)] uint16 *domain; 771 uint32 maxcopyreadlen; 772 uint32 maxcopywritelen; 773 uint32 minkeepsearch; 774 uint32 maxkeepsearch; 775 uint32 minkeepcomplsearch; 776 uint32 maxkeepcomplsearch; 777 uint32 threadcountadd; 778 uint32 numlockthreads; 779 uint32 scavtimeout; 780 uint32 minrcvqueue; 781 uint32 minfreeworkitems; 782 uint32 xactmemsize; 783 uint32 threadpriority; 784 uint32 maxmpxct; 785 uint32 oplockbreakwait; 786 uint32 oplockbreakresponsewait; 787 uint32 enableoplocks; 788 uint32 enableoplockforceclose; 789 uint32 enablefcbopens; 790 uint32 enableraw; 791 uint32 enablesharednetdrives; 792 uint32 minfreeconnections; 793 uint32 maxfreeconnections; 794 } srvsvc_NetSrvInfo503; 795 796 typedef struct{ 797 uint32 sessopen; 798 uint32 sesssvc; 799 uint32 opensearch; 800 uint32 sizereqbufs; 801 uint32 initworkitems; 802 uint32 maxworkitems; 803 uint32 rawworkitems; 804 uint32 irpstacksize; 805 uint32 maxrawbuflen; 806 uint32 sessusers; 807 uint32 sessconns; 808 uint32 maxpagedmemoryusage; 809 uint32 maxnonpagedmemoryusage; 810 uint32 enablesoftcompat; 811 uint32 enableforcedlogoff; 812 uint32 timesource; 813 uint32 acceptdownlevelapis; 814 uint32 lmannounce; 815 [string,charset(UTF16)] uint16 *domain; 816 uint32 maxcopyreadlen; 817 uint32 maxcopywritelen; 818 uint32 minkeepsearch; 819 uint32 minkeepcomplsearch; 820 uint32 maxkeepcomplsearch; 821 uint32 threadcountadd; 822 uint32 numlockthreads; 823 uint32 scavtimeout; 824 uint32 minrcvqueue; 825 uint32 minfreeworkitems; 826 uint32 xactmemsize; 827 uint32 threadpriority; 828 uint32 maxmpxct; 829 uint32 oplockbreakwait; 830 uint32 oplockbreakresponsewait; 831 uint32 enableoplocks; 832 uint32 enableoplockforceclose; 833 uint32 enablefcbopens; 834 uint32 enableraw; 835 uint32 enablesharednetdrives; 836 uint32 minfreeconnections; 837 uint32 maxfreeconnections; 838 uint32 initsesstable; 839 uint32 initconntable; 840 uint32 initfiletable; 841 uint32 initsearchtable; 842 uint32 alertsched; 843 uint32 errortreshold; 844 uint32 networkerrortreshold; 845 uint32 diskspacetreshold; 846 uint32 reserved; 847 uint32 maxlinkdelay; 848 uint32 minlinkthroughput; 849 uint32 linkinfovalidtime; 850 uint32 scavqosinfoupdatetime; 851 uint32 maxworkitemidletime; 852 } srvsvc_NetSrvInfo599; 853 854 typedef struct{ 855 [string,charset(UTF16)] uint16 *comment; 856 } srvsvc_NetSrvInfo1005; 857 858 typedef struct{ 859 uint32 disc; 860 } srvsvc_NetSrvInfo1010; 861 862 typedef struct{ 863 uint32 hidden; 864 } srvsvc_NetSrvInfo1016; 865 866 typedef struct{ 867 uint32 announce; 868 } srvsvc_NetSrvInfo1017; 869 870 typedef struct{ 871 uint32 anndelta; 872 } srvsvc_NetSrvInfo1018; 873 874 typedef struct{ 875 uint32 users; 876 } srvsvc_NetSrvInfo1107; 877 878 typedef struct{ 879 uint32 sessopens; 880 } srvsvc_NetSrvInfo1501; 881 882 typedef struct{ 883 uint32 sessvcs; 884 } srvsvc_NetSrvInfo1502; 885 886 typedef struct{ 887 uint32 opensearch; 888 } srvsvc_NetSrvInfo1503; 889 890 typedef struct{ 891 uint32 maxworkitems; 892 } srvsvc_NetSrvInfo1506; 893 894 typedef struct{ 895 uint32 maxrawbuflen; 896 } srvsvc_NetSrvInfo1509; 897 898 typedef struct{ 899 uint32 sessusers; 900 } srvsvc_NetSrvInfo1510; 901 902 typedef struct{ 903 uint32 sesscons; 904 } srvsvc_NetSrvInfo1511; 905 906 typedef struct{ 907 uint32 maxnonpagedmemoryusage; 908 } srvsvc_NetSrvInfo1512; 909 910 typedef struct{ 911 uint32 maxpagedmemoryusage; 912 } srvsvc_NetSrvInfo1513; 913 914 typedef struct{ 915 uint32 enablesoftcompat; 916 } srvsvc_NetSrvInfo1514; 917 918 typedef struct{ 919 uint32 enableforcedlogoff; 920 } srvsvc_NetSrvInfo1515; 921 922 typedef struct{ 923 uint32 timesource; 924 } srvsvc_NetSrvInfo1516; 925 926 typedef struct{ 927 uint32 lmannounce; 928 } srvsvc_NetSrvInfo1518; 929 930 typedef struct{ 931 uint32 maxcopyreadlen; 932 } srvsvc_NetSrvInfo1520; 933 934 typedef struct{ 935 uint32 maxcopywritelen; 936 } srvsvc_NetSrvInfo1521; 937 938 typedef struct{ 939 uint32 minkeepsearch; 940 } srvsvc_NetSrvInfo1522; 941 942 typedef struct{ 943 uint32 maxkeepsearch; 944 } srvsvc_NetSrvInfo1523; 945 946 typedef struct{ 947 uint32 minkeepcomplsearch; 948 } srvsvc_NetSrvInfo1524; 949 950 typedef struct{ 951 uint32 maxkeepcomplsearch; 952 } srvsvc_NetSrvInfo1525; 953 954 typedef struct{ 955 uint32 scavtimeout; 956 } srvsvc_NetSrvInfo1528; 957 958 typedef struct{ 959 uint32 minrcvqueue; 960 } srvsvc_NetSrvInfo1529; 961 962 typedef struct{ 963 uint32 minfreeworkitems; 964 } srvsvc_NetSrvInfo1530; 965 966 typedef struct{ 967 uint32 maxmpxct; 968 } srvsvc_NetSrvInfo1533; 969 970 typedef struct{ 971 uint32 oplockbreakwait; 972 } srvsvc_NetSrvInfo1534; 973 974 typedef struct{ 975 uint32 oplockbreakresponsewait; 976 } srvsvc_NetSrvInfo1535; 977 978 typedef struct{ 979 uint32 enableoplocks; 980 } srvsvc_NetSrvInfo1536; 981 982 typedef struct{ 983 uint32 enableoplockforceclose; 984 } srvsvc_NetSrvInfo1537; 985 986 typedef struct{ 987 uint32 enablefcbopens; 988 } srvsvc_NetSrvInfo1538; 989 990 typedef struct{ 991 uint32 enableraw; 992 } srvsvc_NetSrvInfo1539; 993 994 typedef struct{ 995 uint32 enablesharednetdrives; 996 } srvsvc_NetSrvInfo1540; 997 998 typedef struct{ 999 uint32 minfreeconnections; 1000 } srvsvc_NetSrvInfo1541; 1001 1002 typedef struct{ 1003 uint32 maxfreeconnections; 1004 } srvsvc_NetSrvInfo1542; 1005 1006 typedef struct{ 1007 uint32 initsesstable; 1008 } srvsvc_NetSrvInfo1543; 1009 1010 typedef struct{ 1011 uint32 initconntable; 1012 } srvsvc_NetSrvInfo1544; 1013 1014 typedef struct{ 1015 uint32 initfiletable; 1016 } srvsvc_NetSrvInfo1545; 1017 1018 typedef struct{ 1019 uint32 initsearchtable; 1020 } srvsvc_NetSrvInfo1546; 1021 1022 typedef struct{ 1023 uint32 alertsched; 1024 } srvsvc_NetSrvInfo1547; 1025 1026 typedef struct{ 1027 uint32 errortreshold; 1028 } srvsvc_NetSrvInfo1548; 1029 1030 typedef struct{ 1031 uint32 networkerrortreshold; 1032 } srvsvc_NetSrvInfo1549; 1033 1034 typedef struct{ 1035 uint32 diskspacetreshold; 1036 } srvsvc_NetSrvInfo1550; 1037 1038 typedef struct{ 1039 uint32 maxlinkdelay; 1040 } srvsvc_NetSrvInfo1552; 1041 1042 typedef struct{ 1043 uint32 minlinkthroughput; 1044 } srvsvc_NetSrvInfo1553; 1045 1046 typedef struct{ 1047 uint32 linkinfovalidtime; 1048 } srvsvc_NetSrvInfo1554; 1049 1050 typedef struct{ 1051 uint32 scavqosinfoupdatetime; 1052 } srvsvc_NetSrvInfo1555; 1053 1054 typedef struct{ 1055 uint32 maxworkitemidletime; 1056 } srvsvc_NetSrvInfo1556; 1057 1058 1059 typedef union{ 1060 [case(100)] srvsvc_NetSrvInfo100 *info100; 1061 [case(101)] srvsvc_NetSrvInfo101 *info101; 1062 [case(102)] srvsvc_NetSrvInfo102 *info102; 1063 [case(402)] srvsvc_NetSrvInfo402 *info402; 1064 [case(403)] srvsvc_NetSrvInfo403 *info403; 1065 [case(502)] srvsvc_NetSrvInfo502 *info502; 1066 [case(503)] srvsvc_NetSrvInfo503 *info503; 1067 [case(599)] srvsvc_NetSrvInfo599 *info599; 1068 [case(1005)] srvsvc_NetSrvInfo1005 *info1005; 1069 [case(1010)] srvsvc_NetSrvInfo1010 *info1010; 1070 [case(1016)] srvsvc_NetSrvInfo1016 *info1016; 1071 [case(1017)] srvsvc_NetSrvInfo1017 *info1017; 1072 [case(1018)] srvsvc_NetSrvInfo1018 *info1018; 1073 [case(1107)] srvsvc_NetSrvInfo1107 *info1107; 1074 [case(1501)] srvsvc_NetSrvInfo1501 *info1501; 1075 [case(1502)] srvsvc_NetSrvInfo1502 *info1502; 1076 [case(1503)] srvsvc_NetSrvInfo1503 *info1503; 1077 [case(1506)] srvsvc_NetSrvInfo1506 *info1506; 1078 [case(1509)] srvsvc_NetSrvInfo1509 *info1509; 1079 [case(1510)] srvsvc_NetSrvInfo1510 *info1510; 1080 [case(1511)] srvsvc_NetSrvInfo1511 *info1511; 1081 [case(1512)] srvsvc_NetSrvInfo1512 *info1512; 1082 [case(1513)] srvsvc_NetSrvInfo1513 *info1513; 1083 [case(1514)] srvsvc_NetSrvInfo1514 *info1514; 1084 [case(1515)] srvsvc_NetSrvInfo1515 *info1515; 1085 [case(1516)] srvsvc_NetSrvInfo1516 *info1516; 1086 [case(1518)] srvsvc_NetSrvInfo1518 *info1518; 1087 [case(1520)] srvsvc_NetSrvInfo1520 *info1520; 1088 [case(1521)] srvsvc_NetSrvInfo1521 *info1521; 1089 [case(1522)] srvsvc_NetSrvInfo1522 *info1522; 1090 [case(1523)] srvsvc_NetSrvInfo1523 *info1523; 1091 [case(1524)] srvsvc_NetSrvInfo1524 *info1524; 1092 [case(1525)] srvsvc_NetSrvInfo1525 *info1525; 1093 [case(1528)] srvsvc_NetSrvInfo1528 *info1528; 1094 [case(1529)] srvsvc_NetSrvInfo1529 *info1529; 1095 [case(1530)] srvsvc_NetSrvInfo1530 *info1530; 1096 [case(1533)] srvsvc_NetSrvInfo1533 *info1533; 1097 [case(1534)] srvsvc_NetSrvInfo1534 *info1534; 1098 [case(1535)] srvsvc_NetSrvInfo1535 *info1535; 1099 [case(1536)] srvsvc_NetSrvInfo1536 *info1536; 1100 [case(1537)] srvsvc_NetSrvInfo1537 *info1537; 1101 [case(1538)] srvsvc_NetSrvInfo1538 *info1538; 1102 [case(1539)] srvsvc_NetSrvInfo1539 *info1539; 1103 [case(1540)] srvsvc_NetSrvInfo1540 *info1540; 1104 [case(1541)] srvsvc_NetSrvInfo1541 *info1541; 1105 [case(1542)] srvsvc_NetSrvInfo1542 *info1542; 1106 [case(1543)] srvsvc_NetSrvInfo1543 *info1543; 1107 [case(1544)] srvsvc_NetSrvInfo1544 *info1544; 1108 [case(1545)] srvsvc_NetSrvInfo1545 *info1545; 1109 [case(1546)] srvsvc_NetSrvInfo1546 *info1546; 1110 [case(1547)] srvsvc_NetSrvInfo1547 *info1547; 1111 [case(1548)] srvsvc_NetSrvInfo1548 *info1548; 1112 [case(1549)] srvsvc_NetSrvInfo1549 *info1549; 1113 [case(1550)] srvsvc_NetSrvInfo1550 *info1550; 1114 [case(1552)] srvsvc_NetSrvInfo1552 *info1552; 1115 [case(1553)] srvsvc_NetSrvInfo1553 *info1553; 1116 [case(1554)] srvsvc_NetSrvInfo1554 *info1554; 1117 [case(1555)] srvsvc_NetSrvInfo1555 *info1555; 1118 [case(1556)] srvsvc_NetSrvInfo1556 *info1556; 1119 [default]; 1120 } srvsvc_NetSrvInfo; 1121 1122 /******************/ 1123 /* Function: 0x15 */ 1124 WERROR srvsvc_NetSrvGetInfo( 1125 [in] [string,charset(UTF16)] uint16 *server_unc, 1126 [in] uint32 level, 1127 [out,switch_is(level),ref] srvsvc_NetSrvInfo *info 1128 ); 1129 1130 /******************/ 1131 /* Function: 0x16 */ 1132 WERROR srvsvc_NetSrvSetInfo( 1133 [in] [string,charset(UTF16)] uint16 *server_unc, 1134 [in] uint32 level, 1135 [in,switch_is(level)] srvsvc_NetSrvInfo info, 1136 [in,out] uint32 *parm_error 1137 ); 1138 1139/**************************/ 1140/* srvsvc_NetDisk */ 1141/**************************/ 1142 typedef struct { 1143 [flag(STR_LEN4)] string disk; 1144 } srvsvc_NetDiskInfo0; 1145 1146 typedef struct { 1147 uint32 count; 1148 [size_is(count), length_is(count)] srvsvc_NetDiskInfo0 *disks; 1149 } srvsvc_NetDiskInfo; 1150 1151 /******************/ 1152 /* Function: 0x17 */ 1153 WERROR srvsvc_NetDiskEnum( 1154 [in] [string,charset(UTF16)] uint16 *server_unc, 1155 [in] uint32 level, 1156 [in,out,ref] srvsvc_NetDiskInfo *info, 1157 [in] uint32 maxlen, 1158 [out,ref] uint32 *totalentries, 1159 [in,out] uint32 *resume_handle 1160 ); 1161 1162/**************************/ 1163/* srvsvc_NetStatistics */ 1164/**************************/ 1165 typedef struct { 1166 uint32 start; 1167 uint32 fopens; 1168 uint32 devopens; 1169 uint32 jobsqueued; 1170 uint32 sopens; 1171 uint32 stimeouts; 1172 uint32 serrorout; 1173 uint32 pwerrors; 1174 uint32 permerrors; 1175 uint32 syserrors; 1176 uint32 bytessent_low; 1177 uint32 bytessent_high; 1178 uint32 bytesrcvd_low; 1179 uint32 bytesrcvd_high; 1180 uint32 avresponse; 1181 uint32 reqbufneed; 1182 uint32 bigbufneed; 1183 } srvsvc_Statistics; 1184 1185 /******************/ 1186 /* Function: 0x18 */ 1187 WERROR srvsvc_NetServerStatisticsGet( 1188 [in] [string,charset(UTF16)] uint16 *server_unc, 1189 [in] [string,charset(UTF16)] uint16 *service, 1190 [in] uint32 level, 1191 [in] uint32 options, 1192 [out,ref] srvsvc_Statistics *stat 1193 ); 1194 1195/**************************/ 1196/* srvsvc_NetTransport */ 1197/**************************/ 1198 typedef struct { 1199 uint32 vcs; 1200 [string,charset(UTF16)] uint16 *name; 1201 [size_is(addr_len)] uint8 *addr; 1202 uint32 addr_len; 1203 [string,charset(UTF16)] uint16 *net_addr; 1204 } srvsvc_NetTransportInfo0; 1205 1206 /******************/ 1207 /* Function: 0x19 */ 1208 WERROR srvsvc_NetTransportAdd( 1209 [in] [string,charset(UTF16)] uint16 *server_unc, 1210 [in] uint32 level, 1211 [in,switch_is(level)] srvsvc_NetTransportInfo info 1212 ); 1213 1214 typedef struct { 1215 uint32 count; 1216 [size_is(count)] srvsvc_NetTransportInfo0 *array; 1217 } srvsvc_NetTransportCtr0; 1218 1219 typedef struct { 1220 uint32 vcs; 1221 [string,charset(UTF16)] uint16 *name; 1222 [size_is(addr_len)] uint8 *addr; 1223 uint32 addr_len; 1224 [string,charset(UTF16)] uint16 *net_addr; 1225 [string,charset(UTF16)] uint16 *domain; 1226 } srvsvc_NetTransportInfo1; 1227 1228 typedef struct { 1229 uint32 count; 1230 [size_is(count)] srvsvc_NetTransportInfo1 *array; 1231 } srvsvc_NetTransportCtr1; 1232 1233 typedef [bitmap32bit] bitmap { 1234 SVTI2_REMAP_PIPE_NAMES = 0x00000001 1235 } srvsvc_TransportFlags; 1236 1237 1238 typedef struct { 1239 uint32 vcs; 1240 [string,charset(UTF16)] uint16 *name; 1241 [size_is(addr_len)] uint8 *addr; 1242 uint32 addr_len; 1243 [string,charset(UTF16)] uint16 *net_addr; 1244 [string,charset(UTF16)] uint16 *domain; 1245 srvsvc_TransportFlags transport_flags; 1246 } srvsvc_NetTransportInfo2; 1247 1248 typedef struct { 1249 uint32 count; 1250 [size_is(count)] srvsvc_NetTransportInfo2 *array; 1251 } srvsvc_NetTransportCtr2; 1252 1253 typedef struct { 1254 uint32 vcs; 1255 [string,charset(UTF16)] uint16 *name; 1256 [size_is(addr_len)] uint8 *addr; 1257 uint32 addr_len; 1258 [string,charset(UTF16)] uint16 *net_addr; 1259 [string,charset(UTF16)] uint16 *domain; 1260 srvsvc_TransportFlags transport_flags; 1261 uint32 password_len; 1262 uint8 password[256]; 1263 } srvsvc_NetTransportInfo3; 1264 1265 typedef struct { 1266 uint32 count; 1267 [size_is(count)] srvsvc_NetTransportInfo3 *array; 1268 } srvsvc_NetTransportCtr3; 1269 1270 typedef union { 1271 [case(0)] srvsvc_NetTransportCtr0 *ctr0; 1272 [case(1)] srvsvc_NetTransportCtr1 *ctr1; 1273 [case(2)] srvsvc_NetTransportCtr2 *ctr2; 1274 [case(3)] srvsvc_NetTransportCtr3 *ctr3; 1275 [default]; 1276 } srvsvc_NetTransportCtr; 1277 1278 /******************/ 1279 /* Function: 0x1a */ 1280 WERROR srvsvc_NetTransportEnum( 1281 [in] [string,charset(UTF16)] uint16 *server_unc, 1282 [in,out,ref] uint32 *level, 1283 [in,out,switch_is(level),ref] srvsvc_NetTransportCtr *transports, 1284 [in] uint32 max_buffer, 1285 [out,ref] uint32 *totalentries, 1286 [in,out] uint32 *resume_handle 1287 ); 1288 1289 /******************/ 1290 /* Function: 0x1b */ 1291 WERROR srvsvc_NetTransportDel( 1292 [in] [string,charset(UTF16)] uint16 *server_unc, 1293 [in] uint32 unknown, 1294 [in] srvsvc_NetTransportInfo0 transport 1295 ); 1296 1297/**************************/ 1298/* srvsvc_NetRemoteTOD */ 1299/**************************/ 1300 typedef struct { 1301 uint32 elapsed; /* time(NULL) */ 1302 uint32 msecs; /* milliseconds till system reboot (uptime) */ 1303 uint32 hours; 1304 uint32 mins; 1305 uint32 secs; 1306 uint32 hunds; 1307 int32 timezone; /* in minutes */ 1308 uint32 tinterval; /* clock tick interval in 0.0001 second units; 310 on windows */ 1309 uint32 day; 1310 uint32 month; 1311 uint32 year; 1312 uint32 weekday; 1313 } srvsvc_NetRemoteTODInfo; 1314 1315 /******************/ 1316 /* Function: 0x1c */ 1317 WERROR srvsvc_NetRemoteTOD( 1318 [in] [string,charset(UTF16)] uint16 *server_unc, 1319 [out,unique] srvsvc_NetRemoteTODInfo *info 1320 ); 1321 1322/**************************/ 1323/* srvsvc_NetServiceBits */ 1324/**************************/ 1325 /******************/ 1326 /* Function: 0x1d */ 1327 WERROR srvsvc_NetSetServiceBits( 1328 [in] [string,charset(UTF16)] uint16 *server_unc, 1329 [in] [string,charset(UTF16)] uint16 *transport, 1330 [in] uint32 servicebits, 1331 [in] uint32 updateimmediately 1332 ); 1333 1334/**************************/ 1335/* srvsvc_NetPath */ 1336/**************************/ 1337 /******************/ 1338 /* Function: 0x1e */ 1339 WERROR srvsvc_NetPathType( 1340 [in] [string,charset(UTF16)] uint16 *server_unc, 1341 [in] [string,charset(UTF16)] uint16 path[], 1342 [in] uint32 pathflags, 1343 [out,ref] uint32 *pathtype 1344 ); 1345 1346 /******************/ 1347 /* Function: 0x1f */ 1348 WERROR srvsvc_NetPathCanonicalize( 1349 [in] [string,charset(UTF16)] uint16 *server_unc, 1350 [in] [string,charset(UTF16)] uint16 path[], 1351 [out] [size_is(maxbuf)] uint8 can_path[], 1352 [in] uint32 maxbuf, 1353 [in] [string,charset(UTF16)] uint16 prefix[], 1354 [in,out,ref] uint32 *pathtype, 1355 [in] uint32 pathflags 1356 ); 1357 1358 /******************/ 1359 /* Function: 0x20 */ 1360 WERROR srvsvc_NetPathCompare( 1361 [in] [string,charset(UTF16)] uint16 *server_unc, 1362 [in] [string,charset(UTF16)] uint16 path1[], 1363 [in] [string,charset(UTF16)] uint16 path2[], 1364 [in] uint32 pathtype, 1365 [in] uint32 pathflags 1366 ); 1367 1368/**************************/ 1369/* srvsvc_NetName */ 1370/**************************/ 1371 /******************/ 1372 /* Function: 0x21 */ 1373 WERROR srvsvc_NetNameValidate( 1374 [in] [string,charset(UTF16)] uint16 *server_unc, 1375 [in] [string,charset(UTF16)] uint16 name[], 1376 [in] uint32 name_type, 1377 [in] uint32 flags 1378 ); 1379 1380 /******************/ 1381 /* Function: 0x22 */ 1382 WERROR srvsvc_NETRPRNAMECANONICALIZE( 1383 ); 1384 1385 /******************/ 1386 /* Function: 0x23 */ 1387 WERROR srvsvc_NetPRNameCompare( 1388 [in] [string,charset(UTF16)] uint16 *server_unc, 1389 [in] [string,charset(UTF16)] uint16 name1[], 1390 [in] [string,charset(UTF16)] uint16 name2[], 1391 [in] uint32 name_type, 1392 [in] uint32 flags 1393 ); 1394 1395/**************************/ 1396/* srvsvc_NetShare ... */ 1397/**************************/ 1398 /******************/ 1399 /* Function: 0x24 */ 1400 /* Note, there must be some way to return entries read vs 1401 total entries ... */ 1402 WERROR srvsvc_NetShareEnum( 1403 [in] [string,charset(UTF16)] uint16 *server_unc, 1404 [in,out,ref] uint32 *level, 1405 [in,out,switch_is(level),ref] srvsvc_NetShareCtr *ctr, 1406 [in] uint32 max_buffer, 1407 [out,ref] uint32 *totalentries, 1408 [in,out] uint32 *resume_handle 1409 ); 1410 1411 /******************/ 1412 /* Function: 0x25 */ 1413 WERROR srvsvc_NetShareDelStart( 1414 [in] [string,charset(UTF16)] uint16 *server_unc, 1415 [in] [string,charset(UTF16)] uint16 share[], 1416 [in] uint32 reserved, 1417 [out,unique] policy_handle *hnd 1418 ); 1419 1420 /******************/ 1421 /* Function: 0x26 */ 1422 WERROR srvsvc_NetShareDelCommit( 1423 [in, out] policy_handle *hnd 1424 ); 1425 1426 /******************/ 1427 /* Function: 0x27 */ 1428 WERROR srvsvc_NetGetFileSecurity( 1429 [in] [string,charset(UTF16)] uint16 *server_unc, 1430 [in] [string,charset(UTF16)] uint16 *share, 1431 [in] [string,charset(UTF16)] uint16 file[], 1432 [in] security_secinfo securityinformation, 1433 [out,unique] sec_desc_buf *sd_buf 1434 ); 1435 1436 /******************/ 1437 /* Function: 0x28 */ 1438 WERROR srvsvc_NetSetFileSecurity( 1439 [in] [string,charset(UTF16)] uint16 *server_unc, 1440 [in] [string,charset(UTF16)] uint16 *share, 1441 [in] [string,charset(UTF16)] uint16 file[], 1442 [in] security_secinfo securityinformation, 1443 [in] sec_desc_buf sd_buf 1444 ); 1445 1446 1447 1448 typedef [switch_type(uint32)] union { 1449 [case(0)] srvsvc_NetTransportInfo0 info0; 1450 [case(1)] srvsvc_NetTransportInfo1 info1; 1451 [case(2)] srvsvc_NetTransportInfo2 info2; 1452 [case(3)] srvsvc_NetTransportInfo3 info3; 1453 } srvsvc_NetTransportInfo; 1454 1455 /******************/ 1456 /* Function: 0x29 */ 1457 WERROR srvsvc_NetServerTransportAddEx( 1458 [in] [string,charset(UTF16)] uint16 *server_unc, 1459 [in] uint32 level, 1460 [in,switch_is(level)] srvsvc_NetTransportInfo info 1461 ); 1462 1463 /******************/ 1464 /* Function: 0x2a */ 1465 WERROR srvsvc_NetServerSetServiceBitsEx( 1466 [in] [string,charset(UTF16)] uint16 *server_unc, 1467 [in] [string,charset(UTF16)] uint16 *emulated_server_unc, 1468 [in] [string,charset(UTF16)] uint16 *transport, 1469 [in] uint32 servicebitsofinterest, 1470 [in] uint32 servicebits, 1471 [in] uint32 updateimmediately 1472 ); 1473 1474 /******************/ 1475 /* Function: 0x2b */ 1476 WERROR srvsvc_NETRDFSGETVERSION( 1477 ); 1478 1479 /******************/ 1480 /* Function: 0x2c */ 1481 WERROR srvsvc_NETRDFSCREATELOCALPARTITION( 1482 ); 1483 1484 /******************/ 1485 /* Function: 0x2d */ 1486 WERROR srvsvc_NETRDFSDELETELOCALPARTITION( 1487 ); 1488 1489 /******************/ 1490 /* Function: 0x2e */ 1491 WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE( 1492 ); 1493 1494 /******************/ 1495 /* Function: 0x2f */ 1496 WERROR srvsvc_NETRDFSSETSERVERINFO( 1497 ); 1498 1499 /******************/ 1500 /* Function: 0x30 */ 1501 WERROR srvsvc_NETRDFSCREATEEXITPOINT( 1502 ); 1503 1504 /******************/ 1505 /* Function: 0x31 */ 1506 WERROR srvsvc_NETRDFSDELETEEXITPOINT( 1507 ); 1508 1509 /******************/ 1510 /* Function: 0x32 */ 1511 WERROR srvsvc_NETRDFSMODIFYPREFIX( 1512 ); 1513 1514 /******************/ 1515 /* Function: 0x33 */ 1516 WERROR srvsvc_NETRDFSFIXLOCALVOLUME( 1517 ); 1518 1519 /******************/ 1520 /* Function: 0x34 */ 1521 WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO( 1522 ); 1523 1524 /******************/ 1525 /* Function: 0x35 */ 1526 WERROR srvsvc_NETRSERVERTRANSPORTDELEX( 1527 ); 1528} 1529