/usr/include/samba-4.0/netapi.h is in samba-dev 2:4.2.14+dfsg-0+deb8u9.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 | /*
* Unix SMB/CIFS implementation.
* NetApi Support
* Copyright (C) Guenther Deschner 2007-2009
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __LIB_NETAPI_H__
#define __LIB_NETAPI_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************
NET_API_STATUS
****************************************************************/
typedef enum {
NET_API_STATUS_SUCCESS = 0
} NET_API_STATUS;
#define ERROR_MORE_DATA ( 234L )
#define ENCRYPTED_PWLEN ( 16 )
/****************************************************************
****************************************************************/
#ifndef _HEADER_misc
struct GUID {
uint32_t time_low;
uint16_t time_mid;
uint16_t time_hi_and_version;
uint8_t clock_seq[2];
uint8_t node[6];
};
#endif /* _HEADER_misc */
#ifndef _HEADER_libnetapi
#ifndef MAXSUBAUTHS
#define MAXSUBAUTHS 15 /* max sub authorities in a SID */
#endif
struct domsid {
uint8_t sid_rev_num;
uint8_t num_auths;
uint8_t id_auth[6];
uint32_t sub_auths[MAXSUBAUTHS];
};
struct DOMAIN_CONTROLLER_INFO {
const char * domain_controller_name;
const char * domain_controller_address;
uint32_t domain_controller_address_type;
struct GUID domain_guid;
const char * domain_name;
const char * dns_forest_name;
uint32_t flags;
const char * dc_site_name;
const char * client_site_name;
};
/* bitmap NetJoinFlags */
#define NETSETUP_JOIN_DOMAIN ( 0x00000001 )
#define NETSETUP_ACCT_CREATE ( 0x00000002 )
#define NETSETUP_ACCT_DELETE ( 0x00000004 )
#define NETSETUP_WIN9X_UPGRADE ( 0x00000010 )
#define NETSETUP_DOMAIN_JOIN_IF_JOINED ( 0x00000020 )
#define NETSETUP_JOIN_UNSECURE ( 0x00000040 )
#define NETSETUP_MACHINE_PWD_PASSED ( 0x00000080 )
#define NETSETUP_DEFER_SPN_SET ( 0x00000100 )
#define NETSETUP_JOIN_DC_ACCOUNT ( 0x00000200 )
#define NETSETUP_JOIN_WITH_NEW_NAME ( 0x00000400 )
#define NETSETUP_INSTALL_INVOCATION ( 0x00040000 )
#define NETSETUP_IGNORE_UNSUPPORTED_FLAGS ( 0x10000000 )
#define FILTER_TEMP_DUPLICATE_ACCOUNT ( 0x0001 )
#define FILTER_NORMAL_ACCOUNT ( 0x0002 )
#define FILTER_INTERDOMAIN_TRUST_ACCOUNT ( 0x0008 )
#define FILTER_WORKSTATION_TRUST_ACCOUNT ( 0x0010 )
#define FILTER_SERVER_TRUST_ACCOUNT ( 0x0020 )
#define TIMEQ_FOREVER ( (uint32_t)-1L )
enum NETSETUP_JOIN_STATUS {
NetSetupUnknownStatus=0,
NetSetupUnjoined=1,
NetSetupWorkgroupName=2,
NetSetupDomainName=3
};
struct SERVER_INFO_100 {
uint32_t sv100_platform_id;
const char * sv100_name;
};
struct SERVER_INFO_101 {
uint32_t sv101_platform_id;
const char * sv101_name;
uint32_t sv101_version_major;
uint32_t sv101_version_minor;
uint32_t sv101_type;
const char * sv101_comment;
};
struct SERVER_INFO_102 {
uint32_t sv102_platform_id;
const char * sv102_name;
uint32_t sv102_version_major;
uint32_t sv102_version_minor;
uint32_t sv102_type;
const char * sv102_comment;
uint32_t sv102_users;
uint32_t sv102_disc;
uint8_t sv102_hidden;
uint32_t sv102_announce;
uint32_t sv102_anndelta;
uint32_t sv102_licenses;
const char * sv102_userpath;
};
struct SERVER_INFO_402 {
uint32_t sv402_ulist_mtime;
uint32_t sv402_glist_mtime;
uint32_t sv402_alist_mtime;
const char * sv402_alerts;
uint32_t sv402_security;
uint32_t sv402_numadmin;
uint32_t sv402_lanmask;
const char * sv402_guestacct;
uint32_t sv402_chdevs;
uint32_t sv402_chdevq;
uint32_t sv402_chdevjobs;
uint32_t sv402_connections;
uint32_t sv402_shares;
uint32_t sv402_openfiles;
uint32_t sv402_sessopens;
uint32_t sv402_sessvcs;
uint32_t sv402_sessreqs;
uint32_t sv402_opensearch;
uint32_t sv402_activelocks;
uint32_t sv402_numreqbuf;
uint32_t sv402_sizreqbuf;
uint32_t sv402_numbigbuf;
uint32_t sv402_numfiletasks;
uint32_t sv402_alertsched;
uint32_t sv402_erroralert;
uint32_t sv402_logonalert;
uint32_t sv402_accessalert;
uint32_t sv402_diskalert;
uint32_t sv402_netioalert;
uint32_t sv402_maxauditsz;
const char * sv402_srvheuristics;
};
struct SERVER_INFO_403 {
uint32_t sv403_ulist_mtime;
uint32_t sv403_glist_mtime;
uint32_t sv403_alist_mtime;
const char * sv403_alerts;
uint32_t sv403_security;
uint32_t sv403_numadmin;
uint32_t sv403_lanmask;
const char * sv403_guestacct;
uint32_t sv403_chdevs;
uint32_t sv403_chdevq;
uint32_t sv403_chdevjobs;
uint32_t sv403_connections;
uint32_t sv403_shares;
uint32_t sv403_openfiles;
uint32_t sv403_sessopens;
uint32_t sv403_sessvcs;
uint32_t sv403_sessreqs;
uint32_t sv403_opensearch;
uint32_t sv403_activelocks;
uint32_t sv403_numreqbuf;
uint32_t sv403_sizreqbuf;
uint32_t sv403_numbigbuf;
uint32_t sv403_numfiletasks;
uint32_t sv403_alertsched;
uint32_t sv403_erroralert;
uint32_t sv403_logonalert;
uint32_t sv403_accessalert;
uint32_t sv403_diskalert;
uint32_t sv403_netioalert;
uint32_t sv403_maxauditsz;
const char * sv403_srvheuristics;
uint32_t sv403_auditedevents;
uint32_t sv403_autoprofile;
const char * sv403_autopath;
};
struct SERVER_INFO_502 {
uint32_t sv502_sessopens;
uint32_t sv502_sessvcs;
uint32_t sv502_opensearch;
uint32_t sv502_sizreqbuf;
uint32_t sv502_initworkitems;
uint32_t sv502_maxworkitems;
uint32_t sv502_rawworkitems;
uint32_t sv502_irpstacksize;
uint32_t sv502_maxrawbuflen;
uint32_t sv502_sessusers;
uint32_t sv502_sessconns;
uint32_t sv502_maxpagedmemoryusage;
uint32_t sv502_maxnonpagedmemoryusage;
uint8_t sv502_enablesoftcompat;
uint8_t sv502_enableforcedlogoff;
uint8_t sv502_timesource;
uint8_t sv502_acceptdownlevelapis;
uint8_t sv502_lmannounce;
};
struct SERVER_INFO_503 {
uint32_t sv503_sessopens;
uint32_t sv503_sessvcs;
uint32_t sv503_opensearch;
uint32_t sv503_sizreqbuf;
uint32_t sv503_initworkitems;
uint32_t sv503_maxworkitems;
uint32_t sv503_rawworkitems;
uint32_t sv503_irpstacksize;
uint32_t sv503_maxrawbuflen;
uint32_t sv503_sessusers;
uint32_t sv503_sessconns;
uint32_t sv503_maxpagedmemoryusage;
uint32_t sv503_maxnonpagedmemoryusage;
uint8_t sv503_enablesoftcompat;
uint8_t sv503_enableforcedlogoff;
uint8_t sv503_timesource;
uint8_t sv503_acceptdownlevelapis;
uint8_t sv503_lmannounce;
const char * sv503_domain;
uint32_t sv503_maxcopyreadlen;
uint32_t sv503_maxcopywritelen;
uint32_t sv503_minkeepsearch;
uint32_t sv503_maxkeepsearch;
uint32_t sv503_minkeepcomplsearch;
uint32_t sv503_maxkeepcomplsearch;
uint32_t sv503_threadcountadd;
uint32_t sv503_numblockthreads;
uint32_t sv503_scavtimeout;
uint32_t sv503_minrcvqueue;
uint32_t sv503_minfreeworkitems;
uint32_t sv503_xactmemsize;
uint32_t sv503_threadpriority;
uint32_t sv503_maxmpxct;
uint32_t sv503_oplockbreakwait;
uint32_t sv503_oplockbreakresponsewait;
uint8_t sv503_enableoplocks;
uint8_t sv503_enableoplockforceclose;
uint8_t sv503_enablefcbopens;
uint8_t sv503_enableraw;
uint8_t sv503_enablesharednetdrives;
uint32_t sv503_minfreeconnections;
uint32_t sv503_maxfreeconnections;
};
struct SERVER_INFO_599 {
uint32_t sv599_sessopens;
uint32_t sv599_sessvcs;
uint32_t sv599_opensearch;
uint32_t sv599_sizreqbuf;
uint32_t sv599_initworkitems;
uint32_t sv599_maxworkitems;
uint32_t sv599_rawworkitems;
uint32_t sv599_irpstacksize;
uint32_t sv599_maxrawbuflen;
uint32_t sv599_sessusers;
uint32_t sv599_sessconns;
uint32_t sv599_maxpagedmemoryusage;
uint32_t sv599_maxnonpagedmemoryusage;
uint8_t sv599_enablesoftcompat;
uint8_t sv599_enableforcedlogoff;
uint8_t sv599_timesource;
uint8_t sv599_acceptdownlevelapis;
uint8_t sv599_lmannounce;
const char * sv599_domain;
uint32_t sv599_maxcopyreadlen;
uint32_t sv599_maxcopywritelen;
uint32_t sv599_minkeepsearch;
uint32_t sv599_maxkeepsearch;
uint32_t sv599_minkeepcomplsearch;
uint32_t sv599_maxkeepcomplsearch;
uint32_t sv599_threadcountadd;
uint32_t sv599_numblockthreads;
uint32_t sv599_scavtimeout;
uint32_t sv599_minrcvqueue;
uint32_t sv599_minfreeworkitems;
uint32_t sv599_xactmemsize;
uint32_t sv599_threadpriority;
uint32_t sv599_maxmpxct;
uint32_t sv599_oplockbreakwait;
uint32_t sv599_oplockbreakresponsewait;
uint8_t sv599_enableoplocks;
uint8_t sv599_enableoplockforceclose;
uint8_t sv599_enablefcbopens;
uint8_t sv599_enableraw;
uint8_t sv599_enablesharednetdrives;
uint32_t sv599_minfreeconnections;
uint32_t sv599_maxfreeconnections;
uint32_t sv599_initsesstable;
uint32_t sv599_initconntable;
uint32_t sv599_initfiletable;
uint32_t sv599_initsearchtable;
uint32_t sv599_alertschedule;
uint32_t sv599_errorthreshold;
uint32_t sv599_networkerrorthreshold;
uint32_t sv599_diskspacethreshold;
uint32_t sv599_reserved;
uint32_t sv599_maxlinkdelay;
uint32_t sv599_minlinkthroughput;
uint32_t sv599_linkinfovalidtime;
uint32_t sv599_scavqosinfoupdatetime;
uint32_t sv599_maxworkitemidletime;
};
struct SERVER_INFO_598 {
uint32_t sv598_maxrawworkitems;
uint32_t sv598_maxthreadsperqueue;
uint32_t sv598_producttype;
uint32_t sv598_serversize;
uint32_t sv598_connectionlessautodisc;
uint32_t sv598_sharingviolationretries;
uint32_t sv598_sharingviolationdelay;
uint32_t sv598_maxglobalopensearch;
uint32_t sv598_removeduplicatesearches;
uint32_t sv598_lockviolationoffset;
uint32_t sv598_lockviolationdelay;
uint32_t sv598_mdlreadswitchover;
uint32_t sv598_cachedopenlimit;
uint32_t sv598_otherqueueaffinity;
uint8_t sv598_restrictnullsessaccess;
uint8_t sv598_enablewfw311directipx;
uint32_t sv598_queuesamplesecs;
uint32_t sv598_balancecount;
uint32_t sv598_preferredaffinity;
uint32_t sv598_maxfreerfcbs;
uint32_t sv598_maxfreemfcbs;
uint32_t sv598_maxfreelfcbs;
uint32_t sv598_maxfreepagedpoolchunks;
uint32_t sv598_minpagedpoolchunksize;
uint32_t sv598_maxpagedpoolchunksize;
uint8_t sv598_sendsfrompreferredprocessor;
uint32_t sv598_cacheddirectorylimit;
uint32_t sv598_maxcopylength;
uint8_t sv598_enablecompression;
uint8_t sv598_autosharewks;
uint8_t sv598_autoshareserver;
uint8_t sv598_enablesecuritysignature;
uint8_t sv598_requiresecuritysignature;
uint32_t sv598_minclientbuffersize;
struct GUID sv598_serverguid;
uint32_t sv598_ConnectionNoSessionsTimeout;
uint32_t sv598_IdleThreadTimeOut;
uint8_t sv598_enableW9xsecuritysignature;
uint8_t sv598_enforcekerberosreauthentication;
uint8_t sv598_disabledos;
uint32_t sv598_lowdiskspaceminimum;
uint8_t sv598_disablestrictnamechecking;
};
struct SERVER_INFO_1005 {
const char * sv1005_comment;
};
struct SERVER_INFO_1107 {
uint32_t sv1107_users;
};
struct SERVER_INFO_1010 {
int32_t sv1010_disc;
};
struct SERVER_INFO_1016 {
uint8_t sv1016_hidden;
};
struct SERVER_INFO_1017 {
uint32_t sv1017_announce;
};
struct SERVER_INFO_1018 {
uint32_t sv1018_anndelta;
};
struct SERVER_INFO_1501 {
uint32_t sv1501_sessopens;
};
struct SERVER_INFO_1502 {
uint32_t sv1502_sessvcs;
};
struct SERVER_INFO_1503 {
uint32_t sv1503_opensearch;
};
struct SERVER_INFO_1506 {
uint32_t sv1506_maxworkitems;
};
struct SERVER_INFO_1509 {
uint32_t sv1509_maxrawbuflen;
};
struct SERVER_INFO_1510 {
uint32_t sv1510_sessusers;
};
struct SERVER_INFO_1511 {
uint32_t sv1511_sessconns;
};
struct SERVER_INFO_1512 {
uint32_t sv1512_maxnonpagedmemoryusage;
};
struct SERVER_INFO_1513 {
uint32_t sv1513_maxpagedmemoryusage;
};
struct SERVER_INFO_1514 {
uint8_t sv1514_enablesoftcompat;
};
struct SERVER_INFO_1515 {
uint8_t sv1515_enableforcedlogoff;
};
struct SERVER_INFO_1516 {
uint8_t sv1516_timesource;
};
struct SERVER_INFO_1518 {
uint8_t sv1518_lmannounce;
};
struct SERVER_INFO_1520 {
uint32_t sv1520_maxcopyreadlen;
};
struct SERVER_INFO_1521 {
uint32_t sv1521_maxcopywritelen;
};
struct SERVER_INFO_1522 {
uint32_t sv1522_minkeepsearch;
};
struct SERVER_INFO_1523 {
uint32_t sv1523_maxkeepsearch;
};
struct SERVER_INFO_1524 {
uint32_t sv1524_minkeepcomplsearch;
};
struct SERVER_INFO_1525 {
uint32_t sv1525_maxkeepcomplsearch;
};
struct SERVER_INFO_1528 {
uint32_t sv1528_scavtimeout;
};
struct SERVER_INFO_1529 {
uint32_t sv1529_minrcvqueue;
};
struct SERVER_INFO_1530 {
uint32_t sv1530_minfreeworkitems;
};
struct SERVER_INFO_1533 {
uint32_t sv1533_maxmpxct;
};
struct SERVER_INFO_1534 {
uint32_t sv1534_oplockbreakwait;
};
struct SERVER_INFO_1535 {
uint32_t sv1535_oplockbreakresponsewait;
};
struct SERVER_INFO_1536 {
uint8_t sv1536_enableoplocks;
};
struct SERVER_INFO_1537 {
uint8_t sv1537_enableoplockforceclose;
};
struct SERVER_INFO_1538 {
uint8_t sv1538_enablefcbopens;
};
struct SERVER_INFO_1539 {
uint8_t sv1539_enableraw;
};
struct SERVER_INFO_1540 {
uint8_t sv1540_enablesharednetdrives;
};
struct SERVER_INFO_1541 {
uint8_t sv1541_minfreeconnections;
};
struct SERVER_INFO_1542 {
uint8_t sv1542_maxfreeconnections;
};
struct SERVER_INFO_1543 {
uint32_t sv1543_initsesstable;
};
struct SERVER_INFO_1544 {
uint32_t sv1544_initconntable;
};
struct SERVER_INFO_1545 {
uint32_t sv1545_initfiletable;
};
struct SERVER_INFO_1546 {
uint32_t sv1546_initsearchtable;
};
struct SERVER_INFO_1547 {
uint32_t sv1547_alertschedule;
};
struct SERVER_INFO_1548 {
uint32_t sv1548_errorthreshold;
};
struct SERVER_INFO_1549 {
uint32_t sv1549_networkerrorthreshold;
};
struct SERVER_INFO_1550 {
uint32_t sv1550_diskspacethreshold;
};
struct SERVER_INFO_1552 {
uint32_t sv1552_maxlinkdelay;
};
struct SERVER_INFO_1553 {
uint32_t sv1553_minlinkthroughput;
};
struct SERVER_INFO_1554 {
uint32_t sv1554_linkinfovalidtime;
};
struct SERVER_INFO_1555 {
uint32_t sv1555_scavqosinfoupdatetime;
};
struct SERVER_INFO_1556 {
uint32_t sv1556_maxworkitemidletime;
};
struct SERVER_INFO_1557 {
uint32_t sv1557_maxrawworkitems;
};
struct SERVER_INFO_1560 {
uint32_t sv1560_producttype;
};
struct SERVER_INFO_1561 {
uint32_t sv1561_serversize;
};
struct SERVER_INFO_1562 {
uint32_t sv1562_connectionlessautodisc;
};
struct SERVER_INFO_1563 {
uint32_t sv1563_sharingviolationretries;
};
struct SERVER_INFO_1564 {
uint32_t sv1564_sharingviolationdelay;
};
struct SERVER_INFO_1565 {
uint32_t sv1565_maxglobalopensearch;
};
struct SERVER_INFO_1566 {
uint8_t sv1566_removeduplicatesearches;
};
struct SERVER_INFO_1567 {
uint32_t sv1567_lockviolationretries;
};
struct SERVER_INFO_1568 {
uint32_t sv1568_lockviolationoffset;
};
struct SERVER_INFO_1569 {
uint32_t sv1569_lockviolationdelay;
};
struct SERVER_INFO_1570 {
uint32_t sv1570_mdlreadswitchover;
};
struct SERVER_INFO_1571 {
uint32_t sv1571_cachedopenlimit;
};
struct SERVER_INFO_1572 {
uint32_t sv1572_criticalthreads;
};
struct SERVER_INFO_1573 {
uint32_t sv1573_restrictnullsessaccess;
};
struct SERVER_INFO_1574 {
uint32_t sv1574_enablewfw311directipx;
};
struct SERVER_INFO_1575 {
uint32_t sv1575_otherqueueaffinity;
};
struct SERVER_INFO_1576 {
uint32_t sv1576_queuesamplesecs;
};
struct SERVER_INFO_1577 {
uint32_t sv1577_balancecount;
};
struct SERVER_INFO_1578 {
uint32_t sv1578_preferredaffinity;
};
struct SERVER_INFO_1579 {
uint32_t sv1579_maxfreerfcbs;
};
struct SERVER_INFO_1580 {
uint32_t sv1580_maxfreemfcbs;
};
struct SERVER_INFO_1581 {
uint32_t sv1581_maxfreemlcbs;
};
struct SERVER_INFO_1582 {
uint32_t sv1582_maxfreepagedpoolchunks;
};
struct SERVER_INFO_1583 {
uint32_t sv1583_minpagedpoolchunksize;
};
struct SERVER_INFO_1584 {
uint32_t sv1584_maxpagedpoolchunksize;
};
struct SERVER_INFO_1585 {
uint8_t sv1585_sendsfrompreferredprocessor;
};
struct SERVER_INFO_1586 {
uint32_t sv1586_maxthreadsperqueue;
};
struct SERVER_INFO_1587 {
uint32_t sv1587_cacheddirectorylimit;
};
struct SERVER_INFO_1588 {
uint32_t sv1588_maxcopylength;
};
struct SERVER_INFO_1590 {
uint32_t sv1590_enablecompression;
};
struct SERVER_INFO_1591 {
uint32_t sv1591_autosharewks;
};
struct SERVER_INFO_1592 {
uint32_t sv1592_autosharewks;
};
struct SERVER_INFO_1593 {
uint32_t sv1593_enablesecuritysignature;
};
struct SERVER_INFO_1594 {
uint32_t sv1594_requiresecuritysignature;
};
struct SERVER_INFO_1595 {
uint32_t sv1595_minclientbuffersize;
};
struct SERVER_INFO_1596 {
uint32_t sv1596_ConnectionNoSessionsTimeout;
};
struct SERVER_INFO_1597 {
uint32_t sv1597_IdleThreadTimeOut;
};
struct SERVER_INFO_1598 {
uint32_t sv1598_enableW9xsecuritysignature;
};
struct SERVER_INFO_1599 {
uint8_t sv1598_enforcekerberosreauthentication;
};
struct SERVER_INFO_1600 {
uint8_t sv1598_disabledos;
};
struct SERVER_INFO_1601 {
uint32_t sv1598_lowdiskspaceminimum;
};
struct SERVER_INFO_1602 {
uint8_t sv_1598_disablestrictnamechecking;
};
struct USER_INFO_0 {
const char * usri0_name;
};
#define USER_PRIV_GUEST ( 0 )
#define USER_PRIV_USER ( 1 )
#define USER_PRIV_ADMIN ( 2 )
struct USER_INFO_1 {
const char * usri1_name;
const char * usri1_password;
uint32_t usri1_password_age;
uint32_t usri1_priv;
const char * usri1_home_dir;
const char * usri1_comment;
uint32_t usri1_flags;
const char * usri1_script_path;
};
#define AF_OP_PRINT ( 0x1 )
#define AF_OP_COMM ( 0x2 )
#define AF_OP_SERVER ( 0x4 )
#define AF_OP_ACCOUNTS ( 0x8 )
struct USER_INFO_2 {
const char * usri2_name;
const char * usri2_password;
uint32_t usri2_password_age;
uint32_t usri2_priv;
const char * usri2_home_dir;
const char * usri2_comment;
uint32_t usri2_flags;
const char * usri2_script_path;
uint32_t usri2_auth_flags;
const char * usri2_full_name;
const char * usri2_usr_comment;
const char * usri2_parms;
const char * usri2_workstations;
uint32_t usri2_last_logon;
uint32_t usri2_last_logoff;
uint32_t usri2_acct_expires;
uint32_t usri2_max_storage;
uint32_t usri2_units_per_week;
uint8_t *usri2_logon_hours;/* [unique] */
uint32_t usri2_bad_pw_count;
uint32_t usri2_num_logons;
const char * usri2_logon_server;
uint32_t usri2_country_code;
uint32_t usri2_code_page;
};
struct USER_INFO_3 {
const char * usri3_name;
uint32_t usri3_password_age;
uint32_t usri3_priv;
const char * usri3_home_dir;
const char * usri3_comment;
uint32_t usri3_flags;
const char * usri3_script_path;
uint32_t usri3_auth_flags;
const char * usri3_full_name;
const char * usri3_usr_comment;
const char * usri3_parms;
const char * usri3_workstations;
uint32_t usri3_last_logon;
uint32_t usri3_last_logoff;
uint32_t usri3_acct_expires;
uint32_t usri3_max_storage;
uint32_t usri3_units_per_week;
uint8_t *usri3_logon_hours;/* [unique] */
uint32_t usri3_bad_pw_count;
uint32_t usri3_num_logons;
const char * usri3_logon_server;
uint32_t usri3_country_code;
uint32_t usri3_code_page;
uint32_t usri3_user_id;
uint32_t usri3_primary_group_id;
const char * usri3_profile;
const char * usri3_home_dir_drive;
uint32_t usri3_password_expired;
};
struct USER_INFO_4 {
const char * usri4_name;
const char * usri4_password;
uint32_t usri4_password_age;
uint32_t usri4_priv;
const char * usri4_home_dir;
const char * usri4_comment;
uint32_t usri4_flags;
const char * usri4_script_path;
uint32_t usri4_auth_flags;
const char * usri4_full_name;
const char * usri4_usr_comment;
const char * usri4_parms;
const char * usri4_workstations;
uint32_t usri4_last_logon;
uint32_t usri4_last_logoff;
uint32_t usri4_acct_expires;
uint32_t usri4_max_storage;
uint32_t usri4_units_per_week;
uint8_t *usri4_logon_hours;/* [unique] */
uint32_t usri4_bad_pw_count;
uint32_t usri4_num_logons;
const char * usri4_logon_server;
uint32_t usri4_country_code;
uint32_t usri4_code_page;
struct domsid *usri4_user_sid;/* [unique] */
uint32_t usri4_primary_group_id;
const char * usri4_profile;
const char * usri4_home_dir_drive;
uint32_t usri4_password_expired;
};
struct USER_INFO_10 {
const char * usri10_name;
const char * usri10_comment;
const char * usri10_usr_comment;
const char * usri10_full_name;
};
struct USER_INFO_11 {
const char * usri11_name;
const char * usri11_comment;
const char * usri11_usr_comment;
const char * usri11_full_name;
uint32_t usri11_priv;
uint32_t usri11_auth_flags;
uint32_t usri11_password_age;
const char * usri11_home_dir;
const char * usri11_parms;
uint32_t usri11_last_logon;
uint32_t usri11_last_logoff;
uint32_t usri11_bad_pw_count;
uint32_t usri11_num_logons;
const char * usri11_logon_server;
uint32_t usri11_country_code;
const char * usri11_workstations;
uint32_t usri11_max_storage;
uint32_t usri11_units_per_week;
uint8_t *usri11_logon_hours;/* [unique] */
uint32_t usri11_code_page;
};
struct USER_INFO_20 {
const char * usri20_name;
const char * usri20_full_name;
const char * usri20_comment;
uint32_t usri20_flags;
uint32_t usri20_user_id;
};
struct USER_INFO_21 {
uint8_t *usri21_password;
};
struct USER_INFO_22 {
const char * usri22_name;
uint8_t *usri22_password;
uint32_t usri22_password_age;
uint32_t usri22_priv;
const char * usri22_home_dir;
const char * usri22_comment;
uint32_t usri22_flags;
uint32_t usri22_script_path;
uint32_t usri22_auth_flags;
const char * usri22_full_name;
const char * usri22_usr_comment;
const char * usri22_parms;
const char * usri22_workstations;
uint32_t usri22_last_logon;
uint32_t usri22_last_logoff;
uint32_t usri22_acct_expires;
uint32_t usri22_max_storage;
uint32_t usri22_units_per_week;
uint8_t *usri22_logon_hours;/* [unique] */
uint32_t usri22_bad_pw_count;
uint32_t usri22_num_logons;
const char * usri22_logon_server;
uint32_t usri22_country_code;
uint32_t usri22_code_page;
};
struct USER_INFO_23 {
const char * usri23_name;
const char * usri23_full_name;
const char * usri23_comment;
uint32_t usri23_flags;
struct domsid *usri23_user_sid;/* [unique] */
};
struct USER_INFO_1003 {
const char * usri1003_password;
};
struct USER_INFO_1005 {
uint32_t usri1005_priv;
};
struct USER_INFO_1006 {
const char * usri1006_home_dir;
};
struct USER_INFO_1007 {
const char * usri1007_comment;
};
struct USER_INFO_1008 {
uint32_t usri1008_flags;
};
struct USER_INFO_1009 {
const char * usri1009_script_path;
};
struct USER_INFO_1010 {
uint32_t usri1010_auth_flags;
};
struct USER_INFO_1011 {
const char * usri1011_full_name;
};
struct USER_INFO_1012 {
const char * usri1012_usr_comment;
};
struct USER_INFO_1013 {
const char * usri1013_parms;
};
struct USER_INFO_1014 {
const char * usri1014_workstations;
};
struct USER_INFO_1017 {
uint32_t usri1017_acct_expires;
};
struct USER_INFO_1018 {
uint32_t usri1018_max_storage;
};
struct USER_INFO_1020 {
uint32_t usri1020_units_per_week;
uint8_t *usri1020_logon_hours;/* [unique] */
};
struct USER_INFO_1023 {
const char * usri1023_logon_server;
};
struct USER_INFO_1024 {
uint32_t usri1024_country_code;
};
struct USER_INFO_1025 {
uint32_t usri1025_code_page;
};
struct USER_INFO_1051 {
uint32_t usri1051_primary_group_id;
};
struct USER_INFO_1052 {
const char * usri1052_profile;
};
struct USER_INFO_1053 {
const char * usri1053_home_dir_drive;
};
struct USER_MODALS_INFO_0 {
uint32_t usrmod0_min_passwd_len;
uint32_t usrmod0_max_passwd_age;
uint32_t usrmod0_min_passwd_age;
uint32_t usrmod0_force_logoff;
uint32_t usrmod0_password_hist_len;
};
struct USER_MODALS_INFO_1 {
uint32_t usrmod1_role;
const char * usrmod1_primary;
};
struct USER_MODALS_INFO_2 {
const char * usrmod2_domain_name;
struct domsid *usrmod2_domain_id;/* [unique] */
};
struct USER_MODALS_INFO_3 {
uint32_t usrmod3_lockout_duration;
uint32_t usrmod3_lockout_observation_window;
uint32_t usrmod3_lockout_threshold;
};
struct USER_MODALS_INFO_1001 {
uint32_t usrmod1001_min_passwd_len;
};
struct USER_MODALS_INFO_1002 {
uint32_t usrmod1002_max_passwd_age;
};
struct USER_MODALS_INFO_1003 {
uint32_t usrmod1003_min_passwd_age;
};
struct USER_MODALS_INFO_1004 {
uint32_t usrmod1004_force_logoff;
};
struct USER_MODALS_INFO_1005 {
uint32_t usrmod1005_password_hist_len;
};
struct USER_MODALS_INFO_1006 {
uint32_t usrmod1006_role;
};
struct USER_MODALS_INFO_1007 {
const char * usrmod1007_primary;
};
struct NET_DISPLAY_USER {
const char * usri1_name;
const char * usri1_comment;
uint32_t usri1_flags;
const char * usri1_full_name;
uint32_t usri1_user_id;
uint32_t usri1_next_index;
};
struct NET_DISPLAY_MACHINE {
const char * usri2_name;
const char * usri2_comment;
uint32_t usri2_flags;
uint32_t usri2_user_id;
uint32_t usri2_next_index;
};
struct NET_DISPLAY_GROUP {
const char * grpi3_name;
const char * grpi3_comment;
uint32_t grpi3_group_id;
uint32_t grpi3_attributes;
uint32_t grpi3_next_index;
};
struct GROUP_INFO_0 {
const char * grpi0_name;
};
struct GROUP_INFO_1 {
const char * grpi1_name;
const char * grpi1_comment;
};
struct GROUP_INFO_2 {
const char * grpi2_name;
const char * grpi2_comment;
uint32_t grpi2_group_id;
uint32_t grpi2_attributes;
};
struct GROUP_INFO_3 {
const char * grpi3_name;
const char * grpi3_comment;
struct domsid * grpi3_group_sid;
uint32_t grpi3_attributes;
};
struct GROUP_INFO_1002 {
const char * grpi1002_comment;
};
struct GROUP_INFO_1005 {
uint32_t grpi1005_attributes;
};
struct GROUP_USERS_INFO_0 {
const char * grui0_name;
};
struct GROUP_USERS_INFO_1 {
const char * grui1_name;
uint32_t grui1_attributes;
};
struct LOCALGROUP_INFO_0 {
const char * lgrpi0_name;
};
struct LOCALGROUP_INFO_1 {
const char * lgrpi1_name;
const char * lgrpi1_comment;
};
struct LOCALGROUP_INFO_1002 {
const char * lgrpi1002_comment;
};
enum SID_NAME_USE {
SidTypeUser=1,
SidTypeGroup=2,
SidTypeDomain=3,
SidTypeAlias=4,
SidTypeWellKnownGroup=5,
SidTypeDeletedAccount=6,
SidTypeInvalid=7,
SidTypeUnknown=8,
SidTypeComputer=9,
SidTypeLabel=10
};
struct LOCALGROUP_MEMBERS_INFO_0 {
struct domsid *lgrmi0_sid;/* [unique] */
};
struct LOCALGROUP_MEMBERS_INFO_1 {
struct domsid *lgrmi1_sid;/* [unique] */
enum SID_NAME_USE lgrmi1_sidusage;
const char * lgrmi1_name;
};
struct LOCALGROUP_MEMBERS_INFO_2 {
struct domsid *lgrmi2_sid;/* [unique] */
enum SID_NAME_USE lgrmi2_sidusage;
const char * lgrmi2_domainandname;
};
struct LOCALGROUP_MEMBERS_INFO_3 {
const char * lgrmi3_domainandname;
};
struct LOCALGROUP_USERS_INFO_0 {
const char * lgrui0_name;
};
struct TIME_OF_DAY_INFO {
uint32_t tod_elapsedt;
uint32_t tod_msecs;
uint32_t tod_hours;
uint32_t tod_mins;
uint32_t tod_secs;
uint32_t tod_hunds;
int32_t tod_timezone;
uint32_t tod_tinterval;
uint32_t tod_day;
uint32_t tod_month;
uint32_t tod_year;
uint32_t tod_weekday;
};
struct SHARE_INFO_0 {
const char * shi0_netname;
};
struct SHARE_INFO_1 {
const char * shi1_netname;
uint32_t shi1_type;
const char * shi1_remark;
};
struct SHARE_INFO_2 {
const char * shi2_netname;
uint32_t shi2_type;
const char * shi2_remark;
uint32_t shi2_permissions;
uint32_t shi2_max_uses;
uint32_t shi2_current_uses;
const char * shi2_path;
const char * shi2_passwd;
};
struct SHARE_INFO_501 {
const char * shi501_netname;
uint32_t shi501_type;
const char * shi501_remark;
uint32_t shi501_flags;
};
struct SHARE_INFO_502 {
const char * shi502_netname;
uint32_t shi502_type;
const char * shi502_remark;
uint32_t shi502_permissions;
uint32_t shi502_max_uses;
uint32_t shi502_current_uses;
const char * shi502_path;
const char * shi502_passwd;
uint32_t shi502_reserved;
struct security_descriptor * shi502_security_descriptor;
};
struct SHARE_INFO_1004 {
const char * shi1004_remark;
};
struct SHARE_INFO_1005 {
uint32_t shi1005_flags;
};
struct SHARE_INFO_1006 {
uint32_t shi1006_max_uses;
};
struct FILE_INFO_2 {
uint32_t fi2_id;
};
struct FILE_INFO_3 {
uint32_t fi3_id;
uint32_t fi3_permissions;
uint32_t fi3_num_locks;
const char * fi3_pathname;
const char * fi3_username;
};
struct NETLOGON_INFO_1 {
uint32_t netlog1_flags;
NET_API_STATUS netlog1_pdc_connection_status;
};
struct NETLOGON_INFO_2 {
uint32_t netlog2_flags;
NET_API_STATUS netlog2_pdc_connection_status;
const char * netlog2_trusted_dc_name;
NET_API_STATUS netlog2_tc_connection_status;
};
struct NETLOGON_INFO_3 {
uint32_t netlog1_flags;
uint32_t netlog3_logon_attempts;
uint32_t netlog3_reserved1;
uint32_t netlog3_reserved2;
uint32_t netlog3_reserved3;
uint32_t netlog3_reserved4;
uint32_t netlog3_reserved5;
};
struct NETLOGON_INFO_4 {
const char * netlog4_trusted_dc_name;
const char * netlog4_trusted_domain_name;
};
#define DS_PDC_FLAG ( 0x00000001 )
#define DS_GC_FLAG ( 0x00000004 )
#define DS_LDAP_FLAG ( 0x00000008 )
#define DS_DS_FLAG ( 0x00000010 )
#define DS_KDC_FLAG ( 0x00000020 )
#define DS_TIMESERV_FLAG ( 0x00000040 )
#define DS_CLOSEST_FLAG ( 0x00000080 )
#define DS_WRITABLE_FLAG ( 0x00000100 )
#define DS_GOOD_TIMESERV_FLAG ( 0x00000200 )
#define DS_NDNC_FLAG ( 0x00000400 )
#define DS_SELECT_SECRET_DOMAIN_6_FLAG ( 0x00000800 )
#define DS_FULL_SECRET_DOMAIN_6_FLAG ( 0x00001000 )
#define DS_DNS_CONTROLLER_FLAG ( 0x20000000 )
#define DS_DNS_DOMAIN_FLAG ( 0x40000000 )
#define DS_DNS_FOREST_FLAG ( 0x80000000 )
#endif /* _HEADER_libnetapi */
#ifndef _HEADER_netlogon
#define NETLOGON_CONTROL_QUERY ( 0x00000001 )
#define NETLOGON_CONTROL_REPLICATE ( 0x00000002 )
#define NETLOGON_CONTROL_SYNCHRONIZE ( 0x00000003 )
#define NETLOGON_CONTROL_PDC_REPLICATE ( 0x00000004 )
#define NETLOGON_CONTROL_REDISCOVER ( 0x00000005 )
#define NETLOGON_CONTROL_TC_QUERY ( 0x00000006 )
#define NETLOGON_CONTROL_TRANSPORT_NOTIFY ( 0x00000007 )
#define NETLOGON_CONTROL_FIND_USER ( 0x00000008 )
#define NETLOGON_CONTROL_CHANGE_PASSWORD ( 0x00000009 )
#define NETLOGON_CONTROL_TC_VERIFY ( 0x0000000A )
#define NETLOGON_CONTROL_FORCE_DNS_REG ( 0x0000000B )
#define NETLOGON_CONTROL_QUERY_DNS_REG ( 0x0000000C )
#define NETLOGON_CONTROL_BACKUP_CHANGE_LOG ( 0x0000FFFC )
#define NETLOGON_CONTROL_TRUNCATE_LOG ( 0x0000FFFD )
#define NETLOGON_CONTROL_SET_DBFLAG ( 0x0000FFFE )
#define NETLOGON_CONTROL_BREAKPOINT ( 0x0000FFFF )
#define DS_FORCE_REDISCOVERY ( 0x00000001 )
#define DS_DIRECTORY_SERVICE_REQUIRED ( 0x00000010 )
#define DS_DIRECTORY_SERVICE_PREFERRED ( 0x00000020 )
#define DS_GC_SERVER_REQUIRED ( 0x00000040 )
#define DS_PDC_REQUIRED ( 0x00000080 )
#define DS_BACKGROUND_ONLY ( 0x00000100 )
#define DS_IP_REQUIRED ( 0x00000200 )
#define DS_KDC_REQUIRED ( 0x00000400 )
#define DS_TIMESERV_REQUIRED ( 0x00000800 )
#define DS_WRITABLE_REQUIRED ( 0x00001000 )
#define DS_GOOD_TIMESERV_PREFERRED ( 0x00002000 )
#define DS_AVOID_SELF ( 0x00004000 )
#define DS_ONLY_LDAP_NEEDED ( 0x00008000 )
#define DS_IS_FLAT_NAME ( 0x00010000 )
#define DS_IS_DNS_NAME ( 0x00020000 )
#define DS_TRY_NEXTCLOSEST_SITE ( 0x00040000 )
#define DS_DIRECTORY_SERVICE_6_REQUIRED ( 0x00080000 )
#define DS_WEB_SERVICE_REQUIRED ( 0x00100000 )
#define DS_RETURN_DNS_NAME ( 0x40000000 )
#define DS_RETURN_FLAT_NAME ( 0x80000000 )
#endif /* _HEADER_netlogon */
/****************************************************************
****************************************************************/
struct libnetapi_ctx {
char *debuglevel;
char *error_string;
char *username;
char *workgroup;
char *password;
char *krb5_cc_env;
int use_kerberos;
int use_ccache;
int disable_policy_handle_cache;
void *private_data;
};
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_init(struct libnetapi_ctx **ctx);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_free(struct libnetapi_ctx *ctx);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_getctx(struct libnetapi_ctx **ctx);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_debuglevel(struct libnetapi_ctx *ctx,
const char *debuglevel);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_username(struct libnetapi_ctx *ctx,
const char *username);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_password(struct libnetapi_ctx *ctx,
const char *password);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_workgroup(struct libnetapi_ctx *ctx,
const char *workgroup);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_use_kerberos(struct libnetapi_ctx *ctx);
/****************************************************************
****************************************************************/
NET_API_STATUS libnetapi_set_use_ccache(struct libnetapi_ctx *ctx);
/****************************************************************
Return a specific libnetapi error as a string, caller must free with NetApiBufferFree
****************************************************************/
char *libnetapi_errstr(NET_API_STATUS status);
/****************************************************************
Return the last libnetapi error as a string, caller must free with NetApiBufferFree
ctx is optional
****************************************************************/
char *libnetapi_get_error_string(struct libnetapi_ctx *ctx,
NET_API_STATUS status);
/****************************************************************
NetApiBufferAllocate
****************************************************************/
NET_API_STATUS NetApiBufferAllocate(uint32_t byte_count,
void **buffer);
/****************************************************************
NetApiBufferFree
****************************************************************/
NET_API_STATUS NetApiBufferFree(void *buffer);
/************************************************************//**
*
* ConvertSidToStringSid
*
* @brief Convert a domain sid into a string
*
* @param[in] sid A pointer to a sid structure
* @param[in,out] sid_string A pointer that holds a pointer to a sid string. Caller
* needs to free with free(3)
* @return bool
***************************************************************/
int ConvertSidToStringSid(const struct domsid *sid,
char **sid_string);
/************************************************************//**
*
* ConvertStringSidToSid
*
* @brief Convert a string into a domain sid
*
* @param[in] sid_string A pointer to a sid string.
* @param[in,out] sid A pointer that holds a pointer to a sid structure.
* Caller needs to free with free(3)
* @return bool
***************************************************************/
int ConvertStringSidToSid(const char *sid_string,
struct domsid **sid);
/************************************************************//**
*
* NetJoinDomain
*
* @brief Join a computer to a domain or workgroup
*
* @param[in] server The server name to connect to
* @param[in] domain The domain or workgroup to join
* @param[in] account_ou The organizational Unit to create the computer account
* in (AD only)
* @param[in] account The domain account used for joining a domain
* @param[in] password The domain account's password used for joining a domain
* @param[in] join_flags Bitmask field to define specific join features
* @return NET_API_STATUS
*
* example netdomjoin/netdomjoin.c
***************************************************************/
NET_API_STATUS NetJoinDomain(const char * server /* [in] */,
const char * domain /* [in] [ref] */,
const char * account_ou /* [in] */,
const char * account /* [in] */,
const char * password /* [in] */,
uint32_t join_flags /* [in] */);
/************************************************************//**
*
* NetUnjoinDomain
*
* @brief Unjoin a computer from a domain or workgroup
*
* @param[in] server_name The server name to connect to
* @param[in] account The domain account used for unjoining a domain
* @param[in] password The domain account's password used for unjoining a domain
* @param[in] unjoin_flags Bitmask field to define specific unjoin features
* @return NET_API_STATUS
*
***************************************************************/
NET_API_STATUS NetUnjoinDomain(const char * server_name /* [in] */,
const char * account /* [in] */,
const char * password /* [in] */,
uint32_t unjoin_flags /* [in] */);
/************************************************************//**
*
* NetGetJoinInformation
*
* @brief Unjoin a computer from a domain or workgroup
*
* @param[in] server_name The server name to connect to
* @param[out] name_buffer Returns the name of the workgroup or domain
* @param[out] name_type Returns the type of that name
* @return NET_API_STATUS
*
* example netdomjoin-gui/netdomjoin-gui.c
*
***************************************************************/
NET_API_STATUS NetGetJoinInformation(const char * server_name /* [in] */,
const char * *name_buffer /* [out] [ref] */,
uint16_t *name_type /* [out] [ref] */);
/************************************************************//**
*
* NetGetJoinableOUs
*
* @brief Query for the list of joinable organizational Units that can be used
* for joining AD
*
* @param[in] server_name The server name to connect to
* @param[in] domain The AD domain to query
* @param[in] account The domain account used for the query
* @param[in] password The domain account's password used for the query
* @param[out] ou_count The number of ous returned
* @param[out] ous Returned string array containing the ous
* @return NET_API_STATUS
*
* example netdomjoin-gui/netdomjoin-gui.c
*
***************************************************************/
NET_API_STATUS NetGetJoinableOUs(const char * server_name /* [in] */,
const char * domain /* [in] [ref] */,
const char * account /* [in] */,
const char * password /* [in] */,
uint32_t *ou_count /* [out] [ref] */,
const char * **ous /* [out] [ref] */);
/************************************************************//**
*
* NetRenameMachineInDomain
*
* @brief Rename a machine in a domain
*
* @param[in] server_name The server name to connect to
* @param[in] new_machine_name The new machine name
* @param[in] account The domain account used for the query
* @param[in] password The domain account's password used for the query
* @param[in] rename_options Options used for the rename operation
* @return NET_API_STATUS
*
* example join/rename_machine.c
*
***************************************************************/
NET_API_STATUS NetRenameMachineInDomain(const char * server_name /* [in] */,
const char * new_machine_name /* [in] */,
const char * account /* [in] */,
const char * password /* [in] */,
uint32_t rename_options /* [in] */);
/************************************************************//**
*
* NetServerGetInfo
*
* @brief Get Information on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The level to define which information is requested
* @param[out] buffer The returned buffer carrying the SERVER_INFO structure
* @return NET_API_STATUS
*
***************************************************************/
NET_API_STATUS NetServerGetInfo(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetServerSetInfo
*
* @brief Get Information on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The level to define which information is set
* @param[in] buffer The buffer carrying the SERVER_INFO structure
* @param[out] parm_error On failure returns the invalid SERVER_INFO member
* @return NET_API_STATUS
*
***************************************************************/
NET_API_STATUS NetServerSetInfo(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_error /* [out] [ref] */);
/************************************************************//**
*
* NetWkstaGetInfo
*
* @brief Get Information on a workstation
*
* @param[in] wksta_name The workstation name to connect to
* @param[in] level The level to define which information is requested
* @param[out] buffer The returned buffer carrying the WKSTA_INFO structure
* @return NET_API_STATUS
*
***************************************************************/
NET_API_STATUS NetWkstaGetInfo(const char * wksta_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetGetDCName
*
* @brief Query for the PDC for a given domain
*
* @param[in] server_name The server name to connect to
* @param[in] domain_name The name of the domain to lookup
* @param[out] buffer The name of the domain to lookup
* @return NET_API_STATUS
*
* example getdc/getdc.c
***************************************************************/
NET_API_STATUS NetGetDCName(const char * server_name /* [in] */,
const char * domain_name /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetGetAnyDCName
*
* @brief Query for any DC for a given domain
*
* @param[in] server_name The server name to connect to
* @param[in] domain_name The name of the domain to lookup
* @param[out] buffer The name of the domain to lookup
* @return NET_API_STATUS
*
* example getdc/getdc.c
***************************************************************/
NET_API_STATUS NetGetAnyDCName(const char * server_name /* [in] */,
const char * domain_name /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* DsGetDcName
*
* @brief Lookup a DC for a given domain and return information structure
*
* @param[in] server_name The server name to connect to
* @param[in] domain_name The name of the domain to lookup (cannot be NULL)
* @param[in] domain_guid The GUID of the domain to lookup (optional)
* @param[in] site_name The name of the site the DC should reside in
* @param[in] flags A bitmask to request specific features supported by the DC
* @param[out] dc_info Pointer to a DOMAIN_CONTROLLER_INFO structure
* @return NET_API_STATUS
*
* example dsgetdc/dsgetdc.c
***************************************************************/
NET_API_STATUS DsGetDcName(const char * server_name /* [in] [unique] */,
const char * domain_name /* [in] [ref] */,
struct GUID *domain_guid /* [in] [unique] */,
const char * site_name /* [in] [unique] */,
uint32_t flags /* [in] */,
struct DOMAIN_CONTROLLER_INFO **dc_info /* [out] [ref] */);
/************************************************************//**
*
* NetUserAdd
*
* @brief Create a user on a given server
*
* @param[in] server_name The server name to connect to
* @param[in] level The level of the USER_INFO structure passed in (Currently
* only level 1 is supported)
* @param[in] buffer The buffer carrying the USER_INFO structure
* @param[out] parm_error In case of error returns the failing member of the
* structure
* @return NET_API_STATUS
*
* example user/user_add.c
***************************************************************/
NET_API_STATUS NetUserAdd(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_error /* [out] [ref] */);
/************************************************************//**
*
* NetUserDel
*
* @brief Delete a user on a given server
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The user account to delete
* @return NET_API_STATUS
*
* example user/user_del.c
***************************************************************/
NET_API_STATUS NetUserDel(const char * server_name /* [in] */,
const char * user_name /* [in] */);
/************************************************************//**
*
* NetUserEnum
*
* @brief Enumerate accounts on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The enumeration level used for the query (Currently only
* level 0 is supported)
* @param[in] filter The account flags filter used for the query
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example user/user_enum.c
***************************************************************/
NET_API_STATUS NetUserEnum(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint32_t filter /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetUserChangePassword
*
* @brief Change the password for a user on a given server or in a given domain
*
* @param[in] domain_name The server or domain name to connect to
* @param[in] user_name The user account to change the password for
* @param[in] old_password The user account's old password
* @param[in] new_password The user account's new password
* @return NET_API_STATUS
*
* example user/user_chgpwd.c
***************************************************************/
NET_API_STATUS NetUserChangePassword(const char * domain_name /* [in] */,
const char * user_name /* [in] */,
const char * old_password /* [in] */,
const char * new_password /* [in] */);
/************************************************************//**
*
* NetUserGetInfo
*
* @brief Get User Information
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The name of the user that is going to be queried
* @param[in] level The level defining the requested USER_INFO_X structure
* @param[out] buffer The buffer containing a USER_INFO_X structure
* @return NET_API_STATUS
*
* example user/user_getinfo.c
***************************************************************/
NET_API_STATUS NetUserGetInfo(const char * server_name /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetUserSetInfo
*
* @brief Set User Information
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The name of the user that is going to be modified
* @param[in] level The level defining the requested USER_INFO_X structure
* @param[in] buffer The buffer containing a USER_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example user/user_setinfo.c
***************************************************************/
NET_API_STATUS NetUserSetInfo(const char * server_name /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetUserModalsGet
*
* @brief Get SAM domain and password information
*
* @param[in] server_name The server name to connect to
* @param[in] level The level defining which USER_MODALS_INFO_X buffer to query
* @param[out] buffer The returned USER_MODALS_INFO_X buffer
* @return NET_API_STATUS
*
* example user/user_modalsget.c
***************************************************************/
NET_API_STATUS NetUserModalsGet(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetUserModalsSet
*
* @brief Set SAM domain and password information
*
* @param[in] server_name The server name to connect to
* @param[in] level The level defining which USER_MODALS_INFO_X buffer to query
* @param[out] buffer The buffer conntaing a USER_MODALS_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example user/user_modalsset.c
***************************************************************/
NET_API_STATUS NetUserModalsSet(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetUserGetGroups
*
* @brief Enumerate grouplist of a user on a server
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The user name to query
* @param[in] level The enumeration level used for the query (Currently only
* level 0 is supported)
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @return NET_API_STATUS
*
* example user/user_getgroups.c
***************************************************************/
NET_API_STATUS NetUserGetGroups(const char * server_name /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */);
/************************************************************//**
*
* NetUserSetGroups
*
* @brief Set grouplist of a user on a server
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The user name to query
* @param[in] level The level defining the GROUP_USERS_INFO_X structures in the buffer
* @param[in] buffer The buffer containing GROUP_USERS_INFO_X structures
* @param[in] num_entries The number of X structures in the buffer
* @return NET_API_STATUS
*
* example user/user_setgroups.c
***************************************************************/
NET_API_STATUS NetUserSetGroups(const char * server_name /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t num_entries /* [in] */);
/************************************************************//**
*
* NetUserGetLocalGroups
*
* @brief Enumerate local grouplist of a user on a server
*
* @param[in] server_name The server name to connect to
* @param[in] user_name The user name to query
* @param[in] level The enumeration level used for the query
* @param[in] flags The flags used for the query
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @return NET_API_STATUS
*
* example user/user_getlocalgroups.c
***************************************************************/
NET_API_STATUS NetUserGetLocalGroups(const char * server_name /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint32_t flags /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */);
/************************************************************//**
*
* NetQueryDisplayInformation
*
* @brief Enumerate accounts on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The enumeration level used for the query
* @param[in] idx The index to start the the display enumeration at
* @param[in] entries_requested The number of entries requested
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] buffer The returned display information buffer
* @return NET_API_STATUS
*
* example user/user_dispinfo.c
***************************************************************/
NET_API_STATUS NetQueryDisplayInformation(const char * server_name /* [in] [unique] */,
uint32_t level /* [in] */,
uint32_t idx /* [in] */,
uint32_t entries_requested /* [in] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
void **buffer /* [out] [noprint,ref] */);
/************************************************************//**
*
* NetGroupAdd
*
* @brief Create Domain Group
*
* @param[in] server_name The server name to connect to
* @param[in] level The level used for the new group creation
* @param[in] buf The buffer containing the group structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example group/group_add.c
***************************************************************/
NET_API_STATUS NetGroupAdd(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buf /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetGroupDel
*
* @brief Delete Domain Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be deleted
* @return NET_API_STATUS
*
* example group/group_del.c
***************************************************************/
NET_API_STATUS NetGroupDel(const char * server_name /* [in] */,
const char * group_name /* [in] */);
/************************************************************//**
*
* NetGroupEnum
*
* @brief Enumerate groups on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The enumeration level used for the query (Currently only
* level 0 is supported)
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example group/group_enum.c
***************************************************************/
NET_API_STATUS NetGroupEnum(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetGroupSetInfo
*
* @brief Set Domain Group Information
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be modified
* @param[in] level The level defining the structure type in buf
* @param[in] buf The buffer containing a GROUP_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example group/group_setinfo.c
***************************************************************/
NET_API_STATUS NetGroupSetInfo(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buf /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetGroupGetInfo
*
* @brief Get Domain Group Information
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be queried
* @param[in] level The level defining the requested GROUP_INFO_X structure
* @param[out] buf The buffer containing a GROUP_INFO_X structure
* @return NET_API_STATUS
*
* example group/group_getinfo.c
***************************************************************/
NET_API_STATUS NetGroupGetInfo(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buf /* [out] [ref] */);
/************************************************************//**
*
* NetGroupAddUser
*
* @brief Add existing User to existing Domain Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be modified
* @param[in] user_name The name of the user that is going to be added to the
* group
* @return NET_API_STATUS
*
* example group/group_adduser.c
***************************************************************/
NET_API_STATUS NetGroupAddUser(const char * server_name /* [in] */,
const char * group_name /* [in] */,
const char * user_name /* [in] */);
/************************************************************//**
*
* NetGroupDelUser
*
* @brief Remove User from Domain Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be modified
* @param[in] user_name The name of the user that is going to be removed from
* the group
* @return NET_API_STATUS
*
* example group/group_deluser.c
***************************************************************/
NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
const char * group_name /* [in] */,
const char * user_name /* [in] */);
/************************************************************//**
*
* NetGroupGetUsers
*
* @brief Get Users for a group on a server
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The group name to enumerate users for
* @param[in] level The enumeration level used for the query
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example group/group_getusers.c
***************************************************************/
NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetGroupSetUsers
*
* @brief Set Users for a group on a server
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The group name to enumerate users for
* @param[in] level The enumeration level used for the query
* @param[in] buffer The buffer containing a X structure
* @param[in] num_entries The number of X entries in the buffer
* @return NET_API_STATUS
*
* example group/group_setusers.c
***************************************************************/
NET_API_STATUS NetGroupSetUsers(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t num_entries /* [in] */);
/************************************************************//**
*
* NetLocalGroupAdd
*
* @brief Create Local Group
*
* @param[in] server_name The server name to connect to
* @param[in] level The level used for the new group creation
* @param[in] buf The buffer containing the group structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example localgroup/localgroup_add.c
***************************************************************/
NET_API_STATUS NetLocalGroupAdd(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buf /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetLocalGroupDel
*
* @brief Delete Local Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be deleted
* @return NET_API_STATUS
*
* example localgroup/localgroup_del.c
***************************************************************/
NET_API_STATUS NetLocalGroupDel(const char * server_name /* [in] */,
const char * group_name /* [in] */);
/************************************************************//**
*
* NetLocalGroupGetInfo
*
* @brief Get Local Group Information
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be queried
* @param[in] level The level defining the requested LOCALGROUP_INFO_X structure
* @param[out] buf The buffer containing a LOCALGROUP_INFO_X structure
* @return NET_API_STATUS
*
* example localgroup/localgroup_getinfo.c
***************************************************************/
NET_API_STATUS NetLocalGroupGetInfo(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buf /* [out] [ref] */);
/************************************************************//**
*
* NetLocalGroupSetInfo
*
* @brief Set Local Group Information
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to be modified
* @param[in] level The level defining the requested LOCALGROUP_INFO_X structure
* @param[in] buf The buffer containing a LOCALGROUP_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example localgroup/localgroup_setinfo.c
***************************************************************/
NET_API_STATUS NetLocalGroupSetInfo(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buf /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetLocalGroupEnum
*
* @brief Enumerate local groups on a server
*
* @param[in] server_name The server name to connect to
* @param[in] level The enumeration level used for the query (Currently only
* level 0 is supported)
* @param[out] buffer The returned enumeration buffer
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of returned entries
* @param[out] total_entries The number of total entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example localgroup/localgroup_enum.c
***************************************************************/
NET_API_STATUS NetLocalGroupEnum(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetLocalGroupAddMembers
*
* @brief Add Members to a Local Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to modified
* @param[in] level The level defining the LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] buffer The buffer containing a LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] total_entries The number of LOCALGROUP_MEMBERS_INFO_X entries in
* the buffer
* @return NET_API_STATUS
*
* example localgroup/localgroup_addmembers.c
***************************************************************/
NET_API_STATUS NetLocalGroupAddMembers(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t total_entries /* [in] */);
/************************************************************//**
*
* NetLocalGroupDelMembers
*
* @brief Delete Members from a Local Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to modified
* @param[in] level The level defining the LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] buffer The buffer containing a LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] total_entries The number of LOCALGROUP_MEMBERS_INFO_X entries in
* the buffer
* @return NET_API_STATUS
*
* example localgroup/localgroup_delmembers.c
***************************************************************/
NET_API_STATUS NetLocalGroupDelMembers(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t total_entries /* [in] */);
/************************************************************//**
*
* NetLocalGroupGetMembers
*
* @brief Enumerate Members in a local group
*
* @param[in] server_name The server name to connect to
* @param[in] local_group_name The localgroup that is going to be queried
* @param[in] level The level defining the LOCALGROUP_MEMBERS_INFO_X structure
* @param[out] buffer The buffer containing a LOCALGROUP_MEMBERS_INFO_X
* structure
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of LOCALGROUP_MEMBERS_INFO_X entries in the buffer
* @param[out] total_entries The total number of LOCALGROUP_MEMBERS_INFO_X entries for that group
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example localgroup/localgroup_getmembers.c
***************************************************************/
NET_API_STATUS NetLocalGroupGetMembers(const char * server_name /* [in] */,
const char * local_group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetLocalGroupSetMembers
*
* @brief Set Members in a Local Group
*
* @param[in] server_name The server name to connect to
* @param[in] group_name The name of the group that is going to modified
* @param[in] level The level defining the LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] buffer The buffer containing a LOCALGROUP_MEMBERS_INFO_X structure
* @param[in] total_entries The number of LOCALGROUP_MEMBERS_INFO_X entries in
* the buffer
* @return NET_API_STATUS
*
* example localgroup/localgroup_setmembers.c
***************************************************************/
NET_API_STATUS NetLocalGroupSetMembers(const char * server_name /* [in] */,
const char * group_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t total_entries /* [in] */);
/************************************************************//**
*
* NetRemoteTOD
*
* @brief Query remote Time of Day
*
* @param[in] server_name The server name to connect to
* @param[out] buf The buffer containing a TIME_OF_DAY_INFO structure
* @return NET_API_STATUS
*
* example server/remote_tod.c
***************************************************************/
NET_API_STATUS NetRemoteTOD(const char * server_name /* [in] */,
uint8_t **buf /* [out] [ref] */);
/************************************************************//**
*
* NetShareAdd
*
* @brief Add Share
*
* @param[in] server_name The server name to connect to
* @param[in] level The level defining the requested SHARE_INFO_X structure
* @param[in] buffer The buffer containing a SHARE_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example share/share_add.c
***************************************************************/
NET_API_STATUS NetShareAdd(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetShareDel
*
* @brief Delete Share
*
* @param[in] server_name The server name to connect to
* @param[in] net_name The name of the share to delete
* @param[in] reserved
* @return NET_API_STATUS
*
* example share/share_del.c
***************************************************************/
NET_API_STATUS NetShareDel(const char * server_name /* [in] */,
const char * net_name /* [in] */,
uint32_t reserved /* [in] */);
/************************************************************//**
*
* NetShareEnum
*
* @brief Enumerate Shares
*
* @param[in] server_name The server name to connect to
* @param[in] level The level defining the SHARE_INFO_X structure
* @param[out] buffer The buffer containing a SHARE_INFO_X structure
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of SHARE_INFO_X entries in the buffer
* @param[out] total_entries The total number of SHARE_INFO_X entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example share/share_enum.c
***************************************************************/
NET_API_STATUS NetShareEnum(const char * server_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetShareGetInfo
*
* @brief Get Share Info
*
* @param[in] server_name The server name to connect to
* @param[in] net_name The name of the share to query
* @param[in] level The level defining the SHARE_INFO_X structure
* @param[out] buffer The buffer containing a SHARE_INFO_X structure
* @return NET_API_STATUS
*
* example share/share_getinfo.c
***************************************************************/
NET_API_STATUS NetShareGetInfo(const char * server_name /* [in] */,
const char * net_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetShareSetInfo
*
* @brief Set Share Info
*
* @param[in] server_name The server name to connect to
* @param[in] net_name The name of the share to query
* @param[in] level The level defining the SHARE_INFO_X structure
* @param[in] buffer The buffer containing a SHARE_INFO_X structure
* @param[out] parm_err The returned parameter error number if any
* @return NET_API_STATUS
*
* example share/share_setinfo.c
***************************************************************/
NET_API_STATUS NetShareSetInfo(const char * server_name /* [in] */,
const char * net_name /* [in] */,
uint32_t level /* [in] */,
uint8_t *buffer /* [in] [ref] */,
uint32_t *parm_err /* [out] [ref] */);
/************************************************************//**
*
* NetFileClose
*
* @brief Close a file
*
* @param[in] server_name The server name to connect to
* @param[in] fileid The fileid of the file that is going to be closed
* @return NET_API_STATUS
*
* example file/file_close.c
***************************************************************/
NET_API_STATUS NetFileClose(const char * server_name /* [in] */,
uint32_t fileid /* [in] */);
/************************************************************//**
*
* NetFileGetInfo
*
* @brief Close a file
*
* @param[in] server_name The server name to connect to
* @param[in] fileid The fileid of the file that is going to be closed
* @param[in] level The level of the FILE_INFO_X buffer
* @param[out] buffer The buffer containing a FILE_INFO_X structure
* @return NET_API_STATUS
*
* example file/file_getinfo.c
***************************************************************/
NET_API_STATUS NetFileGetInfo(const char * server_name /* [in] */,
uint32_t fileid /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* NetFileEnum
*
* @brief Enumerate Files
*
* @param[in] server_name The server name to connect to
* @param[in] base_path The
* @param[in] user_name The
* @param[in] level The level defining the FILE_INFO_X structure
* @param[out] buffer The buffer containing a FILE_INFO_X structure
* @param[in] prefmaxlen The requested maximal buffer size
* @param[out] entries_read The number of FILE_INFO_X entries in the buffer
* @param[out] total_entries The total number of FILE_INFO_X entries
* @param[in,out] resume_handle A handle passed in and returned for resuming
* operations
* @return NET_API_STATUS
*
* example file/file_enum.c
***************************************************************/
NET_API_STATUS NetFileEnum(const char * server_name /* [in] */,
const char * base_path /* [in] */,
const char * user_name /* [in] */,
uint32_t level /* [in] */,
uint8_t **buffer /* [out] [ref] */,
uint32_t prefmaxlen /* [in] */,
uint32_t *entries_read /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [ref] */);
/************************************************************//**
*
* NetShutdownInit
*
* @brief Start a machine shutdown
*
* @param[in] server_name The server name to connect to
* @param[in] message The message that is displayed before the shutdown
* @param[in] timeout The amount of seconds to wait until shutting down
* @param[in] force_apps Whether to close all applications before the shutdown
* @param[in] do_reboot Whether to reboot after the shutdown
* @return NET_API_STATUS
*
* example shutdown/shutdown_init.c
***************************************************************/
NET_API_STATUS NetShutdownInit(const char * server_name /* [in] */,
const char * message /* [in] */,
uint32_t timeout /* [in] */,
uint8_t force_apps /* [in] */,
uint8_t do_reboot /* [in] */);
/************************************************************//**
*
* NetShutdownAbort
*
* @brief Abort an initiated machine shutdown
*
* @param[in] server_name The server name to connect to
* @return NET_API_STATUS
*
* example shutdown/shutdown_abort.c
***************************************************************/
NET_API_STATUS NetShutdownAbort(const char * server_name /* [in] */);
/************************************************************//**
*
* I_NetLogonControl
*
* @brief Control various aspects of the NETLOGON service
*
* @param[in] server_name The server name to connect to
* @param[in] function_code The function code to call on the server
* @param[in] query_level The level of the NETLOGON_INFO structure returned
* @param[out] buffer The returned buffer containing the NETLOGON_INFO structure
* @return NET_API_STATUS
*
* example netlogon/netlogon_control.c
***************************************************************/
NET_API_STATUS I_NetLogonControl(const char * server_name /* [in] */,
uint32_t function_code /* [in] */,
uint32_t query_level /* [in] */,
uint8_t **buffer /* [out] [ref] */);
/************************************************************//**
*
* I_NetLogonControl2
*
* @brief Control various aspects of the NETLOGON service
*
* @param[in] server_name The server name to connect to
* @param[in] function_code The function code to call on the server
* @param[in] query_level The level of the NETLOGON_INFO structure returned
* @param[in] data The buffer containing information related to the function code
* @param[out] buffer The returned buffer containing the NETLOGON_INFO structure
* @return NET_API_STATUS
*
* example netlogon/netlogon_control2.c
***************************************************************/
NET_API_STATUS I_NetLogonControl2(const char * server_name /* [in] */,
uint32_t function_code /* [in] */,
uint32_t query_level /* [in] */,
uint8_t *data /* [in] [ref] */,
uint8_t **buffer /* [out] [ref] */);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __LIB_NETAPI_H__ */
|