NtApiDotNet.xml

<?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>