NtApiDotNet.xml

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
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>NtApiDotNet</name>
    </assembly>
    <members>
        <member name="T:NtApiDotNet.CreateUserProcess">
            <summary>
            Class to create a new user process using the native APIs.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ImagePath">
            <summary>
            Path to the executable to start.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ConfigImagePath">
            <summary>
            Path to the executable to start which is passed in the process configuration.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.CommandLine">
            <summary>
            Command line
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.Environment">
            <summary>
            Prepared environment block.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.WindowTitle">
            <summary>
            Title of the main window.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.DllPath">
            <summary>
            Path to DLLs.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.CurrentDirectory">
            <summary>
            Current directory for new process
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.DesktopInfo">
            <summary>
            Desktop information value
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ShellInfo">
            <summary>
            Shell information value
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.RuntimeData">
            <summary>
            Runtime data.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ProhibitedImageCharacteristics">
            <summary>
            Prohibited image characteristics for new process
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.AdditionalFileAccess">
            <summary>
            Additional file access for opened executable file.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ProcessFlags">
            <summary>
            Process create flags.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ThreadFlags">
            <summary>
            Thread create flags.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.InitFlags">
            <summary>
            Initialization flags
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.RestrictChildProcess">
            <summary>
            Restrict new child processes
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.OverrideRestrictChildProcess">
            <summary>
            Override restrict child process
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.AdditionalAttributes">
            <summary>
            Extra process/thread attributes
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcess.ReturnOnError">
            <summary>
            Return on error instead of throwing an exception.
            </summary>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcess.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcess.Fork">
            <summary>
            For the current process
            </summary>
            <returns>The new forked process result</returns>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcess.Start(System.String)">
            <summary>
            Start the new process
            </summary>
            <param name="image_path">The image path to the file to execute</param>
            <returns>The result of the process creation</returns>
        </member>
        <member name="T:NtApiDotNet.CreateUserProcessResult">
            <summary>
            Result from a native create process call.
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.Process">
            <summary>
            Handle to the process
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.Thread">
            <summary>
            Handle to the initial thread
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.ImageFile">
            <summary>
            Handle to the image file
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.SectionHandle">
            <summary>
            Handle to the image section
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.IFEOKeyHandle">
            <summary>
            Handle to the IFEO key (if it exists)
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.ImageInfo">
            <summary>
            Image information
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.ClientId">
            <summary>
            Client ID of process and thread
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.ProcessId">
            <summary>
            Process ID
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.ThreadId">
            <summary>
            Thread ID
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.Status">
            <summary>
            Create status
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.Success">
            <summary>
            True if create succeeded
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.CreateInfo">
            <summary>
            Result of the create information
            </summary>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.CreateState">
            <summary>
            Creation state
            </summary>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcessResult.Terminate(NtApiDotNet.NtStatus)">
            <summary>
            Terminate the process
            </summary>
            <param name="exitcode">Exit code for termination</param>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcessResult.Resume">
            <summary>
            Resume initial thread
            </summary>
            <returns>The suspend count</returns>
        </member>
        <member name="P:NtApiDotNet.CreateUserProcessResult.TerminateOnDispose">
            <summary>
            Set to true to terminate process on disposal
            </summary>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcessResult.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:NtApiDotNet.CreateUserProcessResult.Dispose">
            <summary>
            Dispose
            </summary>
        </member>
        <member name="T:NtApiDotNet.DisposableList`1">
            <summary>
            Represents a list where the elements can be trivially disposed in one go.
            </summary>
            <typeparam name="T">An IDisposable implementing type</typeparam>
        </member>
        <member name="M:NtApiDotNet.DisposableList`1.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:NtApiDotNet.DisposableList`1.#ctor(System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="capacity">The initial capacity of the list</param>
        </member>
        <member name="M:NtApiDotNet.DisposableList`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Constructor
            </summary>
            <param name="collection">A collection to initialize the list</param>
        </member>
        <member name="M:NtApiDotNet.DisposableList`1.Dispose">
            <summary>
            Dispose method
            </summary>
        </member>
        <member name="T:NtApiDotNet.SafeHandleList">
            <summary>
            Disposable list of safe handles
            </summary>
        </member>
        <member name="M:NtApiDotNet.SafeHandleList.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:NtApiDotNet.SafeHandleList.#ctor(System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="capacity">The initial capacity of the list</param>
        </member>
        <member name="M:NtApiDotNet.SafeHandleList.#ctor(System.Collections.Generic.IEnumerable{System.Runtime.InteropServices.SafeHandle})">
            <summary>
            Constructor
            </summary>
            <param name="collection">A collection to initialize the list</param>
        </member>
        <member name="M:NtApiDotNet.SafeHandleList.DangerousTakeCopy">
            <summary>
            Take a copy of the safe handle list so the the original can be disposed.
            </summary>
            <returns>The copy of the handle list.</returns>
        </member>
        <member name="T:NtApiDotNet.EaBufferEntry">
            <summary>
            A single EA entry.
            </summary>
        </member>
        <member name="P:NtApiDotNet.EaBufferEntry.Name">
            <summary>
            Name of the entry
            </summary>
        </member>
        <member name="P:NtApiDotNet.EaBufferEntry.Data">
            <summary>
            Data associated with the entry
            </summary>
        </member>
        <member name="M:NtApiDotNet.EaBufferEntry.#ctor(System.String,System.Byte[])">
            <summary>
            Constructor
            </summary>
            <param name="name">The name of the entry</param>
            <param name="data">Data associated with the entry</param>
        </member>
        <member name="M:NtApiDotNet.EaBufferEntry.ToString">
            <summary>
            Convery entry to a string
            </summary>
            <returns>The entry as a string</returns>
        </member>
        <member name="T:NtApiDotNet.EaBuffer">
            <summary>
            Class to create an Extended Attributes buffer for NtCreateFile
            </summary>
        </member>
        <member name="M:NtApiDotNet.EaBuffer.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:NtApiDotNet.EaBuffer.#ctor(System.Byte[])">
            <summary>
            Constructor from a binary EA buffer
            </summary>
            <param name="buffer">The EA buffer to parse</param>
        </member>
        <member name="M:NtApiDotNet.EaBuffer.AddEntry(System.String,System.Byte[])">
            <summary>
            Add a new EA entry
            </summary>
            <param name="name">The name of the entry</param>
            <param name="data">The associated data</param>
        </member>
        <member name="M:NtApiDotNet.EaBuffer.ToByteArray">
            <summary>
            Convert to a byte array
            </summary>
            <returns>The byte array</returns>
        </member>
        <member name="T:NtApiDotNet.AlpcAccessRights">
            <summary>
            Access rights for ALPC
            </summary>
        </member>
        <member name="T:NtApiDotNet.AlpcPortInformationClass">
            <summary>
            ALPC Port Information Class
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtAlpc">
            <summary>
            Unused.
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtAtom">
            <summary>
            Class to handle NT atoms
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtAtom.Atom">
            <summary>
            The atom value
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtAtom.Add(System.String)">
            <summary>
            Add an atom name
            </summary>
            <param name="name">The name to add</param>
            <returns>A reference to the atom</returns>
        </member>
        <member name="P:NtApiDotNet.NtAtom.Name">
            <summary>
            Get the name of the stom
            </summary>
            <returns>The name of the atom</returns>
        </member>
        <member name="M:NtApiDotNet.NtAtom.GetAtoms">
            <summary>
            Enumerate all atoms.
            </summary>
            <returns>An enumeration of all atoms on the system.</returns>
        </member>
        <member name="T:NtApiDotNet.NtDebug">
            <summary>
            Class representing a NT Debug object
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtDebug.Create(System.String,NtApiDotNet.NtObject)">
            <summary>
            Create a debug object
            </summary>
            <param name="name">The debug object name (can be null)</param>
            <param name="root">The root directory for relative names</param>
            <returns>The debug object</returns>
        </member>
        <member name="M:NtApiDotNet.NtDebug.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.DebugAccessRights)">
            <summary>
            Create a debug object
            </summary>
            <param name="desired_access">Desired access for the debug object</param>
            <param name="object_attributes">Object attributes for debug object</param>
            <returns>The debug object</returns>
        </member>
        <member name="M:NtApiDotNet.NtDebug.Create">
            <summary>
            Create a debug object
            </summary>
            <returns>The debug object</returns>
        </member>
        <member name="T:NtApiDotNet.DirectoryAccessRights">
            <summary>
            Directory access rights.
            </summary>
        </member>
        <member name="T:NtApiDotNet.BoundaryDescriptorFlags">
            <summary>
            Flags for a boundary descriptor
            </summary>
        </member>
        <member name="F:NtApiDotNet.BoundaryDescriptorFlags.None">
            <summary>
            None
            </summary>
        </member>
        <member name="F:NtApiDotNet.BoundaryDescriptorFlags.AddPackageSid">
            <summary>
            Automatically add the AppContainer package SID to the boundary
            </summary>
        </member>
        <member name="T:NtApiDotNet.BoundaryDescriptor">
            <summary>
            Class which represents a private namespace boundary descriptor
            </summary>    
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.#ctor(System.String,NtApiDotNet.BoundaryDescriptorFlags)">
            <summary>
            Constructor
            </summary>
            <param name="name">The name of the boundary</param>
            <param name="flags">Additional flags for the boundary</param>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="name">The name of the boundary</param>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.AddSid(NtApiDotNet.Sid)">
            <summary>
            Add a SID to the boundary descriptor.
            </summary>
            <remarks>This SID is used in an access check when creating or deleting private namespaces.</remarks>
            <param name="sid">The SID to add.</param>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.AddIntegrityLevel(NtApiDotNet.TokenIntegrityLevel)">
            <summary>
            Add an integrity level to the boundary descriptor.
            </summary>
            <remarks>This integrity level is used in an access check when creating or deleting private namespaces.</remarks>
            <param name="integrity_level">The integrity level to add.</param>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.AddSids(System.Collections.Generic.IEnumerable{NtApiDotNet.Sid})">
            <summary>
            Add a list of SIDs to the boundary descriptor. 
            </summary>
            <param name="sids">The SIDs to add. This can include normal and integrity level SIDs</param>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.AddSids(NtApiDotNet.Sid,NtApiDotNet.Sid[])">
            <summary>
            Add a list of SIDs to the boundary descriptor. 
            </summary>
            <param name="sid">The first SID to add</param>
            <param name="sids">Additional SIDs</param>
        </member>
        <member name="P:NtApiDotNet.BoundaryDescriptor.Handle">
            <summary>
            The handle to the boundary descriptor. 
            </summary>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.CreateFromString(System.String)">
            <summary>
            Create a boundary descriptor from a string representation.
            </summary>
            <param name="descriptor">A boundary descriptor string of the form [SID[:SID...]@]NAME where SID is an SDDL format SID.</param>
            <returns>The new boundary descriptor.</returns>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:NtApiDotNet.BoundaryDescriptor.Dispose">
            <summary>
            Dispose
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtDirectory">
            <summary>
            NT Directory Object class
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.DirectoryAccessRights)">
            <summary>
            Open a directory object
            </summary>
            <param name="obj_attributes">The object attributes to use for the open call.</param>
            <param name="desired_access">Access rights for directory object</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Throw on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.DirectoryAccessRights)">
            <summary>
            Open a directory object by name
            </summary>
            <param name="name">The directory object to open</param>
            <param name="root">Optional root directory to parse from</param>
            <param name="desired_access">Access rights for directory object</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Throw on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Open(System.String)">
            <summary>
            Open a directory object by full name
            </summary>
            <param name="name">The directory object to open</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Throw on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.DirectoryAccessRights,NtApiDotNet.NtDirectory)">
            <summary>
            Create a directory object with a shadow
            </summary>
            <param name="obj_attributes">The object attributes to create the directory with</param>
            <param name="desired_access">The desired access to the directory</param>
            <param name="shadow_dir">The shadow directory</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.DirectoryAccessRights)">
            <summary>
            Create a directory object
            </summary>
            <param name="name">The directory object to create, if null will create a unnamed directory object</param>
            <param name="desired_access">The desired access to the directory</param>
            <param name="root">Root directory from where to start the creation operation</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.DirectoryAccessRights,NtApiDotNet.NtDirectory)">
            <summary>
            Create a directory object with a shadow
            </summary>
            <param name="name">The directory object to create, if null will create a unnamed directory object</param>
            <param name="desired_access">The desired access to the directory</param>
            <param name="root">Root directory from where to start the creation operation</param>
            <param name="shadow_dir">The shadow directory</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Create(System.String)">
            <summary>
            Create a directory object 
            </summary>
            <param name="name">The directory object to create, if null will create a unnamed directory object</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Query">
            <summary>
            Query the directory for a list of entries.
            </summary>
            <returns>The list of entries.</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenSessionDirectory(System.Int32)">
            <summary>
            Open a session directory.
            </summary>
            <param name="sessionid">The session ID to open</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenSessionDirectory">
            <summary>
            Open the current session directory.
            </summary>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenBaseNamedObjects(System.Int32)">
            <summary>
            Open basenamedobjects for a session.
            </summary>
            <param name="sessionid">The session ID to open</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenBaseNamedObjects">
            <summary>
            Open basenamedobjects for current session.
            </summary>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenDosDevicesDirectory(NtApiDotNet.NtToken)">
            <summary>
            Open dos devices directory for a token.
            </summary>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenDosDevicesDirectory">
            <summary>
            Open dos devices directory for current effective token.
            </summary>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.CreatePrivateNamespace(NtApiDotNet.ObjectAttributes,NtApiDotNet.BoundaryDescriptor,NtApiDotNet.DirectoryAccessRights)">
            <summary>
            Create a private namespace directory.
            </summary>
            <param name="obj_attributes">Object attributes for the directory</param>
            <param name="boundary_descriptor">Boundary descriptor for the namespace</param>
            <param name="desired_access">Desired access for the directory</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.CreatePrivateNamespace(NtApiDotNet.BoundaryDescriptor)">
            <summary>
            Create a private namespace directory.
            </summary>
            <param name="boundary_descriptor">Boundary descriptor for the namespace</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenPrivateNamespace(NtApiDotNet.ObjectAttributes,NtApiDotNet.BoundaryDescriptor,NtApiDotNet.DirectoryAccessRights)">
            <summary>
            Open a private namespace directory.
            </summary>
            <param name="obj_attributes">Object attributes for the directory</param>
            <param name="boundary_descriptor">Boundary descriptor for the namespace</param>
            <param name="desired_access">Desired access for the directory</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.OpenPrivateNamespace(NtApiDotNet.BoundaryDescriptor)">
            <summary>
            Open a private namespace directory.
            </summary>
            <param name="boundary_descriptor">Boundary descriptor for the namespace</param>
            <returns>The directory object</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.Delete">
            <summary>
            Deletes a private namespace. If not a private namespace this does nothing.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.GetDirectoryEntry(System.String,System.String,System.Boolean)">
            <summary>
            Get a directory entry based on a name.
            </summary>
            <param name="name">The name of the entry.</param>
            <param name="typename">The typename to verify against, can be null.</param>
            <param name="case_sensitive">True if look up is case sensitive.</param>
            <returns>The directory entry, or null if it can't be found.</returns> </member> <member name="M:NtApiDotNet.NtDirectory.GetDirectoryEntry(System.String)"> <summary> Get a directory entry based on a name. </summary> <param name="name">The name of the entry.</param> <returns>The directory entry, or null if it can't be found.</returns>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.DirectoryExists(System.String,NtApiDotNet.NtDirectory)">
            <summary>
            Returns whether a directory exists for this path.
            </summary>
            <param name="path">The path to the entry.</param>
            <param name="root">The root directory.</param>
            <returns>True if the directory exists for the specified path.</returns>
        </member>
        <member name="M:NtApiDotNet.NtDirectory.GetDirectoryEntryType(System.String,NtApiDotNet.NtObject)">
            <summary>
            Get the type of a directory entry by path.
            </summary>
            <param name="path">The path to the directory entry</param>
            <param name="root">The root object to look up if path is relative</param>
            <returns>The type name, or null if it can't be found.</returns> </member> <member name="M:NtApiDotNet.NtDirectory.DirectoryExists(System.String)"> <summary> Check whether a directory is exists relative to the current directory. </summary> <param name="relative_path">Relative path to directory</param> <returns>True if the directory exists.</returns> </member> <member name="T:NtApiDotNet.NtEvent"> <summary> Class representing a NT Event object </summary> </member> <member name="M:NtApiDotNet.NtEvent.Set"> <summary> Set the event state </summary> <returns>The previous state of the event</returns> </member> <member name="M:NtApiDotNet.NtEvent.Clear"> <summary> Clear the event state </summary> </member> <member name="M:NtApiDotNet.NtEvent.Pulse"> <summary> Pulse the event state. </summary> <returns>The previous state of the event</returns> </member> <member name="M:NtApiDotNet.NtEvent.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.EventType,System.Boolean)"> <summary> Create an event object </summary> <param name="name">The path to the event</param> <param name="root">The root object for relative path names</param> <param name="type">The type of the even</param> <param name="initial_state">The initial state of the event</param> <returns>The event object</returns> </member> <member name="M:NtApiDotNet.NtEvent.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.EventType,System.Boolean,NtApiDotNet.EventAccessRights)"> <summary> Create an event object </summary> <param name="object_attributes">The event object attributes</param> <param name="type">The type of the event</param> <param name="initial_state">The initial state of the event</param> <param name="desired_access">The desired access for the event</param> <returns>The event object</returns> </member> <member name="M:NtApiDotNet.NtEvent.Create(System.String,NtApiDotNet.EventType,System.Boolean)"> <summary> Create an event object </summary> <param name="name">The path to the event</param> <param name="type">The type of the even</param> <param name="initial_state">The initial state of the event</param> <returns>The event object</returns> </member> <member name="M:NtApiDotNet.NtEvent.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.EventAccessRights)"> <summary> Open an event object </summary> <param name="name">The path to the event</param> <param name="root">The root object for relative path names</param> <param name="desired_access">The desired access for the event</param> <returns>The event object</returns> </member> <member name="M:NtApiDotNet.NtEvent.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.EventAccessRights)"> <summary> Open an event object </summary> <param name="object_attributes">The event object attributes</param> <param name="desired_access">The desired access for the event</param> <returns></returns> </member> <member name="M:NtApiDotNet.NtEvent.Open(System.String,NtApiDotNet.NtObject)"> <summary> Open an event object </summary> <param name="name">The path to the event</param> <param name="root">The root object for relative path names</param> <returns>The event object</returns> </member> <member name="M:NtApiDotNet.NtEvent.Open(System.String)"> <summary> Open an event object </summary> <param name="name">The path to the event</param> <returns>The event object</returns> </member> <member name="T:NtApiDotNet.NtException"> <summary> Exception class representing an NT status error. </summary> </member> <member name="M:NtApiDotNet.NtException.#ctor(NtApiDotNet.NtStatus)"> <summary> Constructor </summary> <param name="status">Status result</param> </member> <member name="P:NtApiDotNet.NtException.Status"> <summary> Returns the contained NT status code </summary> </member> <member name="P:NtApiDotNet.NtException.Message"> <summary> Returns a string form of the NT status code. </summary> </member> <member name="M:NtApiDotNet.NtException.AsWin32Exception"> <summary> Convert this exception to a corresponding Win32Exception </summary> <returns></returns> </member> <member name="T:NtApiDotNet.NtIoControlCode"> <summary> Represnt a NT file IO control code. </summary> </member> <member name="P:NtApiDotNet.NtIoControlCode.DeviceType"> <summary> Type of device </summary> </member> <member name="P:NtApiDotNet.NtIoControlCode.Function"> <summary> Function number </summary> </member> <member name="P:NtApiDotNet.NtIoControlCode.Method"> <summary> Buffering method </summary> </member> <member name="P:NtApiDotNet.NtIoControlCode.Access"> <summary> Access of file handle </summary> </member> <member name="M:NtApiDotNet.NtIoControlCode.#ctor(NtApiDotNet.FileDeviceType,System.Int32,NtApiDotNet.FileControlMethod,NtApiDotNet.FileControlAccess)"> <summary> Constructor </summary> <param name="device_type">Type of device</param> <param name="function">Function number</param> <param name="method">Buffering method</param> <param name="access">Access of file handle</param> </member> <member name="M:NtApiDotNet.NtIoControlCode.#ctor(System.Int32)"> <summary> Constructor </summary> <param name="code">Raw IO control code to convert.</param> </member> <member name="M:NtApiDotNet.NtIoControlCode.ToInt32"> <summary> Convert the io control code to an Int32 </summary> <returns>The int32 version of the code</returns> </member> <member name="T:NtApiDotNet.NtFile"> <summary> Class representing a NT File object </summary> </member> <member name="M:NtApiDotNet.NtFile.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.FileAccessRights,NtApiDotNet.FileAttributes,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions,NtApiDotNet.FileDisposition,NtApiDotNet.EaBuffer)"> <summary> Create a new file </summary> <param name="obj_attributes">The object attributes</param> <param name="desired_access">Desired access for the file</param> <param name="file_attributes">Attributes for the file</param> <param name="share_access">Share access for the file</param> <param name="open_options">Open options for file</param> <param name="disposition">Disposition when opening the file</param> <param name="ea_buffer">Extended Attributes buffer</param> <returns>The created/opened file object.</returns> </member> <member name="M:NtApiDotNet.NtFile.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.FileAccessRights,NtApiDotNet.FileAttributes,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions,NtApiDotNet.FileDisposition,NtApiDotNet.EaBuffer)"> <summary> Create a new file </summary> <param name="name">The path to the file</param> <param name="root">A root object to parse relative filenames</param> <param name="desired_access">Desired access for the file</param> <param name="file_attributes">Attributes for the file</param> <param name="share_access">Share access for the file</param> <param name="open_options">Open options for file</param> <param name="disposition">Disposition when opening the file</param> <param name="ea_buffer">Extended Attributes buffer</param> <returns>The created/opened file object.</returns> </member> <member name="M:NtApiDotNet.NtFile.Create(System.String,NtApiDotNet.FileAccessRights,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions,NtApiDotNet.FileDisposition,NtApiDotNet.EaBuffer)"> <summary> Create a new file </summary> <param name="name">The path to the file</param> <param name="desired_access">Desired access for the file</param> <param name="share_access">Share access for the file</param> <param name="open_options">Open options for file</param> <param name="disposition">Disposition when opening the file</param> <param name="ea_buffer">Extended Attributes buffer</param> <returns>The created/opened file object.</returns> </member> <member name="M:NtApiDotNet.NtFile.DeviceIoControl(System.Int32,System.Runtime.InteropServices.SafeBuffer,System.Runtime.InteropServices.SafeBuffer)"> <summary> Send an Device IO Control code to the file driver </summary> <param name="control_code">The control code</param> <param name="input_buffer">Input buffer can be null</param> <param name="output_buffer">Output buffer can be null</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.FsControl(System.Int32,System.Runtime.InteropServices.SafeBuffer,System.Runtime.InteropServices.SafeBuffer)"> <summary> Send an File System Control code to the file driver </summary> <param name="control_code">The control code</param> <param name="input_buffer">Input buffer</param> <param name="output_buffer"></param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.FileAccessRights,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions)"> <summary> Open a file </summary> <param name="obj_attributes">The object attributes</param> <param name="DesiredAccess">The desired access for the file handle</param> <param name="ShareAccess">The file share access</param> <param name="OpenOptions">File open options</param> <returns>The opened file</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.FileAccessRights,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions)"> <summary> Open a file </summary> <param name="path">The path to the file</param> <param name="root">The root directory if path is relative.</param> <param name="DesiredAccess">The desired access for the file handle</param> <param name="ShareAccess">The file share access</param> <param name="OpenOptions">File open options</param> <returns>The opened file</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtFile.FileId"> <summary> Get object ID for current file </summary> <returns>The object ID as a string</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtFile.FileAttributes"> <summary> Get the attributes of a file. </summary> <returns>The file attributes</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.GetFileId(System.String)"> <summary> Get the object ID of a file as a string </summary> <param name="path">The path to the file</param> <returns>The object ID as a string</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.OpenFileById(NtApiDotNet.NtFile,System.String,NtApiDotNet.FileAccessRights,NtApiDotNet.FileShareMode,NtApiDotNet.FileOpenOptions)"> <summary> Open a file by its object ID </summary> <param name="volume">A handle to the volume on which the file resides.</param> <param name="id">The object ID as a binary string</param> <param name="DesiredAccess">The desired access for the file</param> <param name="ShareAccess">File share access</param> <param name="OpenOptions">Open options.</param> <returns>The opened file object</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.Delete"> <summary> Delete the file. Must have been opened with DELETE access. </summary> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.CreateHardlink(System.String,NtApiDotNet.NtFile)"> <summary> Create a new hardlink to this file. </summary> <param name="linkname">The target NT path.</param> <param name="root">The root directory if linkname is relative</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.CreateHardlink(System.String)"> <summary> Create a new hardlink to this file. </summary> <param name="linkname">The target absolute NT path.</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.CreateHardlink(System.String,System.String)"> <summary> Create a hardlink to another file. </summary> <param name="path">The file to hardlink to.</param> <param name="linkname">The desintation hardlink path.</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtFile.ToStream"> <summary> Convert this NtFile to a FileStream for reading/writing. </summary> <remarks>The stream must be closed separately from the NtFile.</remarks> <returns>The file stream.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtFile.Win32PathName"> <summary> Get the Win32 path name for the file. </summary> <returns>The path, String.Empty on error.</returns> </member> <member name="P:NtApiDotNet.NtFile.DeviceType"> <summary> Get the low-level device type of the file. </summary> <returns>The file device type.</returns> </member> <member name="P:NtApiDotNet.NtFile.FullPath"> <summary> Get the name of the file. </summary> <returns>The name of the file.</returns> </member> <member name="T:NtApiDotNet.FileUtils"> <summary> Utility functions for files </summary> </member> <member name="M:NtApiDotNet.FileUtils.DosFileNameToNt(System.String)"> <summary> Convert a DOS filename to an absolute NT filename </summary> <param name="filename">The filename, can be relative</param> <returns>The NT filename</returns> </member> <member name="M:NtApiDotNet.FileUtils.DosFileNameToObjectAttributes(System.String)"> <summary> Convert a DOS filename to an NT filename and get as an ObjectAttributes structure </summary> <param name="filename">The filename</param> <returns>The object attributes</returns> </member> <member name="M:NtApiDotNet.FileUtils.DosFileNameToUnicodeString(System.String)"> <summary> Convert a DOS filename to a UNICODE_STRING structure </summary> <param name="filename">The DOS filename</param> <returns>The UNICODE_STRING</returns> </member> <member name="M:NtApiDotNet.FileUtils.GetDosPathType(System.String)"> <summary> Get type of DOS path </summary> <param name="filename">The DOS filename</param> <returns>The type of DOS path</returns> </member> <member name="T:NtApiDotNet.NtJob"> <summary> Class representing a NT Job object </summary> </member> <member name="M:NtApiDotNet.NtJob.Create(System.String,NtApiDotNet.NtObject)"> <summary> Create a job object </summary> <param name="path">The path to the job object (can be null)</param> <param name="root">The root object when path is relative</param> <returns>The Job object</returns> </member> <member name="M:NtApiDotNet.NtJob.CreateSilo"> <summary> Convert Job object into a Silo </summary> </member> <member name="M:NtApiDotNet.NtJob.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.JobAccessRights)"> <summary> Open a job object </summary> <param name="path">The path to the job object</param> <param name="root">The root object when path is relative</param> <param name="desired_access">Desired access for the job object</param> <returns>The Job object</returns> </member> <member name="T:NtApiDotNet.NtKeyValue"> <summary> Class representing a single Key value </summary> </member> <member name="P:NtApiDotNet.NtKeyValue.Name"> <summary> Name of the value </summary> </member> <member name="P:NtApiDotNet.NtKeyValue.Type"> <summary> Type of the value </summary> </member> <member name="P:NtApiDotNet.NtKeyValue.Data"> <summary> Raw data for the value </summary> </member> <member name="P:NtApiDotNet.NtKeyValue.TitleIndex"> <summary> Title index for the value </summary> </member> <member name="M:NtApiDotNet.NtKeyValue.ToString"> <summary> Convert the value to a string </summary> <returns>The value as a string</returns> </member> <member name="M:NtApiDotNet.NtKeyValue.ToObject"> <summary> Convert value to an object </summary> <returns>The value as an object</returns> </member> <member name="T:NtApiDotNet.NtKey"> <summary> Class to represent an NT Key object </summary> </member> <member name="M:NtApiDotNet.NtKey.LoadKey(System.String,System.String,NtApiDotNet.LoadKeyFlags)"> <summary> Load a new hive </summary> <param name="destination">The destination path</param> <param name="filename">The path to the hive</param> <param name="flags">Load flags</param> <returns>The opened root key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.LoadKey(NtApiDotNet.ObjectAttributes,NtApiDotNet.ObjectAttributes,NtApiDotNet.LoadKeyFlags,NtApiDotNet.KeyAccessRights)"> <summary> Load a new hive </summary> <param name="key">Object attributes for the key name</param> <param name="file">Object attributes for the path to the hive file</param> <param name="flags">Load flags</param> <param name="desired_access">Desired access for the root key</param> <returns>The opened root key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.KeyAccessRights,NtApiDotNet.KeyCreateOptions)"> <summary> Create a new Key </summary> <param name="obj_attributes">Object attributes for the key name</param> <param name="desired_access">Desired access for the root key</param> <param name="options">Create options</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.KeyAccessRights,NtApiDotNet.KeyCreateOptions)"> <summary> Create a new Key </summary> <param name="key_name">Path to the key to create</param> <param name="root">Root key if key_name is relative</param> <param name="desired_access">Desired access for the root key</param> <param name="options">Create options</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Create(System.String)"> <summary> Create a new Key </summary> <param name="key_name">Path to the key to create</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Create(System.String,NtApiDotNet.KeyAccessRights,NtApiDotNet.KeyCreateOptions)"> <summary> Create a new Key </summary> <param name="key_name">Path to the key to create</param> <param name="desired_access">Desired access for the root key</param> <param name="options">Create options</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.KeyAccessRights)"> <summary> Open a Key </summary> <param name="obj_attributes">Object attributes for the key name</param> <param name="desired_access">Desired access for the root key</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.KeyAccessRights)"> <summary> Open a Key </summary> <param name="key_name">Path to the key to open</param> <param name="root">Root key if key_name is relative</param> <param name="desired_access">Desired access for the root key</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Delete"> <summary> Delete the key </summary> </member> <member name="M:NtApiDotNet.NtKey.SetValue(System.String,NtApiDotNet.RegistryValueType,System.Byte[])"> <summary> Set a resistry value </summary> <param name="value_name">The name of the value</param> <param name="type">The type of the value</param> <param name="data">The raw value data</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.SetValue(System.String,NtApiDotNet.RegistryValueType,System.String)"> <summary> Set a string resistry value </summary> <param name="value_name">The name of the value</param> <param name="type">The type of the value</param> <param name="data">The value data</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.SetValue(System.String,System.UInt32)"> <summary> Set a DWORD resistry value </summary> <param name="value_name">The name of the value</param> <param name="data">The value data</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.SetValue(System.String,System.UInt64)"> <summary> Set a QWORD resistry value </summary> <param name="value_name">The name of the value</param> <param name="data">The value data</param> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.QueryValue(System.String)"> <summary> Query a value by name </summary> <param name="value_name">The name of the value</param> <returns>The value information</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.QueryValues"> <summary> Query all values for this key </summary> <returns>A list of values</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.QueryKeys"> <summary> Query all subkey names </summary> <returns>The list of subkey names</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.QueryAccessibleKeys(NtApiDotNet.KeyAccessRights)"> <summary> Return a list of subkeys which can be accessed. </summary> <param name="desired_access">The required access rights for the subkeys</param> <returns>The disposable list of subkeys.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.CreateSymbolicLink(System.String,NtApiDotNet.NtKey,System.String)"> <summary> Create a registry key symbolic link </summary> <param name="rootkey">Root key if path is relative</param> <param name="path">Path to the key to create</param> <param name="target">Target resistry path</param> <returns>The create symbolic key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Open(System.String)"> <summary> Open a key </summary> <param name="key_name">The path to the key to open</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.Open(System.String,NtApiDotNet.KeyAccessRights)"> <summary> Open a key </summary> <param name="key_name">The path to the key to open</param> <param name="desired_access">Access rights for the key</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetMachineKey"> <summary> Open the machine key </summary> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetUserKey"> <summary> Open the user key </summary> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetUserKey(NtApiDotNet.Sid)"> <summary> Open a specific user key </summary> <param name="sid">The SID fo the user to open</param> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetCurrentUserKey"> <summary> Open the current user key </summary> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetRootKey"> <summary> Open the root key </summary> <returns>The opened key</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.ToRegistryKey"> <summary> Convert object to a .NET RegistryKey object </summary> <returns>The registry key object</returns> </member> <member name="P:NtApiDotNet.NtKey.LastWriteTime"> <summary> Get key last write time </summary> <returns>The last write time</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.SubKeyCount"> <summary> Get key subkey count </summary> <returns>The subkey count</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtKey.GetValueCount"> <summary> Get key value count </summary> <returns>The key value count</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.TitleIndex"> <summary> Get the key title index </summary> <returns>The key title index</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.ClassName"> <summary> Get the key class name </summary> <returns>The key class name</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.MaxValueNameLength"> <summary> Get the maximum key value name length </summary> <returns>The maximum key value name length</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.MaxValueDataLength"> <summary> Get the maximum key value data length </summary> <returns>The maximum key value data length</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.MaxNameLength"> <summary> Get the maximum subkey name length </summary> <returns>The maximum subkey name length</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="P:NtApiDotNet.NtKey.MaxClassLength"> <summary> Get the maximum class name length </summary> <returns>The maximum class name length</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="T:NtApiDotNet.NtLocale"> <summary> Class to access NT locale information </summary> </member> <member name="M:NtApiDotNet.NtLocale.GetNlsSectionPtr(NtApiDotNet.NlsSectionType,System.Int32)"> <summary> Get mapped NLS section </summary> <param name="type">The type of section</param> <param name="codepage">The codepage number</param> <returns>The mapped section if it exists.</returns> </member> <member name="M:NtApiDotNet.NtLocale.GetDefaultLocal(System.Boolean)"> <summary> Get default locale ID </summary> <param name="thread">True if the locale should be the thread's, otherwise the systems</param>
            <returns>The locale ID</returns>
        </member>
        <member name="M:NtApiDotNet.NtLocale.SetDefaultLocale(System.Boolean,System.UInt32)">
            <summary>
            Set default locale
            </summary>
            <param name="thread">True if the locale should be the thread's, otherwise the systems</param> <param name="locale">The locale ID</param> </member> <member name="T:NtApiDotNet.NtMutant"> <summary> Class representing a NT Mutant object </summary> </member> <member name="M:NtApiDotNet.NtMutant.Create(System.String,NtApiDotNet.NtObject,System.Boolean)"> <summary> Create a new mutant </summary> <param name="path">The path to the mutant</param> <param name="root">The root object if path is relative</param> <param name="initial_owner">True to set current thread as initial owner</param> <returns>The opened mutant</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtMutant.Create(NtApiDotNet.ObjectAttributes,System.Boolean,NtApiDotNet.MutantAccessRights)"> <summary> Create a new mutant </summary> <param name="object_attributes">Object attributes</param> <param name="initial_owner">True to set current thread as initial owner</param> <param name="desired_access">Desired access for mutant</param> <returns>The opened mutant</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtMutant.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.MutantAccessRights)"> <summary> Open a mutant </summary> <param name="path">The path to the mutant</param> <param name="root">The root object if path is relative</param> <param name="desired_access">Desired access for mutant</param> <returns>The opened mutant</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtMutant.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.MutantAccessRights)"> <summary> Open a mutant </summary> <param name="object_attributes">Object attributes</param> <param name="desired_access">Desired access for mutant</param> <returns>The opened mutant</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtMutant.Release"> <summary> Release the mutant </summary> <returns>The previous release count</returns> </member> <member name="T:NtApiDotNet.NtRegistryTransaction"> <summary> Class to represent a registry transaction object </summary> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.RegistryTransactionAccessRights)"> <summary> Create a transaction </summary> <param name="object_attributes">The object attributes</param> <param name="desired_access">Desired access for the handle</param> <returns>The opened transaction</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Create(System.String,NtApiDotNet.NtObject)"> <summary> Create a transaction </summary> <param name="path">The path of the transaction</param> <param name="root">The root if path is relative</param> <returns>The opened transaction</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Create(System.String)"> <summary> Create a transaction </summary> <param name="path">The path of the transaction</param> <returns>The opened transaction</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Create"> <summary> Create a transaction </summary> <returns>The opened transaction</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.RegistryTransactionAccessRights)"> <summary> Open a transaction object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.RegistryTransactionAccessRights)"> <summary> Open a transaction object. </summary> <param name="object_attributes">The object attributes for the object</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Open(System.String)"> <summary> Open a transaction object. </summary> <param name="path">The path to the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Commit"> <summary> Commit the transaction </summary> </member> <member name="M:NtApiDotNet.NtRegistryTransaction.Rollback"> <summary> Rollback the transaction </summary> </member> <member name="T:NtApiDotNet.SemaphoreAccessRights"> <summary> Semaphore access rights. </summary> </member> <member name="T:NtApiDotNet.NtSemaphore"> <summary> Class to represent a NT Semaphore object. </summary> </member> <member name="M:NtApiDotNet.NtSemaphore.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.SemaphoreAccessRights,System.Int32,System.Int32)"> <summary> Create a semaphore object. </summary> <param name="object_attributes">The object attributes for the object</param> <param name="desired_access">The desired access for the object</param> <param name="initial_count">Initial count for semaphore</param> <param name="maximum_count">Maximum count for semaphore</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSemaphore.Create(System.String,NtApiDotNet.NtObject,System.Int32,System.Int32)"> <summary> Create a semaphore object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="initial_count">Initial count for semaphore</param> /// <param name="maximum_count">Maximum count for semaphore</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSemaphore.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.SemaphoreAccessRights)"> <summary> Open a semaphore object. </summary> <param name="object_attributes">The object attributes for the object</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSemaphore.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.SemaphoreAccessRights)"> <summary> Open a semaphore object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSemaphore.Release(System.Int32)"> <summary> Release the semaphore </summary> <param name="count">The release count</param> <returns>The previous count</returns> </member> <member name="T:NtApiDotNet.NtSymbolicLink"> <summary> Class representing a NT SymbolicLink object </summary> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.SymbolicLinkAccessRights,System.String)"> <summary> Create a symbolic link object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="desired_access">The desired access for the object</param> <param name="target">The target path</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.SymbolicLinkAccessRights,System.String)"> <summary> Create a symbolic link object. </summary> <param name="object_attributes">The object attributes for the object</param> <param name="desired_access">The desired access for the object</param> <param name="target">The target path</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Create(System.String,NtApiDotNet.NtObject,System.String)"> <summary> Create a symbolic link object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="target">The target path</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Create(System.String,System.String)"> <summary> Create a symbolic link object. </summary> <param name="path">The path to the object</param> <param name="target">The target path</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.SymbolicLinkAccessRights)"> <summary> Open a symbolic link object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.SymbolicLinkAccessRights)"> <summary> Open a symbolic link object. </summary> <param name="object_attributes">The object attributes for the object</param> <param name="desired_access">The desired access for the object</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Open(System.String,NtApiDotNet.NtObject)"> <summary> Open a symbolic link object. </summary> <param name="path">The path to the object</param> <param name="root">The root if path is relative</param> <returns>The opened object</returns> </member> <member name="M:NtApiDotNet.NtSymbolicLink.Open(System.String)"> <summary> Open a symbolic link object. </summary> <param name="path">The path to the object</param> <returns>The opened object</returns> </member> <member name="P:NtApiDotNet.NtSymbolicLink.Target"> <summary> Get the symbolic link target. </summary> </member> <member name="T:NtApiDotNet.NtHandle"> <summary> Class to represent a system handle </summary> </member> <member name="P:NtApiDotNet.NtHandle.ProcessId"> <summary> The ID of the process holding the handle </summary> </member> <member name="P:NtApiDotNet.NtHandle.ObjectType"> <summary> The object type name </summary> </member> <member name="P:NtApiDotNet.NtHandle.Attributes"> <summary> The handle attribute flags. </summary> </member> <member name="P:NtApiDotNet.NtHandle.Handle"> <summary> The handle value </summary> </member> <member name="P:NtApiDotNet.NtHandle.Object"> <summary> The address of the object. </summary> </member> <member name="P:NtApiDotNet.NtHandle.GrantedAccess"> <summary> The granted access mask </summary> </member> <member name="P:NtApiDotNet.NtHandle.Name"> <summary> The name of the object (needs to have set query access in constructor) </summary> </member> <member name="P:NtApiDotNet.NtHandle.SecurityDescriptor"> <summary> The security of the object (needs to have set query access in constructor) </summary> </member> <member name="M:NtApiDotNet.NtHandle.GetObject"> <summary> Get handle into the current process </summary> <returns>The handle to the object</returns> </member> <member name="T:NtApiDotNet.NtSystemInfo"> <summary> Class to access some NT system information </summary> </member> <member name="M:NtApiDotNet.NtSystemInfo.GetHandles(System.Int32,System.Boolean)"> <summary> Get a list of handles </summary> <param name="pid">A process ID to filter on. If -1 will get all handles</param> <param name="allow_query">True to allow the handles returned to query for certain properties</param> <returns>The list of handles</returns> </member> <member name="M:NtApiDotNet.NtSystemInfo.GetHandles"> <summary> Get a list of all handles </summary> <returns>The list of handles</returns> </member> <member name="T:NtApiDotNet.GenericAccessRights"> <summary> Generic access rights. </summary> </member> <member name="T:NtApiDotNet.DuplicateObjectOptions"> <summary> Options for duplicating objects. </summary> </member> <member name="F:NtApiDotNet.DuplicateObjectOptions.CloseSource"> <summary> Close the original handle. </summary> </member> <member name="F:NtApiDotNet.DuplicateObjectOptions.SameAccess"> <summary> Duplicate with the same access. </summary> </member> <member name="F:NtApiDotNet.DuplicateObjectOptions.SameAttributes"> <summary> Duplicate with the same handle attributes. </summary> </member> <member name="T:NtApiDotNet.ObjectInformationClass"> <summary> Information class for NtQueryObject </summary> <see cref="M:NtApiDotNet.NtSystemCalls.NtQueryObject(System.Runtime.InteropServices.SafeHandle,NtApiDotNet.ObjectInformationClass,System.IntPtr,System.Int32,System.Int32@)"/> </member> <member name="T:NtApiDotNet.ObjectNameInformation"> <summary> Structure to return Object Name </summary> </member> <member name="T:NtApiDotNet.ObjectBasicInformation"> <summary> Structure to return Object basic information </summary> </member> <member name="T:NtApiDotNet.PoolType"> <summary> Type of kernel pool used for object allocation </summary> </member> <member name="T:NtApiDotNet.NtObject"> <summary> Base class for all NtObject types we handle </summary> </member> <member name="M:NtApiDotNet.NtObject.#ctor(NtApiDotNet.SafeKernelObjectHandle)"> <summary> Base constructor </summary> <param name="handle">Handle to the object</param> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(NtApiDotNet.NtProcess,System.UInt32,NtApiDotNet.DuplicateObjectOptions)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="dest_process">The desination process for the handle</param> <param name="options">Duplicate handle options</param> <param name="access_rights">The access rights for the new handle</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle"> <summary> Duplicate the internal handle to a new handle with the same access rights. </summary> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(System.UInt32)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="access_rights">The access rights for the new handle</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(NtApiDotNet.GenericAccessRights)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="access_rights">The access rights for the new handle</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(NtApiDotNet.NtProcess,System.Runtime.InteropServices.SafeHandle,NtApiDotNet.NtProcess,NtApiDotNet.GenericAccessRights,NtApiDotNet.DuplicateObjectOptions)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="source_process">The source process for the handle</param> <param name="dest_process">The desination process for the handle</param> <param name="handle">The handle in the source process to duplicate</param> <param name="options">Duplicate handle options</param> <param name="access_rights">The access rights for the new handle</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(NtApiDotNet.NtProcess,System.Runtime.InteropServices.SafeHandle,NtApiDotNet.NtProcess,NtApiDotNet.GenericAccessRights)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="source_process">The source process for the handle</param> <param name="dest_process">The desination process for the handle</param> <param name="handle">The handle in the source process to duplicate</param> <param name="access_rights">The access rights for the new handle</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(NtApiDotNet.NtProcess,System.Runtime.InteropServices.SafeHandle,NtApiDotNet.NtProcess)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="source_process">The source process for the handle</param> <param name="dest_process">The desination process for the handle</param> <param name="handle">The handle in the source process to duplicate</param> <returns>The new duplicated handle.</returns> </member> <member name="M:NtApiDotNet.NtObject.DuplicateHandle(System.Runtime.InteropServices.SafeHandle)"> <summary> Duplicate the internal handle to a new handle. </summary> <param name="handle">The handle in the source process to duplicate</param> <returns>The new duplicated handle.</returns> </member> <member name="P:NtApiDotNet.NtObject.FullPath"> <summary> Get full path to the object </summary> </member> <member name="M:NtApiDotNet.NtObject.QueryBasicInformation"> <summary> Get the basic information for the object. </summary> <returns>The basic information</returns> </member> <member name="P:NtApiDotNet.NtObject.GrantedAccessRaw"> <summary> Get the granted access as an unsigned integer </summary> </member> <member name="P:NtApiDotNet.NtObject.GrantedAccessObject"> <summary> Get the granted access as an object </summary> </member> <member name="M:NtApiDotNet.NtObject.IsAccessGrantedRaw``1(``0)"> <summary> Check if access is granted to a set of rights </summary> <typeparam name="T">The type of enumeration for the access rights</typeparam> <param name="access">The access rights to check</param> <returns>True if all the access rights are granted</returns> </member> <member name="M:NtApiDotNet.NtObject.GetSecurityDescriptorBytes(NtApiDotNet.SecurityInformation)"> <summary> Get security descriptor as a byte array </summary> <param name="security_information">What parts of the security descriptor to retrieve</param> <returns>The security descriptor</returns> </member> <member name="M:NtApiDotNet.NtObject.GetSecurityDescriptorBytes"> <summary> Get security descriptor as a byte array </summary> <returns>Returns an array of bytes for the security descriptor</returns> </member> <member name="M:NtApiDotNet.NtObject.SetSecurityDescriptor(System.Byte[],NtApiDotNet.SecurityInformation)"> <summary> Set the object's security descriptor
            </summary>
            <param name="security_desc">The security descriptor to set.</param>
            <param name="security_information">What parts of the security descriptor to set</param>
        </member>
        <member name="M:NtApiDotNet.NtObject.SetSecurityDescriptor(NtApiDotNet.SecurityDescriptor,NtApiDotNet.SecurityInformation)">
            <summary>
            Set the object's security descriptor </summary> <param name="security_desc">The security descriptor to set.</param> <param name="security_information">What parts of the security descriptor to set</param> </member> <member name="M:NtApiDotNet.NtObject.GetSecurityDescriptor(NtApiDotNet.SecurityInformation)"> <summary> Get the security descriptor specifying which parts to retrieve </summary> <param name="security_information">What parts of the security descriptor to retrieve</param> <returns>The security descriptor</returns> </member> <member name="P:NtApiDotNet.NtObject.SecurityDescriptor"> <summary> Get the security descriptor, with Dacl, Owner, Group and Label </summary> </member> <member name="M:NtApiDotNet.NtObject.GetSddl"> <summary> Get the security descriptor as an SDDL string </summary> <returns></returns> </member> <member name="P:NtApiDotNet.NtObject.Handle"> <summary> The low-level handle to the object. </summary> </member> <member name="M:NtApiDotNet.NtObject.MakeTemporary"> <summary> Make the object a temporary object </summary> </member> <member name="M:NtApiDotNet.NtObject.MakePermanent"> <summary> Make the object a permanent object </summary> </member> <member name="M:NtApiDotNet.NtObject.Wait(System.Boolean,NtApiDotNet.NtWaitTimeout)"> <summary> Wait on the object to become signalled </summary> <param name="alertable">True to make the wait alertable</param> <param name="timeout">The time out</param> <returns>The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtObject.Wait(NtApiDotNet.NtWaitTimeout)"> <summary> Wait on the object to become signalled </summary> <param name="timeout">The time out</param> <returns>The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtObject.Wait(System.Boolean,System.Int32)"> <summary> Wait on the object to become signalled </summary> <param name="alertable">True to make the wait alertable</param> <param name="timeout_sec">The time out in seconds</param> <returns>The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtObject.Wait(System.Int32)"> <summary> Wait on the object to become signalled </summary> <param name="timeout_sec">The time out in seconds</param> <returns>The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtObject.Wait"> <summary> Wait on the object to become signalled for an infinite time. </summary> <returns>The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtObject.CanOpenType(System.String)"> <summary> Indicates whether a specific type of kernel object can be opened. </summary> <param name="typename">The kernel typename to check.</param> <returns>True if this type of object can be opened.</returns> <see cref="M:NtApiDotNet.NtObject.OpenWithType(System.String,System.String,NtApiDotNet.NtObject,NtApiDotNet.GenericAccessRights)"/> </member> <member name="M:NtApiDotNet.NtObject.OpenWithType(System.String,System.String,NtApiDotNet.NtObject,NtApiDotNet.GenericAccessRights)"> <summary> Open an NT object with a specified type. </summary> <param name="typename">The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type.</param> <param name="path">The path to the object to open.</param> <param name="root">A root directory to open from.</param> <param name="access">Generic access rights to the object.</param> <returns>The opened object.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred opening the object.</exception> <exception cref="T:System.ArgumentException">Thrown if type of resource couldn't be found.</exception>
        </member>
        <member name="P:NtApiDotNet.NtObject.NtTypeName">
            <summary>
            Get the NT type name for this object.
            </summary>
            <returns>The NT type name.</returns>
        </member>
        <member name="P:NtApiDotNet.NtObject.NtType">
            <summary>
            Get the NtType for this object.
            </summary>
            <returns>The NtType for the type name</returns>
        </member>
        <member name="M:NtApiDotNet.NtObject.AccessRightsToString(System.Type,System.UInt32)">
            <summary>
            Convert an access rights type to a string.
            </summary>
            <param name="t">The enumeration type for the string conversion</param>
            <param name="access">The access mask to convert</param>
            <returns>The string version of the access</returns>
        </member>
        <member name="M:NtApiDotNet.NtObject.AccessRightsToString``1(``0)">
            <summary>
            Convert an enumerable access rights to a string
            </summary>
            <typeparam name="T">The enum type for the access rights</typeparam>
            <param name="access">The access rights</param>
            <returns>The string format of the access rights</returns>
        </member>
        <member name="M:NtApiDotNet.NtObject.AccessRightsToString``1(``0,NtApiDotNet.NtType)">
            <summary>
            Convert an enumerable access rights to a string
            </summary>
            <typeparam name="T">The enum type for the access rights</typeparam>
            <param name="access">The access rights</param>
            <param name="typeinfo">NtType to map generic access masks to specific access masks</param>
            <returns>The string format of the access rights</returns>
        </member>
        <member name="P:NtApiDotNet.NtObject.Name">
            <summary>
            Get the name of the object
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtObject.ToString">
            <summary>
            Convert to a string
            </summary>
            <returns>The string form of the object</returns>
        </member>
        <member name="M:NtApiDotNet.NtObject.Dispose(System.Boolean)">
            <summary>
            Virtual Dispose method.
            </summary>
            <param name="disposing">True if disposing, false if finalizing</param>
        </member>
        <member name="M:NtApiDotNet.NtObject.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtObject.Dispose">
            <summary>
            Dispose
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtObject.Close">
            <summary>
            Close handle
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtObjectWithDuplicate`2">
            <summary>
            A derived class to add some useful functions such as Duplicate
            </summary>
            <typeparam name="O">The derived type to use as return values</typeparam>
            <typeparam name="A">An enum which represents the access mask values for the type</typeparam>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.Duplicate(`1)">
            <summary>
            Duplicate the object with specific access rights
            </summary>
            <param name="access">The access rights for the new handle</param>
            <returns>The duplicated object</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.Duplicate(System.UInt32)">
            <summary>
            Duplicate the object with specific access rights
            </summary>
            <param name="access">The access rights for the new handle</param>
            <returns>The duplicated object</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.Duplicate">
            <summary>
            Duplicate the object with same access rights
            </summary>
            <returns>The duplicated object</returns>
        </member>
        <member name="P:NtApiDotNet.NtObjectWithDuplicate`2.GrantedAccess">
            <summary>
            Get granted access for handle.
            </summary>
            <returns>Granted access</returns>
        </member>
        <member name="P:NtApiDotNet.NtObjectWithDuplicate`2.GrantedAccessObject">
            <summary>
            Get granted access as an object
            </summary>
            <returns>The granted access</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.IsAccessGranted(`1)">
            <summary>
            Check if a specific set of access rights is granted
            </summary>
            <param name="access">The access rights to check</param>
            <returns>True if all access rights are granted</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.GetGrantedAccessString">
            <summary>
            Get the granted access as a string
            </summary>
            <returns>The string form of the granted access</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.FromHandle(NtApiDotNet.SafeKernelObjectHandle)">
            <summary>
            Create a new instance from a kernel handle
            </summary>
            <param name="handle">The kernel handle</param>
            <returns>The new typed instance</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.DuplicateFrom(NtApiDotNet.NtProcess,System.IntPtr,`1)">
            <summary>
            Duplicate an instance from a process
            </summary>
            <param name="process">The process (with DupHandle access)</param>
            <param name="handle">The handle value to duplicate</param>
            <param name="access">The access rights to duplicate with</param>
            <returns>The duplicated handle</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.DuplicateFrom(System.Int32,System.IntPtr,`1)">
            <summary>
            Duplicate an instance from a process
            </summary>
            <param name="pid">The process ID</param>
            <param name="handle">The handle value to duplicate</param>
            <param name="access">The access rights to duplicate with</param>
            <returns>The duplicated handle</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.DuplicateFrom(NtApiDotNet.NtProcess,System.IntPtr)">
            <summary>
            Duplicate an instance from a process with same access rights.
            </summary>
            <param name="process">The process (with DupHandle access)</param>
            <param name="handle">The handle value to duplicate</param>
            <returns>The duplicated handle</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectWithDuplicate`2.DuplicateFrom(System.Int32,System.IntPtr)">
            <summary>
            Duplicate an instance from a process with same access rights
            </summary>
            <param name="pid">The process ID</param>
            <param name="handle">The handle value to duplicate</param>
            <returns>The duplicated handle</returns>
        </member>
        <member name="T:NtApiDotNet.NtGeneric">
            <summary>
            A generic wrapper for any object, used if we don't know the type ahead of time. </summary> </member> <member name="M:NtApiDotNet.NtGeneric.ToTypedObject"> <summary> Convert the generic object to the best typed object. </summary> <returns>The typed object. Can be NtGeneric if no better type is known.</returns> </member> <member name="T:NtApiDotNet.NtProcess"> <summary> Class representing a NT Process object. </summary> </member> <member name="M:NtApiDotNet.NtProcess.GetProcesses(NtApiDotNet.ProcessAccessRights)"> <summary> Gets all accessible processes on the system. </summary> <param name="desired_access">The access desired for each process.</param> <returns>The list of accessible processes.</returns> </member> <member name="M:NtApiDotNet.NtProcess.GetFirstProcess(NtApiDotNet.ProcessAccessRights)"> <summary> Get first accessible process (used in combination with GetNextProcess) </summary> <param name="desired_access">The access required for the process.</param> <returns>The accessible process, or null if one couldn't be opened.</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.GetNextProcess(NtApiDotNet.ProcessAccessRights)">
            <summary>
            Get next accessible process (used in combination with GetFirstProcess)
            </summary>
            <param name="desired_access">The access required for the process.</param>
            <returns>The accessible process, or null if one couldn't be opened.</returns> </member> <member name="M:NtApiDotNet.NtProcess.GetThreads(NtApiDotNet.ThreadAccessRights)"> <summary> Get accessible threads for a process. </summary> <param name="desired_access">The desired access for the threads</param> <returns>The list of threads</returns> </member> <member name="M:NtApiDotNet.NtProcess.GetThreads"> <summary> Get accessible threads for a process. </summary> <returns>The list of threads</returns> </member> <member name="P:NtApiDotNet.NtProcess.SessionId"> <summary> Get the process' session ID
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtProcess.ProcessId">
            <summary>
            Get the process' ID </summary> </member> <member name="P:NtApiDotNet.NtProcess.ParentProcessId"> <summary> Get the process' parent process ID
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtProcess.PebAddress">
            <summary>
            Get the memory address of the PEB
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtProcess.ExitStatus">
            <summary>
            Get the process' exit status. </summary> </member> <member name="P:NtApiDotNet.NtProcess.CommandLine"> <summary> Get the process' command line
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtProcess.Open(System.Int32,NtApiDotNet.ProcessAccessRights)">
            <summary>
            Open a process
            </summary>
            <param name="pid">The process ID to open</param>
            <param name="desired_access">The desired access for the handle</param>
            <returns>The opened process</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.CreateProcessEx(NtApiDotNet.NtProcess,NtApiDotNet.ProcessCreateFlags,NtApiDotNet.NtSection)">
            <summary>
            Create a new process
            </summary>
            <param name="ParentProcess">The parent process</param>
            <param name="Flags">Creation flags</param>
            <param name="SectionHandle">Handle to the executable image section</param>
            <returns>The created process</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.CreateProcessEx(NtApiDotNet.ProcessCreateFlags,NtApiDotNet.NtSection)">
            <summary>
            Create a new process
            </summary>
            <param name="Flags">Creation flags</param>
            <param name="SectionHandle">Handle to the executable image section</param>
            <returns>The created process</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.CreateProcessEx(NtApiDotNet.NtSection)">
            <summary>
            Create a new process
            </summary>
            <param name="SectionHandle">Handle to the executable image section</param>
            <returns>The created process</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.Terminate(NtApiDotNet.NtStatus)">
            <summary>
            Terminate the process
            </summary>
            <param name="exitcode">The exit code for the termination</param>
        </member>
        <member name="M:NtApiDotNet.NtProcess.GetImageFilePath(System.Boolean)">
            <summary>
            Get process image file path
            </summary>
            <param name="native">True to return the native image path, false for a Win32 style path</param>
            <returns>The process image file path</returns>
        </member>
        <member name="P:NtApiDotNet.NtProcess.FullPath">
            <summary>
            Get full image path name in native format
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtProcess.GetProcessMitigationPolicy(NtApiDotNet.ProcessMitigationPolicy)">
            <summary>
            Get a mitigation policy raw value
            </summary>
            <param name="policy">The policy to get</param>
            <returns>The raw policy value</returns>
        </member>
        <member name="M:NtApiDotNet.NtProcess.Suspend">
            <summary>
            Suspend the entire process.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtProcess.Resume">
            <summary>
            Resume the entire process.
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtProcess.DepStatus">
            <summary>
            Get process DEP status
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtProcess.OpenToken">
            <summary>
            Open the process' token </summary> <returns></returns> </member> <member name="P:NtApiDotNet.NtProcess.User"> <summary> Get the process user. </summary> </member> <member name="P:NtApiDotNet.NtProcess.Mitigations"> <summary> Get process mitigations </summary> </member> <member name="M:NtApiDotNet.NtProcess.OpenCurrent"> <summary> Open an actual handle to the current process rather than the pseudo one used for Current </summary> <returns>The process object</returns> </member> <member name="P:NtApiDotNet.NtProcess.Current"> <summary> Get the current process. </summary> <remarks>This only uses the pseudo handle, for the process. If you need a proper handle use OpenCurrent.</remarks> </member> <member name="T:NtApiDotNet.NtMappedSection"> <summary> Class representing a mapped section </summary> </member> <member name="P:NtApiDotNet.NtMappedSection.Process"> <summary> The process which the section is mapped into </summary> </member> <member name="P:NtApiDotNet.NtMappedSection.Length"> <summary> The length of the mapped section </summary> </member> <member name="M:NtApiDotNet.NtMappedSection.ReleaseHandle"> <summary> Release the internal handle </summary> <returns></returns> </member> <member name="M:NtApiDotNet.NtMappedSection.GetStream"> <summary> Get the mapped section as a memory stream </summary> <returns></returns> </member> <member name="T:NtApiDotNet.NtSection"> <summary> Class to represent a NT Section object </summary> </member> <member name="M:NtApiDotNet.NtSection.CreateImageSection(NtApiDotNet.NtFile)"> <summary> Create an Image section object </summary> <param name="file">The file to create the image section from</param> <returns>The opened section</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtSection.Create(NtApiDotNet.ObjectAttributes,NtApiDotNet.SectionAccessRights,System.Nullable{System.Int64},NtApiDotNet.ProtectionType,NtApiDotNet.SectionAttributes,NtApiDotNet.NtFile)"> <summary> Create a section object </summary> <param name="object_attributes">The object attributes</param> <param name="desired_access">The desired access</param> <param name="size">Optional size of the section</param> <param name="protection">The section protection</param> <param name="attributes">The section attributes</param> <param name="file">Optional backing file</param> <returns>The opened section</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtSection.Create(System.String,NtApiDotNet.NtObject,NtApiDotNet.SectionAccessRights,System.Nullable{System.Int64},NtApiDotNet.ProtectionType,NtApiDotNet.SectionAttributes,NtApiDotNet.NtFile)"> <summary> Create a section object </summary> <param name="path">The path to the section</param> <param name="root">The root if path is relative</param> <param name="desired_access">The desired access</param> <param name="size">Optional size of the section</param> <param name="protection">The section protection</param> <param name="attributes">The section attributes</param> <param name="file">Optional backing file</param> <returns>The opened section</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtSection.Create(System.Int64)"> <summary> Create a section object </summary> <param name="size">Size of the section</param> <returns>The opened section</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error.</exception> </member> <member name="M:NtApiDotNet.NtSection.MapReadWrite(NtApiDotNet.NtProcess)"> <summary> Map section Read/Write into a specific process </summary> <param name="process">The process to map into</param> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.MapRead(NtApiDotNet.NtProcess)"> <summary> Map section Read Only into a specific process </summary> <param name="process">The process to map into</param> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.MapRead"> <summary> Map section Read Only into a current process </summary> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.MapReadWrite"> <summary> Map section Read/Write into a current process </summary> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.Map(NtApiDotNet.NtProcess,NtApiDotNet.ProtectionType)"> <summary> Map section into a specific process </summary> <param name="process">The process to map into</param> <param name="type">The protection of the mapping</param> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.Map(NtApiDotNet.ProtectionType)"> <summary> Map section into the current process </summary> <param name="type">The protection of the mapping</param> <returns>The mapped section</returns> </member> <member name="M:NtApiDotNet.NtSection.Open(NtApiDotNet.ObjectAttributes,NtApiDotNet.SectionAccessRights)"> <summary> Open a section object </summary> <param name="object_attributes">The object attributes for the section</param> <param name="desired_access">The desired access for the sections</param> <returns>The opened section</returns> </member> <member name="M:NtApiDotNet.NtSection.Open(System.String,NtApiDotNet.NtObject,NtApiDotNet.SectionAccessRights)"> <summary> Open a section object </summary> <param name="path">The path to the section</param> <param name="root">Root object if the path is relative</param> <param name="desired_access">The desired access for the sections</param> <returns>The opened section</returns> </member> <member name="P:NtApiDotNet.NtSection.Size"> <summary> Get the size of the section </summary> <returns>The size</returns> </member> <member name="P:NtApiDotNet.NtSection.Attributes"> <summary> Get the attributes of the section </summary> <returns>The section attributes</returns> </member> <member name="T:NtApiDotNet.NtStatus"> <summary> NT status values </summary> </member> <member name="T:NtApiDotNet.NtThread"> <summary> Class to represent a NT Thread object </summary> </member> <member name="M:NtApiDotNet.NtThread.Resume"> <summary> Resume the thread. </summary> <returns>The suspend count</returns> </member> <member name="M:NtApiDotNet.NtThread.Suspend"> <summary> Suspend the thread </summary> <returns>The suspend count</returns> </member> <member name="M:NtApiDotNet.NtThread.Terminate(NtApiDotNet.NtStatus)"> <summary> Terminate the thread </summary> <param name="status">The thread status exit code</param> </member> <member name="M:NtApiDotNet.NtThread.Open(System.Int32,NtApiDotNet.ThreadAccessRights)"> <summary> Open a thread </summary> <param name="thread_id">The thread ID to open</param> <param name="desired_access">The desired access for the handle</param> <returns>The opened object</returns> </member> <member name="P:NtApiDotNet.NtThread.ThreadId"> <summary> Get thread ID </summary> </member> <member name="P:NtApiDotNet.NtThread.ProcessId"> <summary> Get process ID </summary> </member> <member name="P:NtApiDotNet.NtThread.Priority"> <summary> Get thread's current priority
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtThread.BasePriority">
            <summary>
            Get thread's base priority </summary> </member> <member name="P:NtApiDotNet.NtThread.TebBaseAddress"> <summary> Get the thread's TEB base address.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtThread.Alert">
            <summary>
            Wake the thread from an alertable state.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtThread.HideFromDebugger">
            <summary>
            Hide the thread from debug events.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtThread.SetImpersonationToken(NtApiDotNet.NtToken)">
            <summary>
            The set the thread's impersonation token </summary> <param name="token">The impersonation token to set</param> </member> <member name="M:NtApiDotNet.NtThread.ImpersonateAnonymousToken"> <summary> Impersonate the anonymous token </summary> <returns>The impersonation context. Dispose to revert to self</returns> </member> <member name="M:NtApiDotNet.NtThread.Impersonate(NtApiDotNet.NtToken)"> <summary> Impersonate a token </summary> <returns>The impersonation context. Dispose to revert to self</returns> </member> <member name="M:NtApiDotNet.NtThread.OpenCurrent"> <summary> Open an actual handle to the current thread rather than the pseudo one used for Current </summary> <returns>The thread object</returns> </member> <member name="M:NtApiDotNet.NtThread.OpenToken"> <summary> Open the thread's token
            </summary>
            <returns>The token, null if no token available</returns>
        </member>
        <member name="M:NtApiDotNet.NtThread.GetThreads(NtApiDotNet.ThreadAccessRights)">
            <summary>
            Gets all accessible threads on the system.
            </summary>
            <param name="desired_access">The desired access for each thread.</param>
            <returns>The list of accessible threads.</returns>
        </member>
        <member name="M:NtApiDotNet.NtThread.GetFirstThread(NtApiDotNet.NtProcess,NtApiDotNet.ThreadAccessRights)">
            <summary>
            Get first thread for process.
            </summary>
            <param name="process">The process handle to get the threads.</param>
            <param name="desired_access">The desired access for the thread.</param>
            <returns>The first thread, or null if no more available.</returns>
        </member>
        <member name="M:NtApiDotNet.NtThread.GetNextThread(NtApiDotNet.NtProcess,NtApiDotNet.ThreadAccessRights)">
            <summary>
            Get next thread for process relative to current thread.
            </summary>
            <param name="process">The process handle to get the threads.</param>
            <param name="desired_access">The desired access for the thread.</param>
            <returns>The next thread, or null if no more available.</returns>
        </member>
        <member name="P:NtApiDotNet.NtThread.Current">
            <summary>
            Get the current thread.        
            </summary>
            <remarks>This only uses the pseudo handle, for the thread. You can't use it in different threads. If you need to do that use OpenCurrent.</remarks> <see cref="M:NtApiDotNet.NtThread.OpenCurrent"/> </member> <member name="M:NtApiDotNet.NtThread.Sleep(System.Boolean,System.Int64)"> <summary> Sleep the current thread </summary> <param name="alertable">Set if the thread should be alertable</param> <param name="delay">The delay, negative values indicate relative times.</param> <returns>True if the thread was alerted before the delay expired.</returns> </member> <member name="T:NtApiDotNet.TokenPrivilege"> <summary> Class to represent the state of a token privilege </summary> </member> <member name="P:NtApiDotNet.TokenPrivilege.Attributes"> <summary> Privilege attributes </summary> </member> <member name="P:NtApiDotNet.TokenPrivilege.Luid"> <summary> Privilege LUID </summary> </member> <member name="P:NtApiDotNet.TokenPrivilege.Name"> <summary> Get the name of the privilege </summary> <returns>The privilege name</returns> </member> <member name="P:NtApiDotNet.TokenPrivilege.DisplayName"> <summary> Get the display name/description of the privilege </summary> <returns>The display name</returns> </member> <member name="P:NtApiDotNet.TokenPrivilege.Enabled"> <summary> Get whether privilege is enabled </summary> </member> <member name="M:NtApiDotNet.TokenPrivilege.#ctor(NtApiDotNet.Luid,NtApiDotNet.PrivilegeAttributes)"> <summary> Constructor </summary> <param name="luid">The privilege LUID</param> <param name="attribute">The privilege attributes</param> </member> <member name="M:NtApiDotNet.TokenPrivilege.#ctor(NtApiDotNet.TokenPrivilegeValue,NtApiDotNet.PrivilegeAttributes)"> <summary> Constructor </summary> <param name="value">The privilege value</param> <param name="attribute">The privilege attributes</param> </member> <member name="M:NtApiDotNet.TokenPrivilege.ToString"> <summary> Conver to a string </summary> <returns>The privilege name.</returns> </member> <member name="T:NtApiDotNet.UserGroup"> <summary> Class to represent a user group </summary> </member> <member name="P:NtApiDotNet.UserGroup.Sid"> <summary> The SID of the user group </summary> </member> <member name="P:NtApiDotNet.UserGroup.Attributes"> <summary> The attributes of the user group </summary> </member> <member name="P:NtApiDotNet.UserGroup.Enabled"> <summary> Get whether the user group is enabled </summary> </member> <member name="P:NtApiDotNet.UserGroup.Mandatory"> <summary> Get whether the user group is mandatory </summary> </member> <member name="P:NtApiDotNet.UserGroup.DenyOnly"> <summary> Get whether the user group is used for deny only </summary> </member> <member name="M:NtApiDotNet.UserGroup.#ctor(NtApiDotNet.Sid,NtApiDotNet.GroupAttributes)"> <summary> Constructor </summary> <param name="sid">The SID</param> <param name="attributes">The attributes</param> </member> <member name="M:NtApiDotNet.UserGroup.ToString"> <summary> Convert to a string </summary> <returns>The account name if available or the SDDL SID</returns> </member> <member name="T:NtApiDotNet.NtToken"> <summary> Class representing a Token object </summary> </member> <member name="M:NtApiDotNet.NtToken.DuplicateToken(NtApiDotNet.TokenType,NtApiDotNet.SecurityImpersonationLevel,NtApiDotNet.TokenAccessRights)"> <summary> Duplicate token as specific type </summary> <param name="type">The token type</param> <param name="level">The impersonation level us type is Impersonation</param> <param name="desired_access">Open with the desired access.</param> <returns>The new token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtToken.DuplicateToken"> <summary> Duplicate the token as a primary token </summary> <returns>The new token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtToken.DuplicateToken(NtApiDotNet.SecurityImpersonationLevel)"> <summary> Duplicate token as an impersonation token with a specific level </summary> <param name="level">The token impersonation level</param> <returns>The new token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown on error</exception> </member> <member name="M:NtApiDotNet.NtToken.SetPrivilege(System.String,System.Boolean)"> <summary> Set a privilege state </summary> <param name="privilege">The name of the privilege (e.g. SeDebugPrivilege)</param> <param name="enable">True to enable the privilege, false to disable</param> <returns>True if successfully changed the state of the privilege</returns> </member> <member name="M:NtApiDotNet.NtToken.SetPrivilege(NtApiDotNet.Luid,System.Boolean)"> <summary> Set a privilege state </summary> <param name="luid">The luid of the privilege</param> <param name="enable">True to enable the privilege, false to disable</param> <returns>True if successfully changed the state of the privilege</returns> </member> <member name="M:NtApiDotNet.NtToken.SetPrivilege(NtApiDotNet.TokenPrivilegeValue,NtApiDotNet.PrivilegeAttributes)"> <summary> Set a privilege state </summary> <param name="privilege">The value of the privilege</param> <param name="attributes">The privilege attributes to set.</param> <returns>True if successfully changed the state of the privilege</returns> </member> <member name="M:NtApiDotNet.NtToken.EnableDebugPrivilege"> <summary> Enable debug privilege for the current process token. </summary> <returns>True if set the debug privilege</returns> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(NtApiDotNet.NtProcess,System.Boolean)"> <summary> Open the process token of another process </summary> <param name="process">The process to open the token for</param> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(NtApiDotNet.NtProcess,System.Boolean,NtApiDotNet.TokenAccessRights)"> <summary> Open the process token of another process </summary> <param name="process">The process to open the token for</param> <param name="duplicate">True to duplicate the token before returning</param> <param name="desired_access">The desired access for the token</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(NtApiDotNet.NtProcess)"> <summary> Open the process token of another process </summary> <param name="process">The process to open the token for</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken"> <summary> Open the process token of the current process </summary> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(System.Boolean)"> <summary> Open the process token of the current process </summary> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(System.Boolean,NtApiDotNet.TokenAccessRights)"> <summary> Open the process token of the current process </summary> <param name="duplicate">True to duplicate the token before returning</param> <param name="desired_access">The desired access for the token</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(System.Int32,System.Boolean)"> <summary> Open the process token of another process </summary> <param name="pid">The id of the process to open the token for</param> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(System.Int32,System.Boolean,NtApiDotNet.TokenAccessRights)"> <summary> Open the process token of another process </summary> <param name="pid">The id of the process to open the token for</param> <param name="duplicate">True to duplicate the token before returning</param> <param name="desired_access">The desired access for the token</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenProcessToken(System.Int32)"> <summary> Open the process token of another process </summary> <param name="pid">The id of the process to open the token for</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken(NtApiDotNet.NtThread,System.Boolean,System.Boolean,NtApiDotNet.TokenAccessRights)"> <summary> Open the thread token </summary> <param name="thread">The thread to open the token for</param> <param name="open_as_self">Open the token as the current identify rather than the impersonated one</param> <param name="duplicate">True to duplicate the token before returning</param> <param name="desired_access">The desired access for the token</param> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken(System.Int32,System.Boolean,System.Boolean,NtApiDotNet.TokenAccessRights)"> <summary> Open the thread token </summary> <param name="tid">The ID of the thread to open the token for</param> <param name="open_as_self">Open the token as the current identify rather than the impersonated one</param> <param name="duplicate">True to duplicate the token before returning</param> <param name="desired_access">The desired access for the token</param> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken(NtApiDotNet.NtThread,System.Boolean,System.Boolean)"> <summary> Open the thread token </summary> <param name="thread">The thread to open the token for</param> <param name="open_as_self">Open the token as the current identify rather than the impersonated one</param> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken(NtApiDotNet.NtThread)"> <summary> Open the thread token </summary> <param name="thread">The thread to open the token for</param> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken(System.Boolean)"> <summary> Open the current thread token </summary> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenThreadToken"> <summary> Open the current thread token </summary> <returns>The opened token, if no token return null</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenEffectiveToken(NtApiDotNet.NtThread,System.Boolean)"> <summary> Open the effective token, thread if available or process </summary> <param name="thread">The thread to open the token for</param> <param name="duplicate">True to duplicate the token before returning</param> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.OpenEffectiveToken"> <summary> Open the current effective token, thread if available or process </summary> <returns>The opened token</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot open token</exception> </member> <member name="M:NtApiDotNet.NtToken.CreateLowBoxToken(NtApiDotNet.Sid,NtApiDotNet.NtObject[])"> <summary> Create a LowBox token from the current token. </summary> <param name="package_sid">The package SID</param> <param name="handles">List of handles to capture with the token</param> <returns></returns> </member> <member name="M:NtApiDotNet.NtToken.Filter(NtApiDotNet.FilterTokenFlags,System.Collections.Generic.IEnumerable{NtApiDotNet.Sid},System.Collections.Generic.IEnumerable{NtApiDotNet.TokenPrivilegeValue},System.Collections.Generic.IEnumerable{NtApiDotNet.Sid})"> <summary> Filter a token to remove groups/privileges and add restricted SIDs </summary> <param name="flags">Filter token flags</param> <param name="sids_to_disable">List of SIDs to disable</param> <param name="privileges_to_delete">List of privileges to delete</param> <param name="restricted_sids">List of restricted SIDs to add</param> <returns>The new token.</returns> </member> <member name="M:NtApiDotNet.NtToken.Filter(NtApiDotNet.FilterTokenFlags,System.Collections.Generic.IEnumerable{NtApiDotNet.Sid},System.Collections.Generic.IEnumerable{NtApiDotNet.Luid},System.Collections.Generic.IEnumerable{NtApiDotNet.Sid})"> <summary> Filter a token to remove groups/privileges and add restricted SIDs </summary> <param name="flags">Filter token flags</param> <param name="sids_to_disable">List of SIDs to disable</param> <param name="privileges_to_delete">List of privileges to delete</param> <param name="restricted_sids">List of restricted SIDs to add</param> <returns>The new token.</returns> </member> <member name="M:NtApiDotNet.NtToken.SetGroup(NtApiDotNet.Sid,NtApiDotNet.GroupAttributes)"> <summary> Set the state of a group </summary> <param name="group">The group SID to set</param> <param name="attributes">The attributes to set</param> </member> <member name="M:NtApiDotNet.NtToken.SetSessionId(System.Int32)"> <summary> Set the session ID of a token </summary> <param name="session_id">The session ID</param> </member> <member name="P:NtApiDotNet.NtToken.User"> <summary> Get token user </summary> </member> <member name="P:NtApiDotNet.NtToken.Groups"> <summary> Get token groups </summary> </member> <member name="P:NtApiDotNet.NtToken.GroupCount"> <summary> Get count of groups in this token. </summary> </member> <member name="P:NtApiDotNet.NtToken.CurrentUser"> <summary> Get the current user. </summary> </member> <member name="P:NtApiDotNet.NtToken.AuthenticationId"> <summary> Get the authentication ID for the token </summary> </member> <member name="P:NtApiDotNet.NtToken.TokenType"> <summary> Get the token's type
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.ExpirationTime">
            <summary>
            Get the token's expiration time. </summary> </member> <member name="P:NtApiDotNet.NtToken.Id"> <summary> Get the Token's Id
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.ModifiedId">
            <summary>
            Get the Toen's modified Id. </summary> </member> <member name="P:NtApiDotNet.NtToken.Owner"> <summary> Get the token's owner.
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.PrimaryGroup">
            <summary>
            Get the token's primary group </summary> </member> <member name="P:NtApiDotNet.NtToken.DefaultDalc"> <summary> Get the token's default DACL
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtToken.SetDefaultDacl(NtApiDotNet.Acl)">
            <summary>
            Set a token's default DACL </summary> <param name="dacl">The DACL to set.</param> </member> <member name="P:NtApiDotNet.NtToken.Source"> <summary> Get the token's source
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.RestrictedSids">
            <summary>
            Get token's restricted sids </summary> </member> <member name="P:NtApiDotNet.NtToken.RestrictedSidsCount"> <summary> Get count of restricted sids </summary> </member> <member name="P:NtApiDotNet.NtToken.ImpersonationLevel"> <summary> Get token's impersonation level
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.SessionId">
            <summary>
            Get token's session ID </summary> </member> <member name="P:NtApiDotNet.NtToken.SandboxInert"> <summary> Get whether token has sandbox inert flag set. </summary> </member> <member name="P:NtApiDotNet.NtToken.Origin"> <summary> Get token's origin
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.ElevationType">
            <summary>
            Get token's elevation type </summary> </member> <member name="P:NtApiDotNet.NtToken.Elevated"> <summary> Get whether token is elevated </summary> </member> <member name="P:NtApiDotNet.NtToken.HasRestrictions"> <summary> Get whether token has restrictions </summary> </member> <member name="P:NtApiDotNet.NtToken.UiAccess"> <summary> Get whether token has UI access flag set </summary> </member> <member name="P:NtApiDotNet.NtToken.VirtualizationAllowed"> <summary> Get whether virtualization is allowed </summary> </member> <member name="P:NtApiDotNet.NtToken.VirtualizationEnabled"> <summary> Get whether virtualization is enabled </summary> </member> <member name="M:NtApiDotNet.NtToken.SetVirtualizationEnabled(System.Boolean)"> <summary> Set virtualization enabled </summary> <param name="enable">True to enable virtualization</param> </member> <member name="P:NtApiDotNet.NtToken.Restricted"> <summary> Get whether token is stricted </summary> </member> <member name="M:NtApiDotNet.NtToken.GetLinkedToken"> <summary> Get the linked token </summary> <returns>The linked token</returns> </member> <member name="P:NtApiDotNet.NtToken.Capabilities"> <summary> Get token capacilities </summary> </member> <member name="P:NtApiDotNet.NtToken.MandatoryPolicy"> <summary> Get token mandatory policy </summary> </member> <member name="P:NtApiDotNet.NtToken.LogonSid"> <summary> Get token logon sid </summary> </member> <member name="M:NtApiDotNet.NtToken.Impersonate"> <summary> Impersonate the token </summary> <returns>An impersonation context, dispose to revert to process token</returns> </member> <member name="M:NtApiDotNet.NtToken.Impersonate(System.Int32,NtApiDotNet.SecurityImpersonationLevel)"> <summary> Impersonate another process' token
            </summary>
            <param name="impersonation_level">The impersonation level</param>
            <param name="pid">Process ID of the other process</param>
            <returns>An impersonation context, dispose to revert to process token</returns>
        </member>
        <member name="P:NtApiDotNet.NtToken.IntegrityLevelSid">
            <summary>
            Get token's integrity level sid </summary> </member> <member name="P:NtApiDotNet.NtToken.AppContainerNumber"> <summary> Get token's App Container number.
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.IntegrityLevel">
            <summary>
            Get token's integrity level. </summary> </member> <member name="P:NtApiDotNet.NtToken.SecurityAttributes"> <summary> Get token's security attributes
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtToken.SetIntegrityLevel(System.Int32)">
            <summary>
            Set the token's integrity level. </summary> <param name="level">The level to set.</param> </member> <member name="M:NtApiDotNet.NtToken.SetIntegrityLevel(NtApiDotNet.TokenIntegrityLevel)"> <summary> Set the token's integrity level.
            </summary>
            <param name="level">The level to set.</param>
        </member>
        <member name="P:NtApiDotNet.NtToken.AppContainer">
            <summary>
            Get whether a token is an AppContainer token
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.AppContainerSid">
            <summary>
            Get token's AppContainer sid </summary> </member> <member name="P:NtApiDotNet.NtToken.DeviceGroups"> <summary> Get token's device groups
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.RestrictedDeviceGroups">
            <summary>
            Get token's restricted device groups. </summary> </member> <member name="P:NtApiDotNet.NtToken.Privileges"> <summary> Get list of privileges for token </summary> <returns>The list of privileges</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if can't query privileges</exception>
        </member>
        <member name="M:NtApiDotNet.NtToken.GetPrivilege(NtApiDotNet.TokenPrivilegeValue)">
            <summary>
            Get the state of a privilege.
            </summary>
            <param name="privilege">The privilege to get the state of.</param>
            <returns>The privilege, or null if it can't be found</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if can't query privileges</exception>
        </member>
        <member name="P:NtApiDotNet.NtToken.LocalSystemAuthId">
            <summary>
            Get authentication ID for LOCAL SYSTEM
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.LocalServiceAuthId">
            <summary>
            Get authentication ID for LOCAL SERVICE
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.NetworkServiceAuthId">
            <summary>
            Get authentication ID for NETWORK SERVICE
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtToken.FullPath">
            <summary>
            Get full path to token
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtWaitTimeout">
            <summary>
            Class to represent an NT timeout
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtWaitTimeout.Infinite">
            <summary>
            Get a timeout which will wait indefinitely.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtWaitTimeout.FromSeconds(System.Int32)">
            <summary>
            Get a relative timeout in seconds.
            </summary>
            <param name="seconds">The number of seconds to wait.</param>
            <returns>An instance of the timeout class.</returns>
        </member>
        <member name="M:NtApiDotNet.NtWaitTimeout.FromMilliseconds(System.Int64)">
            <summary>
            Get a relative timeout in milliseconds.
            </summary>
            <param name="ms">The number of milliseconds to wait.</param>
            <returns>An instance of the timeout class.</returns>
        </member>
        <member name="M:NtApiDotNet.NtWaitTimeout.FromAbsolute(System.Int64)">
            <summary>
            Get an absolute time out from system start.
            </summary>
            <param name="absolute">The absolute time to wait until.</param>
            <returns>An instance of the timeout class.</returns>
        </member>
        <member name="M:NtApiDotNet.NtWaitTimeout.FromRelative(System.Int64)">
            <summary>
            Get a relative time out from the current time.
            </summary>
            <param name="relative">The relative time to wait in units of 100ns.</param>
            <returns>An instance of the timeout class.</returns>
        </member>
        <member name="T:NtApiDotNet.NtWait">
            <summary>
            Wait methods
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtWait.Wait(NtApiDotNet.NtObject,System.Boolean,NtApiDotNet.NtWaitTimeout)">
            <summary>
            Wait on a single object to become signalled
            </summary>
            <param name="obj">The object to wait on</param>
            <param name="alertable">Whether the thread should be alerable</param>
            <param name="timeout">The timeout to wait for</param>
            <returns>The success status of the wait, such as STATUS_WAIT_OBJECT_0 or STATUS_TIMEOUT</returns>
        </member>
        <member name="M:NtApiDotNet.NtWait.Wait(System.Collections.Generic.IEnumerable{NtApiDotNet.NtObject},System.Boolean,System.Boolean,NtApiDotNet.NtWaitTimeout)">
            <summary>
            Wait on multiple objects to become signalled
            </summary>
            <param name="objs">The objects to wait on</param>
            <param name="alertable">Whether the thread should be alerable</param>
            <param name="wait_all">True to wait for all objects to be signalled</param>
            <param name="timeout">The timeout to wait for</param>
            <returns>The success status of the wait, such as STATUS_WAIT_OBJECT_0 or STATUS_TIMEOUT</returns>
        </member>
        <member name="T:NtApiDotNet.NtWnf">
            <summary>
            Currently unused.
            </summary>
        </member>
        <member name="T:NtApiDotNet.AttributeFlags">
            <summary>
            Flags for OBJECT_ATTRIBUTES
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.None">
            <summary>
            None
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.Inherit">
            <summary>
            The handle created can be inherited
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.Permanent">
            <summary>
            The object created is marked as permanent
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.Exclusive">
            <summary>
            The object must be created exclusively
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.CaseInsensitive">
            <summary>
            The object name lookup should be done case insensitive
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.OpenIf">
            <summary>
            Open the object if it already exists
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.OpenLink">
            <summary>
            Open the object as a link
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.KernelHandle">
            <summary>
            Create as a kernel handle (not used in user-mode)
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.ForceAccessCheck">
            <summary>
            Force an access check to occur (not used in user-mode)
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.IgnoreImpersonatedDevicemap">
            <summary>
            Ignore impersonated device map when looking up object
            </summary>
        </member>
        <member name="F:NtApiDotNet.AttributeFlags.DontReparse">
            <summary>
            Fail if a reparse is encountered
            </summary>
        </member>
        <member name="T:NtApiDotNet.ObjectAttributes">
            <summary>
            A class which represents OBJECT_ATTRIBUTES
            </summary>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor">
            <summary>
            Constructor. Sets flags to None
            </summary>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(System.String,NtApiDotNet.AttributeFlags)">
            <summary>
            Constructor
            </summary>
            <param name="object_name">The name of the object</param>
            <param name="attributes">Attribute flags</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(System.String,NtApiDotNet.AttributeFlags,NtApiDotNet.NtObject)">
            <summary>
            Constructor
            </summary>
            <param name="object_name">The name of the object</param>
            <param name="attributes">Attribute flags</param>
            <param name="root">A root object to lookup a relative path</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(NtApiDotNet.AttributeFlags)">
            <summary>
            Constructor
            </summary>
            <param name="attributes">Attribute flags</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="object_name">The name of the object</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(System.String,NtApiDotNet.AttributeFlags,NtApiDotNet.SafeKernelObjectHandle,NtApiDotNet.SecurityQualityOfService,NtApiDotNet.SecurityDescriptor)">
            <summary>
            Constructor
            </summary>
            <param name="object_name">The object name, can be null.</param>
            <param name="attributes">The object attribute flags.</param>
            <param name="root">An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle.</param>
            <param name="sqos">An optional security quality of service.</param>
            <param name="security_descriptor">An optional security descriptor.</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.#ctor(System.String,NtApiDotNet.AttributeFlags,NtApiDotNet.NtObject,NtApiDotNet.SecurityQualityOfService,NtApiDotNet.SecurityDescriptor)">
            <summary>
            Constructor
            </summary>
            <param name="object_name">The object name, can be null.</param>
            <param name="attributes">The object attribute flags.</param>
            <param name="root">An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle.</param>
            <param name="sqos">An optional security quality of service.</param>
            <param name="security_descriptor">An optional security descriptor.</param>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.Dispose">
            <summary>
            Dispose
            </summary>
        </member>
        <member name="M:NtApiDotNet.ObjectAttributes.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="T:NtApiDotNet.ObjectTypeInformation">
            <summary>
            Native structure used for getting type information.
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtType">
            <summary>
            Class representing an NT object type
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.Name">
            <summary>
            The name of the type
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.GenericMapping">
            <summary>
            The mapping from generic to specific object rights
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.ValidAccess">
            <summary>
            The valid access mask
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.SecurityRequired">
            <summary>
            True if the object needs security even if unnamed
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalNumberOfObjects">
            <summary>
            Total number of objects (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalNumberOfHandles">
            <summary>
            Total number of handles (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalPagedPoolUsage">
            <summary>
            Total paged pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalNonPagedPoolUsage">
            <summary>
            Total non-paged pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalNamePoolUsage">
            <summary>
            Total name pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.TotalHandleTableUsage">
            <summary>
            Total handle table usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterNumberOfObjects">
            <summary>
            Maximum number of objects (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterNumberOfHandles">
            <summary>
            Maximum number of handles (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterPagedPoolUsage">
            <summary>
            Maximum paged pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterNonPagedPoolUsage">
            <summary>
            Maximum non-paged pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterNamePoolUsage">
            <summary>
            Maximum name pool usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.HighWaterHandleTableUsage">
            <summary>
            Maximum handle table usage (when originally retrieved)
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.InvalidAttributes">
            <summary>
            The attributes flags which are invalid
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.MaintainHandleCount">
            <summary>
            Indicates whether handle count is mainted
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.MaintainTypeList">
            <summary>
            Indicates the type list maintained
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.PoolType">
            <summary>
            Indicates the type of pool used in allocations
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.PagedPoolUsage">
            <summary>
            Current paged pool usage
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.NonPagedPoolUsage">
            <summary>
            Current non-pages pool usage
            </summary>
        </member>
        <member name="P:NtApiDotNet.NtType.Index">
            <summary>
            Type Index
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtType.HasReadPermission(System.UInt32)">
            <summary>
            Checks if a access mask represents a read permission on this type
            </summary>
            <param name="access_mask">The access mask to check</param>
            <returns>True if it has read permissions</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.HasWritePermission(System.UInt32)">
            <summary>
            Checks if a access mask represents a write permission on this type
            </summary>
            <param name="access_mask">The access mask to check</param>
            <returns>True if it has write permissions</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.HasExecutePermission(System.UInt32)">
            <summary>
            Checks if a access mask represents a execute permission on this type
            </summary>
            <param name="access_mask">The access mask to check</param>
            <returns>True if it has execute permissions</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.HasFullPermission(System.UInt32)">
            <summary>
            Checks if a access mask represents a full permission on this type
            </summary>
            <param name="access_mask">The access mask to check</param>
            <returns>True if it has full permissions</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.MapGenericRights(System.UInt32)">
            <summary>
            Map generic access rights to specific access rights for this type
            </summary>
            <param name="access_mask">The access mask to map</param>
            <returns>The mapped access mask</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.GetTypeByIndex(System.Int32)">
            <summary>
            Get a type object by index
            </summary>
            <param name="index">The index</param>
            <returns>The object type, null if not found</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.GetTypeByName(System.String)">
            <summary>
            Get a type object by name
            </summary>
            <param name="name">The name of the type</param>
            <returns>The object type, null if not found</returns>
        </member>
        <member name="M:NtApiDotNet.NtType.GetTypes">
            <summary>
            Get a list of all types.
            </summary>
            <returns>The list of types.</returns>
        </member>
        <member name="T:NtApiDotNet.OptionalLength">
            <summary>
            This class allows a function to specify an optional length.
            </summary>
        </member>
        <member name="F:NtApiDotNet.OptionalLength.Length">
            <summary>
            Optional length
            </summary>
        </member>
        <member name="M:NtApiDotNet.OptionalLength.#ctor(System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="M:NtApiDotNet.OptionalLength.op_Implicit(System.Int32)~NtApiDotNet.OptionalLength">
            <summary>
            Implicit conversion
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="T:NtApiDotNet.OptionalLengthSizeT">
            <summary>
            This class allows a function to specify an optional length as a SizeT
            </summary>
        </member>
        <member name="F:NtApiDotNet.OptionalLengthSizeT.Length">
            <summary>
            Optional length
            </summary>
        </member>
        <member name="M:NtApiDotNet.OptionalLengthSizeT.#ctor(System.IntPtr)">
            <summary>
            Constructor
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="M:NtApiDotNet.OptionalLengthSizeT.#ctor(System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="M:NtApiDotNet.OptionalLengthSizeT.#ctor(System.Int64)">
            <summary>
            Constructor
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="M:NtApiDotNet.OptionalLengthSizeT.op_Implicit(System.Int32)~NtApiDotNet.OptionalLengthSizeT">
            <summary>
            Implicit conversion
            </summary>
            <param name="length">The length value</param>
        </member>
        <member name="T:NtApiDotNet.NtProcessMitigations">
            <summary>
            Class representing various process mitigations
            </summary>
        </member>
        <member name="T:NtApiDotNet.SupportedVersion">
            <summary>
            Supported windows verion
            </summary>
        </member>
        <member name="T:NtApiDotNet.SupportedVersionAttribute">
            <summary>
            Attribute to indicate the required version for a function.
            Applied if the function needs a version greater than 7.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SupportedVersionAttribute.Version">
            <summary>
            The supported version.
            </summary>
        </member>
        <member name="M:NtApiDotNet.SupportedVersionAttribute.#ctor(NtApiDotNet.SupportedVersion)">
            <summary>
            Constructor
            </summary>
            <param name="version">The supported version</param>
        </member>
        <member name="T:NtApiDotNet.DataStartAttribute">
            <summary>
            Attribute used for managed structures to indicate the start of data.
            This is used in situations where the data immediately trail 
            </summary>
        </member>
        <member name="M:NtApiDotNet.DataStartAttribute.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="field_name">The field name which indicates the first address of data.</param>
        </member>
        <member name="P:NtApiDotNet.DataStartAttribute.FieldName">
            <summary>
            The field name which indicates the first address of data.
            </summary>
        </member>
        <member name="T:NtApiDotNet.SafeHGlobalBuffer">
            <summary>
            A safe handle to an allocated global buffer.
            </summary>
        </member>
        <member name="M:NtApiDotNet.SafeHGlobalBuffer.#ctor(System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="length">Size of the buffer to allocate.</param>
        </member>
        <member name="M:NtApiDotNet.SafeHGlobalBuffer.#ctor(System.Int32,System.Int32)">
            <summary>
            Constructor
            </summary>
            <param name="allocation_length">The length of data to allocate.</param>
            <param name="total_length">The total length to reflect in the Length property.</param>
        </member>
        <member name="M:NtApiDotNet.SafeHGlobalBuffer.#ctor(System.IntPtr,System.Int32,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="length">Size of the buffer.</param>
            <param name="buffer">An existing pointer to an existing HGLOBAL allocated buffer.</param>
            <param name="owns_handle">Specify whether safe handle owns the buffer.</param>
        </member>
        <member name="M:NtApiDotNet.SafeHGlobalBuffer.#ctor(System.Byte[])">
            <summary>
            Constructor
            </summary>
            <param name="data">Initialization data for the buffer.</param>
        </member>
        <member name="M:NtApiDotNet.SafeHGlobalBuffer.ToArray">
            <summary>
            Convert the safe handle to an array of bytes.
            </summary>
            <returns>The data contained in the allocaiton.</returns>
        </member>
        <member name="T:NtApiDotNet.SafeStructureInOutBuffer`1">
            <summary>
            Safe handle for an in/out structure buffer.
            </summary>
            <typeparam name="T">The type of structure as the base of the memory allocation.</typeparam>
        </member>
        <member name="M:NtApiDotNet.SafeStructureInOutBuffer`1.#ctor(`0)">
            <summary>
            Constructor
            </summary>
            <param name="value">Structure value to initialize the buffer.</param>
        </member>
        <member name="M:NtApiDotNet.SafeStructureInOutBuffer`1.#ctor">
            <summary>
            Constructor, initializes buffer with a default structure.
            </summary>        
        </member>
        <member name="M:NtApiDotNet.SafeStructureInOutBuffer`1.#ctor(System.Int32,System.Boolean)">
            <summary>
            Constructor, initializes buffer with a default structure.
            </summary>        
            <param name="additional_size">Additional data to add to structure buffer.</param>
            <param name="add_struct_size">If true additional_size is added to structure size, otherwise reflects the total size.</param>
        </member>
        <member name="M:NtApiDotNet.SafeStructureInOutBuffer`1.#ctor(`0,System.Int32,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="value">Structure value to initialize the buffer.</param>
            <param name="additional_size">Additional data to add to structure buffer.</param>
            <param name="add_struct_size">If true additional_size is added to structure size, otherwise reflects the total size.</param>
        </member>
        <member name="P:NtApiDotNet.SafeStructureInOutBuffer`1.Result">
            <summary>
            Convert the buffer back to a structure.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SafeStructureInOutBuffer`1.Data">
            <summary>
            Get a reference to the additional data.
            </summary>
        </member>
        <member name="T:NtApiDotNet.BufferUtils">
            <summary>
            Some simple utilities to create structure buffers.
            </summary>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.CreateBuffer``1(``0,System.Int32,System.Boolean)">
            <summary>
            Create a buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <param name="additional_size">Additional byte data after the structure.</param>
            <param name="add_struct_size">Indicates if additional_size includes the structure size or not.</param>
            <returns>The new structure buffer.</returns>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.CreateBuffer``1(``0)">
            <summary>
            Create a buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <returns>The new structure buffer.</returns>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.ToBuffer``1(``0)">
            <summary>
            Create a buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <returns>The new structure buffer.</returns>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.ToBuffer``1(``0,System.Int32,System.Boolean)">
            <summary>
            Create a buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <param name="additional_size">Additional byte data after the structure.</param>
            <param name="add_struct_size">Indicates if additional_size includes the structure size or not.</param>
            <returns>The new structure buffer.</returns>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.CreateArrayBuffer``1(``0)">
            <summary>
            Create an array buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <returns>The new array buffer.</returns>
        </member>
        <member name="M:NtApiDotNet.BufferUtils.ToArrayBuffer``1(``0)">
            <summary>
            Create an array buffer based on a passed type.
            </summary>
            <typeparam name="T">The type to use in the structure buffer.</typeparam>
            <param name="value">The value to initialize the buffer with.</param>
            <returns>The new array buffer.</returns>
        </member>
        <member name="T:NtApiDotNet.SafeSidBufferHandle">
            <summary>
            Safe SID buffer.
            </summary>
            <remarks>This is used to return values from the RTL apis which need to be freed using RtlFreeSid</remarks>
        </member>
        <member name="T:NtApiDotNet.SecurityInformation">
            <summary>
            Security information class for security descriptors.
            </summary>
        </member>
        <member name="T:NtApiDotNet.GenericMapping">
            <summary>
            Access rights generic mapping.
            </summary>
        </member>
        <member name="F:NtApiDotNet.GenericMapping.GenericRead">
            <summary>
            Mapping for Generic Read
            </summary>
        </member>
        <member name="F:NtApiDotNet.GenericMapping.GenericWrite">
            <summary>
            Mapping for Generic Write
            </summary>
        </member>
        <member name="F:NtApiDotNet.GenericMapping.GenericExecute">
            <summary>
            Mapping for Generic Execute
            </summary>
        </member>
        <member name="F:NtApiDotNet.GenericMapping.GenericAll">
            <summary>
            Mapping for Generic All
            </summary>
        </member>
        <member name="M:NtApiDotNet.GenericMapping.MapMask(System.UInt32)">
            <summary>
            Map a generic access mask to a specific one.
            </summary>
            <param name="mask">The generic mask to map.</param>
            <returns>The mapped mask.</returns>
        </member>
        <member name="M:NtApiDotNet.GenericMapping.ToString">
            <summary>
            Convert generic mapping to a string.
            </summary>
            <returns>The generic mapping as a string.</returns>
        </member>
        <member name="T:NtApiDotNet.Ace">
            <summary>
            Class to represent an Access Control Entry (ACE)
            </summary>
        </member>
        <member name="M:NtApiDotNet.Ace.IsObjectAce">
            <summary>
            Check if the ACE is an Object ACE
            </summary>
            <returns>True if an object ACE</returns>
        </member>
        <member name="P:NtApiDotNet.Ace.AceType">
            <summary>
            Get ACE type
            </summary>
        </member>
        <member name="P:NtApiDotNet.Ace.AceFlags">
            <summary>
            Get ACE flags
            </summary>
        </member>
        <member name="P:NtApiDotNet.Ace.Mask">
            <summary>
            Get ACE access mask
            </summary>
        </member>
        <member name="P:NtApiDotNet.Ace.Sid">
            <summary>
            Get ACE Security Identifier
            </summary>
        </member>
        <member name="P:NtApiDotNet.Ace.ObjectType">
            <summary>
            Get optional Object Type
            </summary>
        </member>
        <member name="P:NtApiDotNet.Ace.InheritedObjectType">
            <summary>
            Get optional Inherited Object Type
            </summary>
        </member>
        <member name="M:NtApiDotNet.Ace.ToString">
            <summary>
            Convert ACE to a string
            </summary>
            <returns>The ACE as a string</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.ToString(System.Type,System.Boolean)">
            <summary>
            Convert ACE to a string
            </summary>
            <param name="access_rights_type">An enumeration type to format the access mask</param>
            <param name="resolve_sid">True to try and resolve SID to a name</param>
            <returns>The ACE as a string</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.Equals(System.Object)">
            <summary>
            Compare ACE to another object.
            </summary>
            <param name="obj">The other object.</param>
            <returns>True if the other object equals this ACE</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.GetHashCode">
            <summary>
            Get hash code.
            </summary>
            <returns>The hash code</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.op_Equality(NtApiDotNet.Ace,NtApiDotNet.Ace)">
            <summary>
            Equality operator
            </summary>
            <param name="a">Left ACE</param>
            <param name="b">Right ACE</param>
            <returns>True if the ACEs are equal</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.op_Inequality(NtApiDotNet.Ace,NtApiDotNet.Ace)">
            <summary>
            Not Equal operator
            </summary>
            <param name="a">Left ACE</param>
            <param name="b">Right ACE</param>
            <returns>True if the ACEs are not equal</returns>
        </member>
        <member name="M:NtApiDotNet.Ace.#ctor(NtApiDotNet.AceType,NtApiDotNet.AceFlags,System.UInt32,NtApiDotNet.Sid)">
            <summary>
            Constructor
            </summary>
            <param name="type">ACE type</param>
            <param name="flags">ACE flags</param>
            <param name="mask">ACE access mask</param>
            <param name="sid">ACE sid</param>
        </member>
        <member name="M:NtApiDotNet.Ace.#ctor(NtApiDotNet.AceType,NtApiDotNet.AceFlags,NtApiDotNet.GenericAccessRights,NtApiDotNet.Sid)">
            <summary>
            Constructor
            </summary>
            <param name="type">ACE type</param>
            <param name="flags">ACE flags</param>
            <param name="mask">ACE access mask</param>
            <param name="sid">ACE sid</param>
        </member>
        <member name="T:NtApiDotNet.Acl">
            <summary>
            Class to represent an Access Control List (ACL)
            </summary>
        </member>
        <member name="M:NtApiDotNet.Acl.#ctor(System.IntPtr,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="acl">Pointer to a raw ACL in memory</param>
            <param name="defaulted">True if the ACL was defaulted</param>
        </member>
        <member name="M:NtApiDotNet.Acl.#ctor(System.Boolean)">
            <summary>
            Constructor for a NULL ACL
            </summary>
            <param name="defaulted">True if the ACL was defaulted</param>
        </member>
        <member name="M:NtApiDotNet.Acl.#ctor">
            <summary>
            Constructor for an empty ACL
            </summary>
        </member>
        <member name="M:NtApiDotNet.Acl.#ctor(System.Collections.Generic.IEnumerable{NtApiDotNet.Ace},System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="aces">List of ACEs to add to ACL</param>
            <param name="defaulted">True if the ACL was defaulted</param>
        </member>
        <member name="M:NtApiDotNet.Acl.#ctor(System.Collections.Generic.IEnumerable{NtApiDotNet.Ace})">
            <summary>
            Constructor
            </summary>
            <param name="aces">List of ACEs to add to ACL</param>
        </member>
        <member name="P:NtApiDotNet.Acl.Defaulted">
            <summary>
            Get or set whether the ACL was defaulted
            </summary>
        </member>
        <member name="P:NtApiDotNet.Acl.NullAcl">
            <summary>
            Get or set whether the ACL is NULL (no security)
            </summary>
        </member>
        <member name="P:NtApiDotNet.Acl.Revision">
            <summary>
            Get or set the ACL revision
            </summary>
        </member>
        <member name="M:NtApiDotNet.Acl.ToByteArray">
            <summary>
            Convert the ACL to a byte array
            </summary>
            <returns>The ACL as a byte array</returns>
        </member>
        <member name="M:NtApiDotNet.Acl.ToSafeBuffer">
            <summary>
            Convert the ACL to a safe buffer
            </summary>
            <returns>The safe buffer</returns>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(System.UInt32,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(System.UInt32,System.String)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,System.String)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(System.UInt32,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(System.UInt32,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(System.UInt32,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(System.UInt32,System.String)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,System.String)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(System.UInt32,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(System.UInt32,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ace to the ACL
            </summary>
            <param name="mask">The ACE access mask</param>
            <param name="sid">The ACE SID</param>
        </member>
        <member name="M:NtApiDotNet.Acl.IsCanonical">
            <summary>
            Gets an indication if this ACL is canonical.
            </summary>
            <remarks>Canonical basically means that deny ACEs are before allow ACEs.</remarks>
            <returns>True if the ACL is canonical.</returns>
        </member>
        <member name="M:NtApiDotNet.Acl.Canonicalize">
            <summary>
            Canonicalize the ACL (for use on DACLs only).
            </summary>
            <remarks>This isn't a general purpose algorithm, for example it doesn't worry much about object ordering.
            Also it can be lossy, if it doesn't understand an ACE type it will drop it.</remarks> <returns>The canonical ACL.</returns> </member> <member name="T:NtApiDotNet.NtSecurity"> <summary> Static class to access NT security manager routines. </summary> </member> <member name="M:NtApiDotNet.NtSecurity.LookupAccountSid(NtApiDotNet.Sid)"> <summary> Looks up the account name of a SID. </summary> <param name="sid">The SID to lookup</param> <returns>The name, or null if the lookup failed</returns> </member> <member name="M:NtApiDotNet.NtSecurity.LookupAccountName(System.String)"> <summary> Lookup a SID from a username. </summary> <param name="username">The username, can be in the form domain\account.</param> <returns>The Security Identifier.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if account cannot be found.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.SecurityDescriptorToSddl(System.Byte[],NtApiDotNet.SecurityInformation)"> <summary> Convert a security descriptor to SDDL string </summary> <param name="sd">The security descriptor</param> <param name="security_information">Indicates what parts of the security descriptor to include</param> <returns>The SDDL string</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot convert to a SDDL string.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.SddlToSecurityDescriptor(System.String)"> <summary> Convert an SDDL string to a binary security descriptor </summary> <param name="sddl">The SDDL string</param> <returns>The binary security descriptor</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot convert from a SDDL string.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.SidFromSddl(System.String)"> <summary> Convert an SDDL SID string to a Sid </summary> <param name="sddl">The SDDL SID string</param> <returns>The converted Sid</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if cannot convert from a SDDL string.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.GetAllowedAccess(NtApiDotNet.SecurityDescriptor,NtApiDotNet.NtToken,NtApiDotNet.GenericAccessRights,NtApiDotNet.GenericMapping)"> <summary> Do an access check between a security descriptor and a token to determine the allowed access. </summary> <param name="sd">The security descriptor</param> <param name="token">The access token.</param> <param name="access_rights">The set of access rights to check against</param> <param name="generic_mapping">The type specific generic mapping (get from corresponding NtType entry).</param> <returns>The allowed access mask as a unsigned integer.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred in the access check.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.GetMaximumAccess(NtApiDotNet.SecurityDescriptor,NtApiDotNet.NtToken,NtApiDotNet.GenericMapping)"> <summary> Do an access check between a security descriptor and a token to determine the maximum allowed access. </summary> <param name="sd">The security descriptor</param> <param name="token">The access token.</param> <param name="generic_mapping">The type specific generic mapping (get from corresponding NtType entry).</param> <returns>The maximum allowed access mask as a unsigned integer.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred in the access check.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.GetAllowedAccess(NtApiDotNet.NtToken,NtApiDotNet.NtType,System.UInt32,System.Byte[])"> <summary> Do an access check between a security descriptor and a token to determine the allowed access. </summary> <param name="sd">The security descriptor</param> <param name="token">The access token.</param> <param name="access_rights">The set of access rights to check against</param> <param name="type">The type used to determine generic access mapping..</param> <returns>The allowed access mask as a unsigned integer.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred in the access check.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.GetMaximumAccess(NtApiDotNet.NtToken,NtApiDotNet.NtType,System.Byte[])"> <summary> Do an access check between a security descriptor and a token to determine the maximum allowed access. </summary> <param name="sd">The security descriptor</param> <param name="token">The access token.</param> <param name="type">The type used to determine generic access mapping..</param> <returns>The allowed access mask as a unsigned integer.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred in the access check.</exception> </member> <member name="M:NtApiDotNet.NtSecurity.FromNamedObject(System.String,System.String)"> <summary> Get a security descriptor from a named object. </summary> <param name="name">The path to the resource (such as \BaseNamedObejct\ABC)</param> <param name="type">The type of resource, can be null to get the method to try and discover the correct type.</param> <returns>The named resource security descriptor.</returns> <exception cref="T:NtApiDotNet.NtException">Thrown if an error occurred opening the object.</exception> <exception cref="T:System.ArgumentException">Thrown if type of resource couldn't be found.</exception>
        </member>
        <member name="M:NtApiDotNet.NtSecurity.GetIntegritySid(System.Int32)">
            <summary>
            Get a SID for a specific mandatory integrity level.
            </summary>
            <param name="level">The mandatory integrity level.</param>
            <returns>The integrity SID</returns>
        </member>
        <member name="M:NtApiDotNet.NtSecurity.GetIntegritySid(NtApiDotNet.TokenIntegrityLevel)">
            <summary>
            Get a SID for a specific mandatory integrity level.
            </summary>
            <param name="level">The mandatory integrity level.</param>
            <returns>The integrity SID</returns>
        </member>
        <member name="M:NtApiDotNet.NtSecurity.IsIntegritySid(NtApiDotNet.Sid)">
            <summary>
            Checks if a SID is an integrity level SID
            </summary>
            <param name="sid">The SID to check</param>
            <returns>True if an integrity SID</returns>
        </member>
        <member name="T:NtApiDotNet.SecurityDescriptorControl">
            <summary>
            Security descriptor control flags.
            </summary>
        </member>
        <member name="T:NtApiDotNet.SecurityDescriptorSid">
            <summary>
            A security descriptor SID which maintains defaulted state.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptorSid.Sid">
            <summary>
            The SID.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptorSid.Defaulted">
            <summary>
            Indicates whether the SID was defaulted or not.
            </summary>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptorSid.#ctor(NtApiDotNet.Sid,System.Boolean)">
            <summary>
            Constructor from existing SID.
            </summary>
            <param name="sid">The SID.</param>
            <param name="defaulted">Whether the SID was defaulted or not.</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptorSid.ToString">
            <summary>
            Convert to a string.
            </summary>
            <returns>The string form of the SID</returns>
        </member>
        <member name="T:NtApiDotNet.SecurityDescriptor">
            <summary>
            Security descriptor.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Dacl">
            <summary>
            Discretionary access control list (can be null)
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Sacl">
            <summary>
            Systerm access control list (can be null)
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Owner">
            <summary>
            Owner (can be null)
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Group">
            <summary>
            Group (can be null)
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Control">
            <summary>
            Control flags
            </summary>
        </member>
        <member name="P:NtApiDotNet.SecurityDescriptor.Revision">
            <summary>
            Revision value
            </summary>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.#ctor(System.Byte[])">
            <summary>
            Constructor
            </summary>
            <param name="security_descriptor">Binary form of security descriptor</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.#ctor(NtApiDotNet.NtToken)">
            <summary>
            Constructor from a token default DACL and ownership values.
            </summary>
            <param name="token">The token to use for its default DACL</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.#ctor(NtApiDotNet.NtObject,NtApiDotNet.NtToken,System.Boolean)">
            <summary>
            Constructor
            </summary>
            <param name="base_object">Base object for security descriptor</param>
            <param name="token">Token for determining user rights</param>
            <param name="is_directory">True if a directory security descriptor</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.#ctor(System.String)">
            <summary>
            Constructor from an SDDL string
            </summary>
            <param name="sddl">The SDDL string</param>
            <exception cref="T:NtApiDotNet.NtException">Thrown if invalid SDDL</exception>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.ToByteArray">
            <summary>
            Convert security descriptor to a byte array
            </summary>
            <returns>The binary security descriptor</returns>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.ToSddl(NtApiDotNet.SecurityInformation)">
            <summary>
            Convert security descriptor to SDDL string
            </summary>
            <param name="security_information">The parts of the security descriptor to return</param>
            <returns>The SDDL string</returns>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.ToSddl">
            <summary>
            Convert security descriptor to SDDL string
            </summary>
            <returns>The SDDL string</returns>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.ToSafeBuffer">
            <summary>
            Convert security descriptor to a safe buffer.
            </summary>
            <returns></returns>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(System.UInt32,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(System.UInt32,System.String)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,System.String)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(System.UInt32,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(System.UInt32,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessAllowedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.Sid)">
            <summary>
            Add an access allowed ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(System.UInt32,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,System.String)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(System.UInt32,System.String)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,System.String)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID in SDDL form</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(System.UInt32,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(NtApiDotNet.GenericAccessRights,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddAccessDeniedAce(System.UInt32,NtApiDotNet.AceFlags,NtApiDotNet.Sid)">
            <summary>
            Add an access denied ACE to the DACL
            </summary>
            <param name="mask">The access mask</param>
            <param name="flags">The ACE flags</param>
            <param name="sid">The SID</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddMandatoryLabel(NtApiDotNet.TokenIntegrityLevel)">
            <summary>
            Add mandatory integrity label to SACL
            </summary>
            <param name="level">The integrity level</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddMandatoryLabel(NtApiDotNet.TokenIntegrityLevel,NtApiDotNet.MandatoryLabelPolicy)">
            <summary>
            Add mandatory integrity label to SACL
            </summary>
            <param name="level">The integrity level</param>
            <param name="policy">The mandatory label policy</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddMandatoryLabel(NtApiDotNet.TokenIntegrityLevel,NtApiDotNet.AceFlags,NtApiDotNet.MandatoryLabelPolicy)">
            <summary>
            Add mandatory integrity label to SACL
            </summary>
            <param name="level">The integrity level</param>
            <param name="flags">The ACE flags.</param>
            <param name="policy">The mandatory label policy</param>
        </member>
        <member name="M:NtApiDotNet.SecurityDescriptor.AddMandatoryLabel(NtApiDotNet.Sid,NtApiDotNet.AceFlags,NtApiDotNet.MandatoryLabelPolicy)">
            <summary>
            Add mandatory integrity label to SACL
            </summary>
            <param name="label">The integrity label SID</param>
            <param name="flags">The ACE flags.</param>
            <param name="policy">The mandatory label policy</param>
        </member>
        <member name="T:NtApiDotNet.SecurityAuthority">
            <summary>
            Predefined security authorities
            </summary>
        </member>
        <member name="T:NtApiDotNet.SidIdentifierAuthority">
            <summary>
            Represents an identifier authority for a SID.
            </summary>
        </member>
        <member name="P:NtApiDotNet.SidIdentifierAuthority.Value">
            <summary>
            Get a reference to the identifier authority. This can be used to modify the value
            </summary>
        </member>
        <member name="M:NtApiDotNet.SidIdentifierAuthority.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:NtApiDotNet.SidIdentifierAuthority.#ctor(System.Byte[])">
            <summary>
            Construct from an existing authority array.
            </summary>
            <param name="authority">The authority, must be 6 bytes in length.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if authority is not the correct length.</exception>
        </member>
        <member name="M:NtApiDotNet.SidIdentifierAuthority.#ctor(NtApiDotNet.SecurityAuthority)">
            <summary>
            Constructor from a simple predefined authority.
            </summary>
            <param name="authority">The predefined authority.</param>
        </member>
        <member name="M:NtApiDotNet.SidIdentifierAuthority.Equals(System.Object)">
            <summary>
            Compares authority to another.
            </summary>
            <param name="obj">The other authority to compare against.</param>
            <returns>True if authority is equal.</returns>
        </member>
        <member name="M:NtApiDotNet.SidIdentifierAuthority.GetHashCode">
            <summary>
            Get hash code.
            </summary>
            <returns>The authority hash code.</returns>
        </member>
        <member name="T:NtApiDotNet.Sid">
            <summary>
            Class to represent a Security Identifier.
            </summary>
        </member>
        <member name="P:NtApiDotNet.Sid.Authority">
            <summary>
            The SIDs authority.
            </summary>
        </member>
        <member name="P:NtApiDotNet.Sid.SubAuthorities">
            <summary>
            List of the SIDs sub authorities.
            </summary>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(NtApiDotNet.SidIdentifierAuthority,System.UInt32[])">
            <summary>
            Constructor for authority and sub authorities.
            </summary>
            <param name="authority">The identifier authority.</param>
            <param name="sub_authorities">The sub authorities.</param>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(NtApiDotNet.SecurityAuthority,System.UInt32[])">
            <summary>
            Constructor for authority and sub authorities.
            </summary>
            <param name="authority">The identifier authority.</param>
            <param name="sub_authorities">The sub authorities.</param>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(System.IntPtr)">
            <summary>
            Constructor from an unmanged buffer.
            </summary>
            <param name="sid">A pointer to a buffer containing a valid SID.</param>
            <exception cref="T:NtApiDotNet.NtException">Thrown if the buffer is not valid.</exception>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(System.Runtime.InteropServices.SafeBuffer)">
            <summary>
            Constructor from an unmanged buffer.
            </summary>
            <param name="sid">A safe buffer containing a valid SID.</param>
            <exception cref="T:NtApiDotNet.NtException">Thrown if the buffer is not valid.</exception>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(System.Byte[])">
            <summary>
            Constructor from an manged buffer.
            </summary>
            <param name="sid">A buffer containing a valid SID.</param>
            <exception cref="T:NtApiDotNet.NtException">Thrown if the buffer is not valid.</exception>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(NtApiDotNet.Sid)">
            <summary>
            Constructor from existing Sid.
            </summary>
            <param name="sid">The existing Sid.</param>
        </member>
        <member name="M:NtApiDotNet.Sid.#ctor(System.String)">
            <summary>
            Constructor from an SDDL string.
            </summary>
            <param name="sid">The SID in SDDL format.</param>
            <example>
            new Sid("S-1-0-0");
            new Sid("WD");
            </example>
            <seealso cref="M:NtApiDotNet.NtSecurity.LookupAccountName(System.String)"/>
        </member>
        <member name="M:NtApiDotNet.Sid.ToSafeBuffer">
            <summary>
            Convert the SID to a safe buffer.
            </summary>
            <returns>The safe buffer containing the SID.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.ToArray">
            <summary>
            Convert to a managed byte array.
            </summary>
            <returns>The managed byte array.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.EqualPrefix(NtApiDotNet.Sid)">
            <summary>
            Compares two sids to see if their prefixes are the same.
            </summary>
            <param name="sid">The sid to compare against</param>
            <returns>True if the sids share a prefix.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.Equals(System.Object)">
            <summary>
            Compare two Sids.
            </summary>
            <param name="obj">The other Sid to compare.</param>
            <returns>True if the Sids are equal.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.op_Equality(NtApiDotNet.Sid,NtApiDotNet.Sid)">
            <summary>
            Equality operator.
            </summary>
            <param name="a">Sid 1</param>
            <param name="b">Sid 2</param>
            <returns>True if the Sids are equal.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.op_Inequality(NtApiDotNet.Sid,NtApiDotNet.Sid)">
            <summary>
            Inequality operator.
            </summary>
            <param name="a">Sid 1</param>
            <param name="b">Sid 2</param>
            <returns>True if the Sids are not equal.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.GetHashCode">
            <summary>
            Get hash code.
            </summary>
            <returns>The hash code.</returns>
        </member>
        <member name="M:NtApiDotNet.Sid.ToString">
            <summary>
            Convert to an SDDL format string.
            </summary>
            <returns>The SDDL format string (e.g. S-1-1-0)</returns>
        </member>
        <member name="P:NtApiDotNet.Sid.Name">
            <summary>
            Get the account name of the SID or the SDDL form is no corresponding name.
            </summary>
        </member>
        <member name="T:NtApiDotNet.KnownSids">
            <summary>
            Static methods to get some known SIDs.
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.Null">
            <summary>
            NULL SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.World">
            <summary>
            Everyone SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.Local">
            <summary>
            Local user SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.CreatorOwner">
            <summary>
            CREATOR OWNER SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.CreatorGroup">
            <summary>
            CREATOR GROUP SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.Service">
            <summary>
            Service SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.Anonymous">
            <summary>
            ANONYMOUS LOGON SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.AuthenticatedUsers">
            <summary>
            Authenticated Users SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.Restricted">
            <summary>
            RESTRICTED SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.LocalSystem">
            <summary>
            LOCAL SYSTEM SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.LocalService">
            <summary>
            LOCAL SERVICE SID
            </summary>
        </member>
        <member name="P:NtApiDotNet.KnownSids.NetworkService">
            <summary>
            NETWORK SERVICE SID
            </summary>
        </member>
        <member name="T:NtApiDotNet.ThreadImpersonationContext">
            <summary>
            Disposable class to scope an impersonation context.
            </summary>
        </member>
        <member name="M:NtApiDotNet.ThreadImpersonationContext.Revert">
            <summary>
            Revert impersonation back to the current user.
            </summary>
        </member>
        <member name="T:NtApiDotNet.UnicodeString">
            <summary>
            Standard UNICODE_STRING class
            </summary>
        </member>
        <member name="T:NtApiDotNet.UnicodeStringOut">
            <summary>
            This class is used when the UNICODE_STRING is an output parameter.
            The allocatation of the buffer is handled elsewhere.
            </summary>
        </member>
        <member name="T:NtApiDotNet.UnicodeStringAllocated">
            <summary>
            This class is used when the UNICODE_STRING needs to be preallocated
            and then returned back from a caller.
            </summary>
        </member>
        <member name="T:NtApiDotNet.NtObjectUtils">
            <summary>
            Static utility methods.
            </summary>
        </member>
        <member name="M:NtApiDotNet.NtObjectUtils.SafeHandleToArray(System.Runtime.InteropServices.SafeHandle,System.Int32)">
            <summary>
            Convert the safe handle to an array of bytes.
            </summary>
            <returns>The data contained in the allocaiton.</returns>
        </member>
        <member name="M:NtApiDotNet.NtObjectUtils.ToNtException(NtApiDotNet.NtStatus)">
            <summary>
            Convert an NtStatus to an exception if the status is an erro
            </summary>
            <param name="status">The NtStatus</param>
            <returns>The original NtStatus if not an error</returns>
            <exception cref="T:NtApiDotNet.NtException">Thrown if status is an error.</exception>
        </member>
        <member name="M:NtApiDotNet.NtObjectUtils.IsSuccess(NtApiDotNet.NtStatus)">
            <summary>
            Checks if the NtStatus value is a success
            </summary>
            <param name="status">The NtStatus value</param>
            <returns>True if a success</returns>
        </member>
    </members>
</doc>