diff --git a/packagesNtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml b/packagesNtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml new file mode 100644 index 0000000..1f8091c --- /dev/null +++ b/packagesNtApiDotNet.1.1.33/lib/net461/NtApiDotNet.xml @@ -0,0 +1,51865 @@ + + + + NtApiDotNet + + + + + Result of an access check with specific access types. + + The access rights type, must be derived from an Enum. + + + + The NT status code from the access check. + + + + + The granted access mask from the check. + + + + + The granted access mapped to generic access mask. + + + + + The required privileges for this access. + + + + + The specific granted access mask from the check. + + + + + The specific granted access mapped to generic access mask. + + + + + Object type associated with the access. + + + + + The level of the object type if used. + + + + + Optional name for the object type. + + + + + When a result from an Audit Access Check indicates whether the + an audit needs to be generated on close. + + + + + Whether the access check was a success. + + + + + Get access check result as a specific access. + + The specific access results. + + + + Get access check result as a specific access. + + The specific access. + + + + Result of an access check. + + + + + Result of an access check with generic Enum access types. + + + + + Structure for an NT access mask. + + + + + The access mask's access bits. + + + + + Constructor. + + Access bits to use + + + + Implicit conversion from Int32. + + The access enumeration. + + + + Implicit conversion from UInt32. + + The access enumeration. + + + + Implicit conversion from enumerations. + + The access enumeration. + + + + Convert access mask to a generic access object. + + The generic access mask + + + + Convert access mask to a mandatory label policy + + The mandatory label policy + + + + Convert to a specific access right. + + The specific access right. + The converted value. + + + + Convert to a specific access right. + + The type of enumeration to convert to. + The converted value. + + + + Get whether this access mask is empty (i.e. it's 0) + + + + + Get whether this access mask has no access rights, i.e. not empty. + + + + + Get whether this access mask has generic access rights. + + + + + Get whether this access mask hash type specific access rights. + + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise AND operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Bitwise OR operator. + + Access mask 1 + Access mask 2 + The new access mask. + + + + Equality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Inequality operator. + + Access mask 1 + Access mask 2 + True if equal. + + + + Bitwise NOT operator. + + Access mask 1 + The new access mask. + + + + Overridden GetHashCode. + + The hash code. + + + + Overridden Equals. + + The object to compare against. + True if equal. + + + + Get an empty access mask. + + + + + Overridden ToString method. + + The access mask. + + + + ToString method. + + Format code for the access mask. + The formatting string. + + + + ToString method. + + Format code for the access mask. + The format provider. + The formatting string. + + + + Flags representing what generic access the entry maps to. + + + + + Not mapped to any access. + + + + + Mapped to read. + + + + + Mapped to write. + + + + + Mapped to execute. + + + + + Mapped to All. + + + + + A structure to hold an access mask to enum mapping. + + + + + The access mask. + + + + + The value of the access mask entry enumeration. + + + + + The generic access this maps to. + + + + + The optional SDK name. + + + + + Overridden ToString method. + + The string form of the entry. + + + + Class to represent an Access Control Entry (ACE) + + + + + Check if the ACE is an allowed ACE. + + + + + Check if the ACE is a denied ACE. + + + + + Check if the ACE is an Object ACE + + + + + Check if the ACE is a callback ACE + + + + + Check if ACE is a conditional ACE + + + + + Check if ACE is a resource attribute ACE. + + + + + Check if ACE is a mandatory label ACE. + + + + + Check if ACE is a compound ACE. + + + + + Check if ACE is an audit ACE. + + + + + Check if ACE is an access filter ACE. + + + + + Check if ACE is a process trust label ACE. + + + + + Check if ACE is a critical ACE. + + + + + Check if ACE is inherit only. + + + + + Check if ACE is inherited by objects. + + + + + Check if ACE is inherited by objects. + + + + + Get ACE type + + + + + Get ACE flags + + + + + Get ACE access mask + + + + + Get ACE Security Identifier + + + + + The type of compound ACE. When serialized always set to Impersonate. + + + + + Get the client SID in a compound ACE. + + + + + Get optional Object Type + + + + + Get optional Inherited Object Type + + + + + Optional application data. + + + + + Get conditional check if a conditional ace. + + + + + Get or set resource attribute. + + + + + Constructor + + ACE type + ACE flags + ACE access mask + ACE sid + + + + Convert ACE to a string + + The ACE as a string + + + + Convert ACE to a string + + An enumeration type to format the access mask + True to try and resolve SID to a name + The ACE as a string + + + + Clone this ACE. + + The cloned ACE. + + + + Get whether the current access mask is granted specific permissions. + + The access mask to check + True one or more access granted. + + + + Get whether the current access mask is granted all specific permissions. + + The access mask to check + True access all is granted. + + + + Get the common name of the object type. + + Specify the domain for the object type. + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the object type. + + If true then expand the list of properties. + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + Specify the domain for the object type. + The common name of the object type, or the GUID as a string. + This function could be quite slow to query the first time. + + + + Get the common name of the inherited object type. + + The common name of the object type, or the GUID as a string. + This will query the local domain, it could be quite slow to query the first time. + + + + Convert the ACE to a byte array. + + The ACE as a byte array. + + + + Compare ACE to another object. + + The other object. + True if the other object equals this ACE + + + + Get hash code. + + The hash code + + + + Equality operator + + Left ACE + Right ACE + True if the ACEs are equal + + + + Not Equal operator + + Left ACE + Right ACE + True if the ACEs are not equal + + + + Class to represent an Access Control List (ACL) + + + + + Constructor + + Pointer to a raw ACL in memory + True if the ACL was defaulted + + + + Constructor + + Buffer containing an ACL in memory + True if the ACL was defaulted + + + + Constructor for a NULL ACL + + True if the ACL was defaulted + + + + Constructor for an empty ACL + + + + + Constructor + + List of ACEs to add to ACL + True if the ACL was defaulted + + + + Constructor + + List of ACEs to add to ACL + + + + Constructor. + + An SDDL string to create the DACL from. + The SDDL string should be of the form D:(...) or S:(...), if you specify + both a DACL and a SACL then only the DACL will be used. + + + + Convert the ACL to a byte array + + The ACL as a byte array + + + + Convert the ACL to a safe buffer + + The safe buffer + + + + Add an ace to the ACL + + The ACE to add + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access allowed ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an access denied ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit ace to the ACL + + The ACE access mask + The ACE flags + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit success ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Add an audit fail ace to the ACL + + The ACE access mask + The ACE SID + + + + Gets an indication if this ACL is canonical. + + Canonical means that deny ACEs are before allow ACEs. + True to canonicalize a DACL, otherwise a SACL. + True if the ACL is canonical. + + + + Gets an indication if this DACL is canonical. + + Canonical basically means that deny ACEs are before allow ACEs. + True if the ACL is canonical. + + + + Canonicalize the ACL. + + True to canonicalize a DACL, otherwise a SACL. + + + + Canonicalize the ACL (for use on DACLs only). + + The canonical ACL. + + + + Find the first ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found ace. Returns null if not found. + + + + Find the first ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found ace. Returns null if not found. + + + + Find the all ACE with a specified type. + + The type to find. + True to include inherit only ACEs. + The found aces. + + + + Find the all ACE with a specified type. Includes InheritOnly ACEs. + + The type to find. + The found aces. + + + + Find the last ACE with a specified type. + + The type to find. + The found ace. Returns null if not found. + + + + Clone the ACL. Also clones all ACEs. + + The cloned ACL. + + + + Get or set whether the ACL was defaulted + + + + + Get or set whether the ACL is NULL (no security) + + + + + Get or set the protected flag. + + + + + Get or set the auto-inherited flag. + + + + + Get or set the auto-inherited required flag. + + + + + Get or set the ACL revision + + + + + Indicates the ACL has at least one conditional ACE. + + + + + Indicates the ACL has at least one object ACE. + + + + + Base class to represent an ALPC message. + + + + + Constructor. + + The port message header. + + + + Constructor. + + + + + Update the header length fields. + + The length of the valid data. + The maximum data length supported by the packet. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Get or set the header. + + + + + The process ID of the sender. + + + + + The thread ID of the sender. + + + + + Get total length of the message. + + + + + Get the allocated data length for the message. + + + + + Get data length of the message. + + + + + Get the message ID. + + + + + Get the callback ID. + + + + + Get the message type. + + + + + Get additional flags on message type. + + + + + Indicates that the message requires a reply (otherwise things can leak). + + + + + Indicates that the message requires a reply (obsolete). + + + + + Get direct status for the message. + + The direct status for the message. Returns STATUS_PENDING if the message is yet to be processed. + + + + Get the maximum size of a message minus the header size. + + + + + Create a safe buffer for this message. + + The safe buffer. + + + + Method to query information for a message. + + The information class. + The port which has processed the message. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The port which has processed the message. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The port which has processed the message. + The information class to query. + The result of the query. + Thrown on error. + + + + An ALPC message which holds a raw set of bytes. + + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + Specify a text encoding for the DataString property. + + + + Constructor. + + Data to initialize the message with. + Maximum length of the message buffer. + + + + Constructor. + + Data to initialize the message with. + + + + Constructor. + + Data to initialize the message with. + Specify a text encoding for the DataString property. + + + + Constructor. + + Total allocated length of the message buffer. + + + + Constructor. + + Total allocated length of the message buffer. + Specify a text encoding for the DataString property. + + + + Get or set the message data. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the message data as an encoding string. + + When you set the data it'll update the DataLength and TotalLength fields. + + + + Get or set the text encoding in this raw message. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + An ALPC message which holds a specific type with optional trailing data. + + The type representing the data. + + + + Constructor for a receive buffer. + + + + + Constructor for a receive buffer. + + Length of message. This will be rounded up to at least accomodate the header. + + + + Constructor for a send/receive buffer. + + The initial value to set. + Trailing data. + + + + Constructor for a send/receive buffer. + + The initial value to set. + + + + Get or set the type in the buffer. + + + + + Get or set any trailing data after the value. + + + + + Method to handle when FromSafeBuffer is called. + + The message buffer to initialize from.. + The ALPC port associated with this message. + + + + Method to handle when ToSafeBuffer is called. + + The message buffer being created. + + + + Class to represent a set of sending attributes. + + + + + Constructor. + + + + + Constructor. + + List of attributes to send. + + + + Add an attribute object. + + The attribute to add. + + + + Remove an attribute object. + + The attribute flag to remove. + + + + Remove an attribute object. + + The attribute to remove. + + + + Add a list of handles to the send attributes. + + The list of objects. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The list of handles. + + + + Add a list of handles to the send attributes. + + The handle to add. + This method doesn't maintain a reference to the objects. You need to keep them alive elsewhere. + + + + Add a list of handles to the send attributes. + + The handle to add. + + + + Get the allocated attributes. + + + + + Class to represent a set of received attributes. + + + + + Constructor. Allocated space for all known attributes. + + + + + Constructor. + + + + + Get the allocated attributes. + + + + + Get the list of valid attributes. + + + + + Get a list of the valid attributes. + + + + + Get list of passed handles. + + + + + Get the mapped data view. If no view sent this property is invalid. + + + + + Get the security context. If no security context this property is invalid. + + + + + Dispose method. + + + + + Get a typed attribute. + + The type of attribute to get. + The attribute. Returns a default initialized object if not valid. + + + + Get an attribute. + + The attribute flag to get. + The attribute. Returns null if not found. + + + + Convert this set of attributes to a buffer to send. + + The send attributes. + + + + Convert this set of attributes to one which can be used to free on continuation required. + + The attributes to + The send attributes. + + + + Checks if an attribute flag is valid. + + The attribute to test. + True if the attribute is value. + + + + Base class to represent a message attribute. + + + + + The flag for this attribute. + + + + + Constructor. + + The single attribute flag which this represents. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Security attribute flags. + + + + + Security quality of service. + + + + + Context handle. + + + + + Create an attribute which with create a handle automatically. + + The security quality of service. + The security message attribute. + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Token ID of token. + + + + + Authentication ID of token. + + + + + Modified ID of token + + + + + Class representing a security message attribute. + + + + + Constructor. + + + + + Port context. + + + + + Message context. + + + + + Sequence number. + + + + + Message ID. + + + + + Callback ID. + + + + + Class representing a data view message attribute. + + + + + Constructor. + + + + + View flags. + + + + + Handle to section. + + + + + View base. + + + + + View size. + + + + + Handle attribute entry. + + + + + Handle flags. + + + + + The NT object. + + + + + The object type for the handle. + + + + + Desired access for the handle. + + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Handle attribute to initialize from. + + + + Constructor. + + Information structure to initialize from. + + + + Constructor. + + + + + Constructor. + + The object to construct the entry from. Will take a copy of the handle. + + + + Class representing a handle message attribute. + + + + + Constructor. + + + + + Constructor. + + List of handle entries. + + + + Constructor. + + The handle entry. + + + + Constructor. + + List of objects to create the handle entries. + This constructor takes copies of the objects. + + + + Constructor. + + A single object to send. + This constructor takes copies of the object. + + + + List of handles in this attribute. + + + + + Class representing a direct message attribute. + + + + + Constructor. + + The event object. + + + + The event object. + + + + + Class representing a work on behalf of message attribute. + + + + + Constructor. + + + + + Thread ID. + + + + + Thread creation time (low). + + + + + Safe buffer to store an allocated set of ALPC atributes. + + + + + Get a pointer to an allocated attribute. Returns NULL if not available. + + The attribute to get. + The pointer to the attribute buffer, IntPtr.Zero if not found. + + + + Get an attribute as a structured type. + + The attribute type. + The attribute. + A buffer which represents the structured type. + Thrown if attribute doesn't exist. + + + + Create a new buffer with allocations for a specified set of attributes. + + The attributes to allocate. + The allocated buffed. + + + + Dispose the safe buffer. + + True if disposing + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Get the NULL buffer. + + + + + Class to represent an ALPC port section. + + + + + Handle to the port section. + + + + + Size of the port section. + + + + + The actual section size. + + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + True to throw on error. + The section view attribute. + + + + Create a new section view attribute. + + Specify the flags for the data view attribute. + The section view size. + The section view attribute. + + + + Create a new section view attribute. + + The section view attribute. + + + + Dispose of the port section. + + + + + Supported windows verion + + + + + This should always be at the end. + + + + + Attribute to indicate the required version for a function. + Applied if the function needs a version greater than 7. + + + + + The supported version. + + + + + Constructor + + The supported version + + + + Attribute used for managed structures to indicate the start of data. + This is used in situations where the data immediately trail + + + + + Constructor + + The field name which indicates the first address of data. + + + + The field name which indicates the first address of data. + + + + + When allocating this structure always include the field in the total length calculation. + + + + + Class to represent an API set entry. + + + + + Flags for the entry. + + + + + The name of the API set. + + + + + The default host module. + + + + + Hash version of the name. + + + + + List of hosts. + + + + + Get host module for an import module. + + + + + + + Represents a single API set host. + + + + + The imported module this API set host applies to. + + + + + The module which implements this API set. + + + + + Is the host the default host. + + + + + Flags for API set namespace. + + + + + None. + + + + + The API set is sealed. + + + + + The API set is an extension. + + + + + Class to represent an API set namespace. + + + + + Flags for the namespace. + + + + + List of API set entries. + + + + + Get API set namespace from current process. + + + + + Gets an API set based on its name. + + The API set name. + The API set entry. Returns null if not found. + + + + Flags for a boundary descriptor + + + + + None + + + + + Automatically add the AppContainer package SID to the boundary + + + + + Class which represents a private namespace boundary descriptor + + + + + Constructor + + The name of the boundary + Additional flags for the boundary + + + + Constructor + + The name of the boundary + + + + Add a SID to the boundary descriptor. + + This SID is used in an access check when creating or deleting private namespaces. + The SID to add. + + + + Add an integrity level to the boundary descriptor. + + This integrity level is used in an access check when creating or deleting private namespaces. + The integrity level to add. + + + + Add a list of SIDs to the boundary descriptor. + + The SIDs to add. This can include normal and integrity level SIDs + + + + Add a list of SIDs to the boundary descriptor. + + The first SID to add + Additional SIDs + + + + The handle to the boundary descriptor. + + + + + Create a boundary descriptor from a string representation. + + A boundary descriptor string of the form [SID[:SID...]@]NAME where SID is an SDDL format SID. + The new boundary descriptor. + + + + Finalizer + + + + + Dispose + + + + + Some simple utilities to create structure buffers. + + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + The new structure buffer. + + + + Create a buffer based on a passed type. + + The type to use in the structure buffer. + The value to initialize the buffer with. + Additional byte data after the structure. + Indicates if additional_size includes the structure size or not. + The new structure buffer. + + + + Create a buffer based on a byte array. + + The byte array for the buffer. + The safe buffer. + + + + Create an buffer from an array. + + The array element type, must be a value type. + The array of elements. + The allocated array buffer. + + + + Read a NUL terminated string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated byte string for the byte offset. + + The buffer to read from. + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The buffer to read from. + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a char array with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The chars read from the buffer + + + + Read a Unicode string string with length. + + The buffer to read from. + The number of characters to read. + The byte offset to read from. + The string read from the buffer. + + + + Write char array. + + The buffer to write to. + The byte offset to write to. + The chars to write. + + + + Write unicode string. + + The buffer to write to. + The byte offset to write to. + The string value to write. + + + + Read bytes from buffer. + + The buffer to read from. + The byte offset to read from. + The number of bytes to read. + The byte array. + + + + Write bytes to a buffer. + + The buffer to write to. + The byte offset to write to. + The data to write. + + + + Get a structure buffer at a specific offset. + + The type of structure. + The buffer to map. + The offset into the buffer. + The structure buffer. + The returned buffer is not owned, therefore you need to maintain the original buffer while operating on this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Creates a view of an existing safe buffer. + + The buffer to create a view on. + The offset from the start of the buffer. + The length of the view. + True to make the view writable, false for read-only. + The buffer view. + Note that the returned buffer doesn't own the memory, therefore the original buffer + must be maintained for the lifetime of this buffer. + + + + Zero an entire buffer. + + The buffer to zero. + + + + Fill an entire buffer with a specific byte value. + + The buffer to full. + The fill value. + + + + Compare two buffers for equality. + + The left buffer. + The offset into the left buffer. + The right buffer. + The offset into the right buffer. + The length to compare. + True if the buffers are equal. + + + + Compare a buffer and a byte array for equality. + + The buffer. + The offset into the left buffer. + The compare byte array. + True if the buffers are equal. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + Start offset in the buffer. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Find a byte array in a buffer. Returns all instances of the compare array. + + The buffer to find the data in. + The comparison byte array. + A list of offsets into the buffer where the compare was found. + + + + Class to represent a Security Atttribute. + + + + + The name of the attribute. + + + + + The type of values. + + + + + The attribute flags. + + + + + The list of values. + + + + + The count of values. + + + + + Convert the attribute to a builder to modify it. + + The builder object. + + + + Convert the security attribute to an SDDL string. + + The security attribute as an SDDL string. + + + + Converts the attribute to a Resource Attribute ACE. + + The resource attribute ACE. + + + + Class to create a new user process using the native APIs. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Restrict new child processes + + + + + Override restrict child process + + + + + Extra process/thread attributes + + + + + Added protected process protection level. + + The type of protected process. + The signer level. + + + + Return on error instead of throwing an exception. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Constructor + + + + + For the current process + + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + The new forked process result + + + + For the current process + + Process create flags. + Thread create flags. + True to throw on error. + The new forked process result + + + + Start the new process based on the ImagePath parameter. + + The result of the process creation + + + + Start the new process + + The image path to the file to execute + The result of the process creation + + + + Result from a native create process call. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status + + + + + True if create succeeded + + + + + Result of the create information + + + + + Creation state + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Set to true to terminate process on disposal + + + + + Finalizer + + + + + Dispose + + + + + The base class for a debug event. + + + + + Process ID for the event. + + + + + Thread ID for the event. + + + + + The event code. + + + + + Constructor. + + The current debug event. + The debug port associated with this event. + + + + Continue the debugged process. + + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The continue status code. + + + + Continue the debugged process with a success code. + + + + + Dispose the event. + + + + + Debug event for the Create Process event. + + + + + Subsystem key for the process. + + + + + Handle to the process file (if available). + + + + + Base of image file. + + + + + Debug info file offset. + + + + + Debug info file size. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the process (if available). + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Create Thread event. + + + + + Subsystem key for the thread. + + + + + Start address of the thread. + + + + + Handle to the thread (if available). + + + + + Dispose the event. + + + + + Debug event for the Exit Thread event. + + + + + Exit status code. + + + + + Debug event for the Exit Process event. + + + + + Exit status code. + + + + + Debug event for load DLL event. + + + + + DLL file handle. + + + + + Base of loaded DLL. + + + + + Debug info offset. + + + + + Debug info size. + + + + + Address of name. + + + + + Dispose the event. + + + + + Debug event for unload DLL event. + + + + + Base of loaded DLL. + + + + + Debug event for exception event. + + + + + Indicates if this is a first chance exception. + + + + + Exception code. + + + + + Exception flags. + + + + + Pointer to next exception in the chain. + + + + + Address of exception. + + + + + Additional parameters for exception. + + + + + Debug event when we don't handle the state. + + + + + The raw debug event. + + + + + Represents a list where the elements can be trivially disposed in one go. + + An IDisposable implementing type + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The resource object. + The added resource. + + + + Add a resource to the list and return a reference to it. + + The type of resource to add. + The added resource. + + + + Convert this list to an array then clear it to the disposal no longer happens. + + The elements as an array. + After doing this the current list will be cleared. + + + + Detach a detachable reference and add it to the list. + + The type of resource to detach. + The detached resource. + + + + Dispose method + + + + + Implementation of disposable list which just accepts IDisposable objects. + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Adds a delegate which will be called when the list is disposed. + + The delegate to call on dispose. + This can be used to add more complex disposable. + + + + Disposable list of safe handles + + + + + Constructor + + + + + Constructor + + The initial capacity of the list + + + + Constructor + + A collection to initialize the list + + + + Move the handle list to a new disposable list. + + The list of handles which have been moved. + After doing this the current list will be cleared. + + + + Flags for an EA entry + + + + + No flags. + + + + + Processor must handle this EA. + + + + + A single EA entry. + + + + + Name of the entry + + + + + Data associated with the entry + + + + + Flags + + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Constructor + + The name of the entry + Data associated with the entry + Flags for entry. + + + + Get the EA buffer data as a string. + + The data as a string. + + + + Get the EA buffer data as an Int32. + + The data as an Int32. + + + + Convert entry to a string + + The entry as a string + + + + Class to create an Extended Attributes buffer for NtCreateFile + + + + + Constructor + + + + + Constructor + + List of entries to add. + + + + Constructor from a binary EA buffer + + The EA buffer to parse + + + + Constructor + + Existing buffer to copy. + + + + Add a new EA entry from an old entry. The data will be cloned. + + The entry to add. + + + + Add a new EA entry + + The name of the entry + The associated data, will be cloned + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Add a new EA entry + + The name of the entry + The associated data + The entry flags. + + + + Get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Remove an entry from the buffer. + + The entry to remove. + + + + Remove an entry from the buffer by name. + + The name of the entry. + Thrown if no entry by that name. + + + + Convert to a byte array + + The byte array + + + + Get the list of entries. + + + + + Get number of entries. + + + + + Get whether the buffer contains a specific entry. + + The name of the entry. + True if the buffer contains an entry with the name. + + + + Index to get an entry by name. + + The name of the entry. + The found entry. + Thrown if no entry by that name. + + + + Clear all entries. + + + + + Access rights generic mapping. + + + + + Mapping for Generic Read + + + + + Mapping for Generic Write + + + + + Mapping for Generic Execute + + + + + Mapping for Generic All + + + + + Map a generic access mask to a specific one. + + The generic mask to map. + The mapped mask. + + + + Get whether this generic mapping gives read access. + + The mask to check against. + True if we have read access. + + + + Get whether this generic mapping gives write access. + + The mask to check against. + True if we have write access. + + + + Get whether this generic mapping gives execute access. + + The mask to check against. + True if we have execute access. + + + + Get whether this generic mapping gives all access. + + The mask to check against. + True if we have all access. + + + + Try and unmap access mask to generic rights. + + The mask to unmap. + The unmapped mask. Any access which can be generic mapped is left in the mask as specific rights. + + + + Get the allowed access mask for a specified mandatory access policy. + + The mandatory access policy. + The allowed access mask for the policy. + In general NoWriteUp will always be set on the policy. + + + + Convert generic mapping to a string. + + The generic mapping as a string. + + + + Interface to abstract the kernel transaction manager support. + + + + + Get handle for the transaction. + + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a mount point. + + + + + Symbolic link name. + + + + + Unique ID. + + + + + Device name. + + + + + Class to access mount point manager utilities. + + + + + Query the list of mount points. + + True to throw on error. + The list of mount points. + + + + Query the list of mount points. + + The list of mount points. + + + + Class to represent the USN journal data. + + + + + Flags for the USN journal change reason. + + + + + Class to represent a USN journal record. + + + + + Reference number of the file. + + + + + Reference number of the parent. + + + + + USN value. + + + + + Timestamp of entry. + + + + + Reason code. + + + + + Source info flags. + + + + + Security ID. + + + + + File attributes. + + + + + Filename. + + + + + Full path, if known. + + + + + Full Win32Path if known. + + + + + Flags for USN journal source information. + + + + + Class for methods relating to USN journal. + + + + + Read USN journal information. + + The handle to the volume to query. + True to throw on error. + The USN journal information. + + + + Read USN journal information. + + The handle to the volume to query. + The USN journal information. + + + + Read USN journal entries from the volume. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read all USN journal entries from the volume. + + The volume to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The start USN to read. + Last USN to read, exclusive. + Mask for what records to read. + The list of USN journal entries. + + + + Read USN journal entries from the volume, unprivileged. + + The volume to read. + The list of USN journal entries. + + + + An enumeration to reference a known SID. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + OWNER RIGHTS + + + + + NT AUTHORITY\SELF + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + Static methods to get some known SIDs. + + + + + NULL SID + + + + + Everyone SID + + + + + Local user SID + + + + + CREATOR OWNER SID + + + + + CREATOR GROUP SID + + + + + CREATOR OWNER SERVER SID + + + + + CREATOR OWNER SERVER SID + + + + + Service SID + + + + + ANONYMOUS LOGON SID + + + + + Authenticated Users SID + + + + + RESTRICTED SID + + + + + NT AUTHORITY\WRITE RESTRICTED + + + + + BUILTIN\BUILTIN + + + + + NT AUTHORITY\INTERACTIVE + + + + + NT AUTHORITY\DIALUP + + + + + NT AUTHORITY\NETWORK + + + + + NT AUTHORITY\BATCH + + + + + NT AUTHORITY\PROXY + + + + + LOCAL SYSTEM SID + + + + + LOCAL SERVICE SID + + + + + NETWORK SERVICE SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES SID + + + + + APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES + + + + + NT SERVICE\TrustedInstaller + + + + + BUILTIN\Users + + + + + BUILTIN\Administrators + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection + + + + + APPLICATION PACKAGE AUTHORITY\Your Internet connection, including incoming connections from the Internet + + + + + APPLICATION PACKAGE AUTHORITY\Your home or work networks + + + + + APPLICATION PACKAGE AUTHORITY\Your pictures library + + + + + APPLICATION PACKAGE AUTHORITY\Your videos library + + + + + APPLICATION PACKAGE AUTHORITY\Your music library + + + + + APPLICATION PACKAGE AUTHORITY\Your documents library + + + + + APPLICATION PACKAGE AUTHORITY\Your Windows credentials + + + + + APPLICATION PACKAGE AUTHORITY\Software and hardware certificates or a smart card + + + + + APPLICATION PACKAGE AUTHORITY\Removable storage + + + + + APPLICATION PACKAGE AUTHORITY\Your Appointments + + + + + APPLICATION PACKAGE AUTHORITY\Your Contacts + + + + + APPLICATION PACKAGE AUTHORITY\Internet Explorer + + + + + Constrained Impersonation Capability + + + + + Get a known SID based on a specific enumeration. + + The enumerated sid value. + + + + + Class to represent an Access Control Entry for a Mandatory Label. + + + + + Constructor. + + Flags for the ACE. + The mandatory label policy. + The integrity level. + + + + Constructor from a raw integrity level. + + Flags for the ACE. + The mandatory label policy. + The integrity level sid. + + + + The policy for the mandatory label. + + + + + Get or set the integrity level + + + + + Convert ACE to a string. + + + + + + Class which represents a mapped file. + + + + + Native path to file. + + + + + Name of the file. + + + + + List of mapped sections. + + + + + Mapped base address of file. + + + + + Mapped size of file. + + + + + True if the mapped file is an image section. + + + + + Specified the signing level if an image (only on RS3+). + + + + + Class to represent memory information. + + + + + Base address of memory region. + + + + + Allocation base for memory region. + + + + + Initial allocation protection. + + + + + Region size. + + + + + Memory state. + + + + + Current memory protection. + + + + + Memory type. + + + + + The mapped image path, if an image. + + + + + The mapped image path name, if an image. + + + + + The region type. + + + + + Is this a software enclave. + + + + + Interface for a marshalled NDR conformant structure. + + This interface is primarily for internal use only. + + + + Gets the number of conformant dimensions, should be at least one. + + The number of conformant dimensions. + + + + Interface for a marshalled non-encapsulated NDR union. + + This interface is primarily for internal use only. + + + + Marshal the union to a stream. + + The selector for union arm. + The marshal stream. + + + + Interface for a marshalled NDR structure. + + This interface is primarily for internal use only. + + + + Marshal the stucture to a stream. + + The marshal stream. + + + + Unmarshal the structure from a stream. + + The unmarshal stream. + + + + Get the structure's alignment. + + + + + + Structure to represent a context handle. + + + + + Context handle attributes. + + + + + Context handle UUID. + + + + + Constructor. + + Context handle attributes. + Context handle UUID. + + + + Overidden ToString method. + + The handle as string. + + + + NDR integer representation. + + + + + NDR character representation. + + + + + NDR floating point representation. + + + + + Definition of the NDR data representation for an NDR stream. + + + + + The integer representation of the NDR data. + + + + + The character representation of the NDR data. + + + + + The floating representation of the NDR data. + + + + + A class which represents an embedded pointer. + + The underlying type. + + + + Operator to convert from a value to an embedded pointer. + + The value to point to. + + + + Operator to convert from an embedded pointer to a value. + + The embedded pointer. + + + + Overridden ToString method. + + The string form of the value. + + + + Get the value from the embedded pointer. + + The value of the pointer. + + + + Structure to represent an empty value. + + + + + Class to represent a 16 bit enumerated type. + + + + + Value of the structure. + + + + + Constructor. + + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Equality operator. + + The left value. + The right value. + True if the values are equal. + + + + Inequality operator. + + The left value. + The right value. + True if the values are not-equal. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Equals operator. + + The other enum16. + True if the values are equal. + + + + Compare + + + + + + + Overridden GetHashCode. + + The hash code of the enumeration. + + + + Structure which represents an NDR FC_INT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Structure which represents an NDR FC_UINT3264 + + + + + Value of the structure. + + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Constructor. + + The value to construct from. + + + + Convert to a native IntPtr. + + The value to convert from. + + + + Overridden ToString. + + The value as a string. + + + + ToString method. + + The formatting string. + The value as a string. + + + + IFormattable ToString. + + The formatting string. + Formatting provider. + The value as a string. + + + + Class to represent an NDR interface pointer. + + + + + The marshaled interface data. + + + + + Constructor. + + The marshaled interface data. + + + + A buffer to marshal NDR data to. + + This class is primarily for internal use only. + + + + Represents an NDR pickled type. + + + + + Constructor from a type 1 serialized buffer. + + The type 1 serialized encoded buffer. + + + + Convert the pickled type to a type 1 serialized encoded buffer. + + The type 1 serialized encoded buffer. + + + + Type for a synchronous NDR pipe. + + The base type of pipe blocks. + + + + The list of blocks for the pipe. + + + + + Constructor. + + The list of blocks to return. + + + + Constructor. + + A single block to return. + + + + Convert the pipe blocks to a flat array. + + The flat array. + + + + A buffer to unmarshal NDR data from. + + This class is primarily for internal use only. + + + + Place holder for unsupported types. + + + + + Class to represent a single COM proxy definition. + + + + + The name of the proxy interface. + + + + + The IID of the proxy interface. + + + + + The base IID of the proxy interface. + + + + + The number of dispatch methods on the interface. + + + + + List of parsed procedures for the interface. + + + + + Creates a proxy definition from a list of procedures. + + The name of the proxy interface. + The IID of the proxy interface. + The base IID of the proxy interface. + The total dispatch count for the proxy interface. + The list of parsed procedures for the proxy interface. + + + + + Expression element. + + + + + Overridden ToString method. + + The expression as a string. + + + + The expression type. + + + + + Is this operator element valid. + + + + + Operator expression element. + + + + + NDR format type of element. + + + + + NDR format type of element. + + + + + Offset, used for OP_EXPRESSION. + + + + + Parsed arguments. + + + + + Overridden ToString method. + + The expression as a string. + + + + Variable expression element. + + + + + Offset of the variable. + + + + + NDR format type of element. + + + + + Overridden ToString method. + + The expression as a string. + + + + Expression element. + + + + + NDR format type of element. + + + + + Offset of the variable. + + + + + The value of the constant. + + + + + Overridden ToString method. + + The expression as a string. + + + + An interface which can be implemented to handle formatting parsed NDR data. + + + + + Format a complex type using the current formatter. + + The complex type to format. + The formatted complex type. + + + + Format a procedure using the current formatter. + + The procedure to format. + The formatted procedure. + + + + Format a COM proxy using the current formatter. + + The COM proxy to format. + The formatted COM proxy. + + + + Format an RPC server interface using the current formatter. + + The RPC server. + The formatted RPC server interface. + + + + An base class which describes a text formatter for NDR data. + + + + This formatter generates data that the CPP compiler can (hopefully) understand, + at least it will serve as a good skeleton to support spinning up new projects easily. + + + + + Flags for the NDR formatter. + + + + + No flags. + + + + + Don't emit comments. + + + + + Default NDR formatter constructor. + + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The default formatter. + + + + Create the default formatter. + + Specify a dictionary of IIDs to names. + The default formatter. + + + + Create the default formatter. + + Formatter flags. + The default formatter. + + + + Create the default formatter. + + The default formatter. + + + + NDR formatter constructor for CPP style output. + + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Function to demangle COM interface names during formatting. + The CPPformatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + Formatter flags. + The CPP formatter. + + + + Create the CPP formatter. + + Specify a dictionary of IIDs to names. + The CPP formatter. + + + + Create the default formatter. + + Formatter flags. + The CPP formatter. + + + + Create the default formatter. + + The CPP formatter. + + + + Flags for the parser. + + + + + No flags. + + + + + Ignore processing any complex user marshal types. + + + + + Resolve structure names, required private symbols. + + + + + Class to parse NDR data into a structured format. + + + + + Constructor. + + Memory reader to parse from. + Process to read from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + Specify a symbol resolver to use for looking up symbols. + Flags which affect the parsing operation. + + + + Constructor. + + Specify a symbol resolver to use for looking up symbols. + + + + Constructor. + + Process to parse from. + + + + Constructor. + + + + + Read COM proxy information from a ProxyFileInfo structure. + + The address of the ProxyFileInfo structure. + The list of parsed proxy definitions. + + + + Read COM proxy information from an array of pointers to ProxyFileInfo structures. + + The address of an array of pointers to ProxyFileInfo structures. The last pointer should be NULL. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + List of IIDs to parse. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + Optional CLSID for the proxy class. + The list of parsed proxy definitions. + + + + Read COM proxy information from a file. + + The path to the DLL containing the proxy. + The list of parsed proxy definitions. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + Pointer to the RPC_SERVER_INTERFACE. + Base address of the library which contains the interface. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. Deprecated. + + Pointer to the RPC_SERVER_INTERFACE. + The parsed NDR content. + + + + Parse NDR content from an RPC_SERVER_INTERFACE structure in memory. + + The path to a DLL containing the RPC_SERVER_INTERFACE. + Offset to the RPC_SERVER_INTERFACE from the base of the DLL. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + List of names for the valid procedures. Should either be null or a list equal in size to dispatch_count - start_offset. + The parsed NDR content. + + + + Parse NDR procedures from an MIDL_SERVER_INFO structure in memory. + + Pointer to the MIDL_SERVER_INFO. + Number of dispatch functions to parse. + The start offset to parse from. This is used for COM where the first few proxy stubs are not implemented. + The parsed NDR content. + + + + List of parsed types from the NDR. + + + + + List of parsed complex types from the NDR. + + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Pointers to the the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third, the Type Offsets is the fourth parameter. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUBLESS_PROXY_INFO structure. + Pointer to the type pickling offset table. + Index into type_pickling_offset_table array. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode3. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUBLESS_PROXY_INFO is the third, the type pickling offset table is the fourth and the type index is the fifth. + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + Specify additional parser flags. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + The process to read from. + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Parse NDR complex type information from a pickling structure. Used to extract explicit Encode/Decode method information. + + Pointer to the MIDL_TYPE_PICKLING_INFO structure. + The pointer to the MIDL_STUB_DESC structure. + Offsets into the format string to the start of the types. + The list of complex types. + This function is used to extract type information for calls to NdrMesTypeDecode2. MIDL_TYPE_PICKLING_INFO is the second parameter, + MIDL_STUB_DESC is the third (minus the offset). + + + + Exception thrown when NDR parsing fails. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception to wrap. + + + + Class respresenting an RPC protocol sequence. + + + + + The protocol sequence for the endpoint. + + + + + The endpoint name. + + + + + A parsed NDR RPC_SERVER_INTERFACE structure. + + + + + The RPC interface GUID. + + + + + The RPC interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + List of parsed procedures. + + + + + List of protocol sequences. + + + + + Overridden ToString method. + + The string form of this class. + + + + NDR format character. + + + + + Class to build text strings for an NDR formatter. + + + + + Push an indent string on to the indent stack. + + The string to indent any new lines. + The current builder instance. + + + + Push an indent on to the indent stack. + + The character to indent with. + The number of indent characters. + The current builder instance. + + + + Pop the current indent off the indent stack. + + The current builder instance. + + + + Append a string to the builder. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Append a new line to the builder. + + The current builder instance. + + + + Append a string to the builder with a new line. + + The string to append. + The current builder instance. + + + + Append a formatted string to the builder with a new line. + + The string format. + The array of arguments to the formatter. + The current builder instance. + + + + Overridden ToString method, returns the current state of the builder. + + The current stated of the builder. + + + + Utilities for NDR marshaling. + + + + + Specify NDR marshaler trace level. + + Specify the NDR marshaler trace level. + Verbose marshal stack details. + + + + Datalink address type. + + + + + Access rights for a firewall object. + + + + + Represents a firewall address and mask. + + + + + The IP address. + + + + + The mask. + + + + + Mask prefix length. + + + + + Overridden ToString method. + + The value and mask as a string. + + + + Address family when IP protocol is not specified. + + + + + IPv4 + + + + + IPv6 + + + + + Ethernet + + + + + None + + + + + Class to represent a firewall ALE endpoint. + + + + + The ID of the endpoint. + + + + + The local endpoint. + + + + + The remote endpoint. + + + + + The protocol type. + + + + + The LUID for the token associated with the endpoint. + + + + + The IPsec security association identifier. + + + + + The IPsec security association identifier to expire. + + + + + The IPsec status of the endpoint. + + + + + Flags. + + + + + Associated application. + + + + + Filename of AppId. + + + + + Enumeration for ALE layer types. + + + + + Class to represent a firewall callout object. + + + + + Flags for the callout. + + + + + Provider key. + + + + + Provider data. + + + + + Applicable layer key. + + + + + Callout ID. + + + + + Flags for a firewall callout. + + + + + Guids for pre-defined callouts. + + + + + Flags for classify output. + + + + + Class to represet the result of a classify operations. + + + + + Action type of the classify result. + + + + + Internal context. + + + + + ID of the filter. + + + + + Associated rights. + + + + + Classify flags. + + + + + Base class to implement common condition building operations. + + + + + Specify list of firewall filter conditions. + + + + + Add a condition. + + The match type for the condition. + The field key for the condition. + The value for the condition. + + + + Add a condition range. + + The field key for the condition. + The low value for the range. + The high value from the range. + + + + Add an executable filename condition. + + The match type for the condition. + The path to the file to use. + + + + Add an App ID condition. + + The match type for the condition. + The path to the file already converted to absolute format. + + + + Add a user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote user ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a remote machine ID security descriptor condition. + + The match type for the condition. + The security descriptor. + + + + Add a IP protocol type condition. + + The match type for the condition. + The protocol type for the condition. + + + + Add a conditions flag condition. + + The match type for the condition. + The flags for the condition. + + + + Add IP address. + + The match type for the condition. + True to specify remote, false for local. + The low IP address. + + + + Add IP address range. + + True to specify remote, false for local. + The low IP address. + The high IP address. + + + + Add port range. + + True to specify remote, false for local. + The low port. + The high port. + + + + Add port. + + The match type for the condition. + True to specify remote, false for local. + The port. + + + + Add an IP endpoint. + + The match type for the condition. + True to specify remote, false for local. + The IP endpoint. + + + + Add token information. + + The match type. + The token. + + + + Add remote token information. + + The match type. + The token. + + + + Add remote machine token information. + + The match type. + The token. + + + + Add a package SID condition. + + The match type. + The package SID. + + + + Add a condition which excludes app containers. + + + + + Add a condition which includes app containers. + + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The process. + + + + Adds details from a process, such as the process' App ID and package SID and token information. + + The match type. + The PID of the process. + + + + Add the RPC UUID. + + Match type. + The RPC UUID. + + + + Add a network event type. + + Match type. + Network event type. + + + + Constructor. + + + + + Firewall condition flags. + + + + + Guids for pre-defined firewall conditions. + + + + + Direction of stream for firewall. + + + + + Outbound flow. + + + + + Inbound flow. + + + + + Place holder for an empty value. + + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent the firewall engine. + + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The server name for the firewall service. + RPC authentication service. Use default or WinNT. + Optional authentication credentials. + Optional session information. + The opened firewall engine. + + + + Open an instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open an instance of the engine. + + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + True to throw on error. + The opened firewall engine. + + + + Open a dynamic instance of the engine. + + The opened firewall engine. + + + + Get an engine option. + + The option to get. + True to throw on error. + The engine option's value. + + + + Get an engine option. + + The option to get. + The engine option's value. + + + + Get the current network event keywords setting. + + True to throw on error. + The network event keywords. + + + + Get the current network event keywords setting. + + The network event keywords. + + + + Get collect net events option. + + True to throw on error. + True if net events are being collected. + + + + Get collect net events option. + + True if net events are being collected. + + + + Set an engine option. + + The option to set. + The value to set. + True to throw on error. + The NT status code. + + + + Set an engine option. + + The option to set. + The value to set. + + + + Set network event keywords. + + The keywords to set. + True to throw on error. + The NT status code. + + + + Set network event keywords. + + The keywords to set. + + + + Set the collection net events engine option. + + True to enable collection. + True to throw on error. + The NT status code. + + + + Set the collection net events engine option. + + True to enable collection. + + + + Get a layer by its key. + + The key of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its key. + + The key of the layer. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its ID. + + The ID of the layer. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + True to throw on error. + The firewall layer. + + + + Get a layer by its well-known key name. + + The well-known key name of the layer. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + True to throw on error. + The firewall layer. + + + + Get a layer by an ALE layer type. + + The ALE layer type. + The firewall layer. + + + + Enumerate all layers. + + True to throw on error. + The list of layers. + + + + Enumerate all layers. + + The list of layers. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its key. + + The key of the sub-layer. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer by its well-known key name. + + The well-known key name of the sub-layer. + The firewall sub-layer. + + + + Enumerate all sub-layers. + + True to throw on error. + The list of sub-layers. + + + + Enumerate all sub-layers. + + The list of sub-layers. + + + + Get a callout by its key. + + The key of the callout. + True to throw on error. + The firewall callout. + + + + Get a callout by its key. + + The key of the callout. + The firewall callout. + + + + Enumerate all callouts + + True to throw on error. + The list of callouts. + + + + Enumerate all callouts. + + The list of callouts. + + + + Get a filter by its key. + + The key of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its key. + + The key of the filter. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + True to throw on error. + The firewall filter. + + + + Get a filter by its id. + + The ID of the filter. + The firewall filter. + + + + Enumerate filters + + Specify a template for enumerating the filters. + True to throw on error. + The list of filters. + + + + Enumerate filters + + Specify a template for enumerating the filters. + The list of filters. + + + + Enumerate all filters + + True to throw on error. + The list of filters. + + + + Enumerate all filters. + + The list of filters. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + True to throw on error. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + Optional security descriptor. + The added filter ID. + + + + Add a filter. + + The builder used to create the filter. + The added filter ID. + + + + Delete a filter. + + The filter key. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter key. + + + + Delete a filter. + + The filter ID. + True to throw on error. + The NT status. + + + + Delete a filter. + + The filter ID. + + + + Get a provider by its key. + + The key of the provider. + True to throw on error. + The firewall provider. + + + + Get a provider by its key. + + The key of the provider. + The firewall provider. + + + + Enumerate all providers. + + True to throw on error. + The list of providers. + + + + Enumerate all providers. + + The list of providers. + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor for the IKE SA database. + + The security descriptor + + + + Enumerate all IKE security associatations. + + True to throw on error. + The list of IKE security associatations. + + + + Enumerate all IKE security associatations. + + The list of IKE security associatations. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + True to throw on error. + The IKE security association. + + + + Get an IKE security association by its ID and lookup context. + + The ID of the security association. + Optional lookup context. + The IKE security association. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + True to throw on error. + The classify result. + + + + Classify a layer. + + The ID of the layer. + A list of incoming values. + The classify result. + + + + Enumerate IPSEC key managers. + + True to throw on error. + The list of registered key managers. + + + + Enumerate IPSEC key managers. + + The list of registered key managers. + + + + Get key manager component security descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Get key manager component security descriptor. + + The security information to query. + The security descriptor. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + True to throw on error. + The opened token. + + + + Open token from its modified ID. + + The token's modified ID. + The desired token access. + The opened token. + + + + Enumerate all ALE endpoints. + + True to throw on error. + The list of ALE endpoints. + + + + Enumerate all ALE endpoints. + + The list of ALE endpoints. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + True to throw on error. + The ALE endpoint. + + + + Get an ALE endpoint by its ID. + + The ID of the ALE endpoint. + The ALE endpoint. + + + + Get the ALE endpoint security. + + The security information to query for. + True to throw on error. + The security descriptor. + + + + Get the ALE endpoint security. + + The security information to query for. + The security descriptor. + + + + Enumerate all sessions. + + True to throw on error. + The list of sessions. + + + + Enumerate all sessions. + + The list of sessions. + + + + Enumerate all network events. + + Template to filter down enumeration. + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + True to throw on error. + The list of network events. + + + + Enumerate all network events. + + Template to filter down enumeration. + The list of network events. + + + + Subscribe to read network event.s + + True to throw on error. + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + Optional template to filter enumeration. + The network event listener. + + + + Subscribe to read network event.s + + True to throw on error. + The network event listener. + + + + Begin a firewall transaction. + + Flags for the transaction. + True to throw on error. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Enumerate all IPsec SA contexts. + + True to throw on error. + The list of SA contexts. + + + + Enumerate all IPsec SA contexts. + + The list of SA contexts. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + True to throw on error. + The IPsec SA context. + + + + Get an IPsec SA context by its ID. + + The ID of the IPsec SA context. + The IPsec SA context. + + + + Begin a firewall transaction. + + Flags for the transaction. + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Begin a read/write firewall transaction. + + The firewall transaction. + Disposing the transaction will cause it to abort. You should call Commit to use it. + + + + Dispose the engine. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Engine option to query or set. + + + + + Represents a firewall field schema. + + + + + The field's key. + + + + + The name of the key if known. + + + + + The type of the field. + + + + + The data type of the field. + + + + + Field type. + + + + + A class to represent a firewall filter. + + + + + The filter action type. + + + + + The layer the filter applies to. + + + + + The name of the layer if known. + + + + + The sub-layer the filter applies to. + + + + + The name of the sub-layer if known. + + + + + The flags for the filter. + + + + + List of firewall conditions. + + + + + Original weight of the filter. + + + + + Provider key. + + + + + Provider data. + + + + + Filter identifier. + + + + + Effective weight of the filter. + + + + + Type of filter. + + + + + Key for the callout. + + + + + Name of the callout key if known. + + + + + Is the filter a callout. + + + + + Has the filter got an AppID condition. + + + + + Has the filter got an AppContainer package ID condition. + + + + + Has the filter got a condition to check for a user ID. + + + + + Has the filter got a condition to check for a remote user ID. + + + + + Get a layer for this filter. + + True to throw on error. + The firewall layer. + + + + Get a layer for this filter. + + The firewall layer. + + + + Get a sub-layer for this filter. + + True to throw on error. + The firewall sub-layer. + + + + Get a sub-layer for this filter. + + The firewall sub-layer. + + + + Check if filter has any condition of a specific type. + + The condition type to check. + True if the filter has a condition of the specified type. + + + + Get the filter condition for a GUID. + + The condition type to get. + The filter condition. + + + + Delete the filter. + + True to throw on error. + The NT status. + + + + Delete the filter. + + + + + Convert the filter into a builder so that it can be modified. + + The created builder. + + + + Access rights for a firewall filter. + + + + + A builder to create a new firewall filter. + + + + + The name of the filter. + + + + + The description of the filter. + + + + + The filter key. If empty will be automatically assigned. + + + + + The layer key. + + + + + The sub-layer key. + + + + + Flags for the filter. + + + + + Specify the initial weight. + + You need to specify an EMPTY, UINT64 or UINT8 value. + + + + Specify the action for this filter. + + + + + Specify the filter type GUID when not using a callout. + + + + + Specify callout key GUID when using a callout. + + + + + Specify provider key GUID. + + + + + Constructor. + + + + + Firewall filter condition. + + + + + The match type. + + + + + The key of the field. + + + + + The field key name. + + + + + The value for the condition + + + + + Constructor. + + The condition match type. + The field key. + The value. + + + + Overridden ToString method. + + The condition as a string. + + + + Options for enumerating a filter. + + + + + Specify the key for the layer to search for. + + + + + Specify the provider key. + + + + + Specify the flags for the enumeration. + + + + + Specify the action type. + + + + + Constructor. + + The layer key. + + + + Constructor. + + The ALE layer type.. + + + + Constructor. + + + + + Class to represent a firewall layer object. + + + + + Layer flags. + + + + + Default sub-layer key. + + + + + The layer ID. + + + + + List of fields. + + + + + Is builtin layer. + + + + + Is a user-mode layer. + + + + + Enumerate filters for this layer. + + True to throw on error. + The list of sorted filters. + + + + Enumerate filters for this layer. + + The list of sorted filters. + + + + Flags for a firewall layer. + + + + + Guids for pre-defined firewall layers. + + + + + Firewall filter match type. + + + + + Direction type for a network event. + + + + + Inbound + + + + + Outbound. + + + + + Forwarding + + + + + Loopback. + + + + + Base class for a firewall network event. + + + + + Type of network event. + + + + + Flags for values set. + + + + + Timestamp of the event. + + + + + Type of protocol. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + IPv6 Scope ID. + + + + + Connection AppID. + + + + + Connection user ID. + + + + + Address family. + + + + + Package SID. + + + + + Class to represent a network event capability allow. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a network event capability drop. + + + + + AppContainer network capability. + + + + + Filter ID. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification allow. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + Class to represent a firewall classification drop. + + + + + Filter ID. + + + + + Layer ID. + + + + + Reason for reauthorizing + + + + + The original profile the connection was received on. + + + + + The profile the error occurred on. + + + + + Indicates the direction of the packet transmission. + + + + + Indicates whether the packet originated from (or was heading to) the loopback adapter. + + + + + GUID identifier of a vSwitch. + + + + + Transient source port of a packet within the vSwitch. + + + + + Transient destination port of a packet within the vSwitch. + + + + + Template for network event enumeration. + + + + + Start time for events. + + + + + End time for event.s + + + + + Constructor. + + + + + Flags for a network event. + + + + + Class to represent an IKEEXT extended mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Extended mode mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Quick mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT main mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + Flags for the failure event + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Authentication method + + + + + Hash (SHA thumbprint) of the end certificate corresponding to failures + that happen during building or validating certificate chains. + + + + + LUID for the MM SA + + + + + Main mode filter ID + + + + + Name of local security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Name of remote security principal that was authenticated, if available. + If not available, an empty string will be stored. + + + + + Array of group SIDs corresponding to the local security principal that + was authenticated, if available. + + + + + Array of group SIDs corresponding to the remote security principal that + was authenticated, if available. + + + + + Class to represent an IKEEXT quick mode failure event. + + + + + Windows error code for the failure + + + + + Point of failure + + + + + IKE or Authip. + + + + + Main mode state + + + + + Initiator or Responder + + + + + Tunnel or transport mode. + + + + + Main mode filter ID + + + + + Local subnet address and mask. + + + + + Remote subnet address and mask. + + + + + Class to represent an IPsec kernel drop event. + + + + + Failure error code. + + + + + Connection direction. + + + + + Security parameter index. + + + + + Filter ID. + + + + + Layer ID. + + + + + Flags for network events to capture. + + + + + Class to listen for network events. + + + + + Read the next network event. + + Timeout in milliseconds. + Returns null if not event available, otherwise the next event. + + + + Read the next network event. Waiting indefinetely for the event. + + Returns null if not event available, otherwise the next event. + + + + Dispose the listener. + + + + + Type of network event. + + + + + AppContainer capability type. + + + + + Abstract class to represent a firewall object. + + + + + The object's key. + + + + + The object's name. + + + + + The object's description. + + + + + The object's key name. + + + + + The object's security descriptor. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + The firewall engine object must still be open. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + The firewall engine object must still be open. + + + + Profile ID for the firewall. + + + + + Class to represent a firewall provider. + + + + + Name of the service which implements the provider. + + + + + Flags for the provider. + + + + + Provider data. + + + + + Flags for a firewall provider. + + + + + A firewall value range. + + + + + The low value. + + + + + The high value. + + + + + Overridden ToString method. + + The range as a string. + + + + Right action flags. + + + + + Class to represent a firewall session. + + + + + The session key. + + + + + Name of the session. + + + + + Description of the session. + + + + + Session flags. + + + + + Transaction wait timeout in ms. + + + + + The process ID of the session owner. + + + + + The user SID of the owner. + + + + + The name of the owner. + + + + + Is session kernel mode. + + + + + Constructor. Used when opening a session. + + The name of the session. + The description of the sesion. + Session flags. + Transaction timeout in ms. + + + + Constructor. Used when opening a session. + + Session flags. + + + + Class to represent a firewall sublayer. + + + + + Sub-layer flags. + + + + + The provider key. + + + + + Provider data. + + + + + Weight of the sub-layer. + + + + + Flags for a sub-layer. + + + + + Guids for pre-defined firewall sub-layers. + + + + + Token information for a condition. + + + + + The list of SIDs. + + + + + The list of restricted SIDs. + + + + + Capabilities. + + This is only used for local filtering. It's not used by WFP. + + + + Appcontainer SID. + + This is only used for local filtering. It's not used by WFP. + + + + User SID. + + This is only used for local filtering. It's not used by WFP. + + + + Constructor from a token. + + The token to constructo from. + + + + Constructor. + + The list of SIDs. + The list of restricted SIDs. + + + + Class to scope a firewall transaction. + + + + + Abort the transaction. + + True to throw on error. + The NT status code. + + + + Abort the transaction. + + + + + Commit the transaction. + + True to throw on error. + The NT status code. + + + + Commit the transaction. + + + + + Dispose the transaction. Will ca + + + + + Flags when creating a transaction. + + + + + No flags, creates a read/write transaction. + + + + + Read-only transaction. + + + + + Static class for firewall utility functions. + + + + + Name for fake NT type. + + + + + Name for fake filter NT type. + + + + + Get the NT type for the firewall. + + + + + Get the NT type for the firewall. + + + + + Get the generic mapping for a firewall object. + + The firewall object generic mapping. + + + + Get the generic mapping for a firewall filter object. + + The firewall filter object generic mapping. + + + + Get App ID from a filename. + + The filename to convert. + True to throw on error. + The App ID. + + + + Get App ID from a filename. + + The filename to convert. + The App ID. + + + + Get a list of known layer names. + + The list of known layer names. + + + + Get a list of known layer guids. + + The list of known layer guids. + + + + Get a known layer GUID from its name. + + The name of the layer. + The known layer GUID. + + + + Get a known callout GUID from its name. + + The name of the callout. + The known callout GUID. + + + + Get a list of known sub-layer names. + + The list of known sub-layer names. + + + + Get a list of known callout names. + + The list of known callout names. + + + + Get a list of known sub-layer guids. + + The list of known sub-layer guids. + + + + Get a known sub-layer GUID from its name. + + The name of the sub-layer. + The known sub-layer GUID. + + + + Get a layer GUID for an ALE layer enumeration. + + The ALE layer enumeration. + The ALE layer GUID. + + + + Firewall value. + + + + + Type of the value. + + + + + The raw value. + + + + + The context specific value, might be the same as the original. + + + + + Get a value which represents Empty. + + + + + Create a value from a security descriptor. + + The security descriptor. + The firewall value. + + + + Create a value from a SID. + + The SID. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The IPv4 address. + The IPv4 mask. + The firewall value. + + + + Create a value. + + The IPv6 address. + The prefix length. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a range value. + + The low value. + The high value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Create a value. + + The value. + The firewall value. + + + + Overridden ToString method. + + The value as a string. + + + + Class to represent a certificate credential. + + + + + Certificate subject name. + + + + + Certificatehash. + + + + + Flags. + + + + + Certificate. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE credential. + + + + + Authentication method type. + + + + + Impersonation type. + + + + + Overridden ToString method. + + The pair as a string. + + + + Structure to represent a pair of credentials. + + + + + Local credentials. + + + + + Peer credentials. + + + + + Overridden ToString method. + + The pair as a string. + + + + IKEEXT EM failure flags. + + + + + Flag indicating that multiple IKE EM failure events have been reported that + should be correlated using the mmId field. + + + + + Flag indicating that the IKE EM failure event is a benign/expected failure + + + + + IKE extended mode states + + + + + Initial state. No EM packets have been sent to the peer yet. + + + + + State corresponding to the first EM roundtrip + + + + + State corresponding to the second EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + State corresponding to the final EM roundtrip + + + + + EM has been completed + + + + + IKEEXT MM failure flags. + + + + + Flag indicating that the IKE MM failure event is a benign/expected failure. + + + + + Flag indicating that multiple IKE MM failure events have been reported that + should be correlated using the mmId field. + + + + + IKE main mode states + + + + + Initial state. No MM packets have been sent to the peer yet. + + + + + First roundtrip packet has been sent to the peer. + + + + + Second roundtrip packet has been sent to the peer, for SSPI auth. + + + + + Second roundtrip packet has been sent to the peer. + + + + + Final roundtrip packet has been sent to the peer. + + + + + MM has been completed. + + + + + IKE quick mode states + + + + + Initial state. No QM packets have been sent to the peer yet. + + + + + State corresponding to the first QM roundtrip + + + + + State corresponding to the final QM roundtrip + + + + + QM has been completed. + + + + + IKE main mode or quick mode SA role + + + + + SA is initiator + + + + + SA is responder + + + + + Class to represent an IKE name credential. + + + + + The credential principal name. + + + + + Overridden ToString method. + + The pair as a string. + + + + Class to represent an IKE pre-shared key credential. + + + + + The pre-shared key. + + + + + Key flags. + + + + + Class to represent an IKE security association. + + + + + ID for the security association. + + + + + Key module type. + + + + + The local address of the association. + + + + + The remote address of the association. + + + + + Initiator cookie. + + + + + Responder cookie. + + + + + IKE policy key, + + + + + Virtual interface tunnel ID. + + + + + Correlation key. + + + + + List of credentials. + + + + + Cipher algorithm for the security association. + + + + + Length of the key. + + + + + Number of rounds. + + + + + Integrity algorithm for the security association. + + + + + Maximum lifetime in seconds. + + + + + Diffie-Hellman group. + + + + + Quick mode limit. + + + + + IPsec auth config. + + + + + IPsec authentication type. + + + + + IPsec Cipher Configuration. + + + + + IPSec Cipher Type. + + + + + Type used for indicating where an IPsec failure occured. + + + + + No information available. + + + + + IPsec failure happened on local machine. + + + + + IPsec failure happened on remote machine. + + + + + Class to represent a IPsec identity + + + + + Main-mode target name. + + + + + Extended mode target name. + + + + + List of tokens. + + + + + Explicit credentials handle. + + + + + Logon ID. + + + + + Class to prepresent a key manager. + + + + + The manager's key. + + + + + The manager's name. + + + + + The manager's description. + + + + + The manager's flags. + + + + + The manager's dictation timeout hint. + + + + + Flags for IPsec key manager. + + + + + IPsec perfect forward secrecy group. + + + + + Class to represent the details of an IPsec security association. + + + + + Directory of SA. + + + + + Local endpoint. + + + + + Remote endpoint. + + + + + Traffic type. + + + + + Traffic type ID. + + + + + IP protocol type. + + + + + Interface LUID. + + + + + Real interface profile ID. + + + + + The SA bundle. + + + + + Local IPv4 UDP encapsulation port. + + + + + Remote IPv4 UDP encapsulation port. + + + + + Transport filter. + + + + + Virtual interface tunnel ID. + + + + + Traffic selector ID. + + + + + Overridden ToString method. + + The overridden ToString method. + + + + Class to represent a security association bundle. + + + + + Flags for the SA. + + + + + SA lifetime in seconds. + + + + + SA lifetime in KiB. + + + + + SA lifetime in packets. + + + + + Idle timeout. + + + + + ND allow clear timeout. + + + + + Identity for IPsec SA. + + + + + NAP context. + + + + + Quick-mode SA ID. + + + + + Key module key. + + + + + Key module state blob. + + + + + List of security association parameters. + + + + + Peer V4 private address. + + + + + Main-mode SA ID. + + + + + PFS group. + + + + + SA lookup context. + + + + + QM filter ID. + + + + + IPsec SA bundle flags. + + + + + Negotiation discovery is enabled in secure ring. + + + + + Negotiation discovery in enabled in the untrusted perimeter zone. + + + + + Peer is in untrusted perimeter zone ring and a network address translation (NAT) is in the way. Used with negotiation discovery. + + + + + Indicates that this is an SA for connections that require guaranteed encryption. + + + + + Indicates that this is an SA to an NLB server. + + + + + Indicates that this SA should bypass machine LUID verification. + + + + + Indicates that this SA should bypass impersonation LUID verification. + + + + + Indicates that this SA should bypass explicit credential handle matching. + + + + + Allows an SA formed with a peer name to carry traffic that does not have an associated peer target. + + + + + Clears the DontFragment bit on the outer IP header of an IPsec-tunneled packet. This flag is applicable only to tunnel mode SAs. + + + + + Default encapsulation ports (4500 and 4000) can be used when matching this SA with packets on outbound connections that do not have an associated IPsec-NAT-shim context. + + + + + Peer has negotiation discovery enabled, and is on a perimeter network. + + + + + Suppresses the duplicate SA deletion logic. THis logic is performed by the kernel when an outbound SA is added, to prevent unnecessary duplicate SAs. + + + + + Indicates that the peer computer supports negotiating a separate SA for connections that require guaranteed encryption. + + + + + Class to represent an IPsec security association context. + + + + + ID of the context. + + + + + Inbound security association. + + + + + Outbound security association. + + + + + Base security association class. + + + + + Index of the security parameter (SPI). + + + + + Transform type. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Module ID for the crypto. + + + + + Authentication key. + + + + + IPsec SA authentication information. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + IPsec SA authentication information. + + + + + Type of authentication. + + + + + Authentication configuration. + + + + + Modify ID for the crypto. + + + + + Authentication key. + + + + + Type of cipher. + + + + + Cipher configuration. + + + + + Module ID for the crypto. + + + + + Cipher key. + + + + + Class to represent an IPsec token. + + + + + Type of token. + + + + + Token principal. + + + + + Token mode. + + + + + Handle to the token. + + + + + Get the token from the IKEEXT service. + + True to throw on error. + The token. + + + + Get the token from the IKEEXT service. + + The token. + + + + IPsec traffic type. + + + + + Network interface type. + + See https://www.iana.org/assignments/ianaiftype-mib + + + + Network layer address type. + + + + + Type of network tunnel. + + + + + Endpoint implementation for a HyperV socket. + + + + + Address family. + + + + + Protocol type for HyperV sockets. + + + + + Default constructor. + + + + + Constructor. + + + + + Get or set the service ID. + + + + + Get or set the VM ID. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + GUIDs for HyperV Sockets. + + + + + Allows accepting connections from all partitions. + + + + + Broadcast. Send to all sockets. + + + + + Allows accepting connections form all child partitions. + + + + + Connect or bind to the loopback address. + + + + + Connect to the parent container. + + + + + Connect to the silo host container. + + + + + VSOCK template GUID. + + + + + Create an address for a VSOCK port. + + The VSOCK port. + The address. + + + + Checks if an address is a VSOCK address. + + The address to check. + True if a VSOCK address. + + + + Get the port for a VSOCK address. + + The address to query. + The VSOCK port. + Throw if not a valid VSOCK address. + + + + Convert an address to a string. + + The address to convert. + The converted address. If not symbolic name found will return the GUID as a string. + + + + Class to represent current socket security configuration. + + + + + Access token for the peer application. + + + + + Access token for the peer machine. + + + + + Socket security flags. + + + + + Security association ID for main mode. + + + + + Security association ID for quick mode. + + + + + Negotiation windows error. + + + + + Security association lookup context. Can be used to bypass security + checks for querying the security association information from the + firewall. + + + + + Dispose method. + + + + + Socket security IPsec flags. + + + + + Flags for querying socket security fields. + + + + + Flags for querying socket security information. + + + + + Socket security query flags. + + + + + Socket security setting flags. + + + + + Settings for socket security + + + + + The security flags. + + + + + The IPsec flags. + + + + + AuthIP MM policy key. + + + + + AuthIP QM policy key. + + + + + User credentials. + + + + + Authentication ID of a user, needs kernel mode to set. + + + + + Utilities for socket security. + + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The socket to impersonate. + Optional peer address. Only needed for datagram sockets. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + True to throw on error. + The impersonation context. + + + + Impersonate the socket's peer. + + The TCP client to impersonate. + The impersonation context. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The socket to query. + Optional peer address. Only needed for datagram sockets. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + True to throw on error. + The socket security information. + + + + Query the socket security information. + + The TCP client to query. + Optional desired access for peer tokens. If set to None then no tokens will be returned. + The socket security information. + + + + Set the socket security information. + + The socket to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The socket to set. + The security settings. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP listener to set. + The security settings. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + True to throw on error. + The NT status code. + + + + Set the socket security information. + + The TCP client to set. + The security settings. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + Optional peer address. Only needed for datagram sockets. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Set target peer for socket. + + The socket to set. + The target name. + True to throw on error. + The NT status code. + + + + Set target peer for socket. + + The socket to set. + The target name. + + + + Delete target peer for socket. + + The socket to set. + Peer address. + True to throw on error. + The NT status code. + + + + Security protocol for a socket. + + + + + Endpoint implementation for a AF_UNIX socket. + + + + + Default constructor. + + + + + Constructor. + + The path to the unix socket. + + + + Get or set the path. + + + + + Address family. + + + + + Serialize the socket address. + + The serialized address. + + + + Create a endpoint from a socket address. + + The socket address. + The created endpoint. + + + + Overridden ToString method. + + The endpoint as a string. + + + + Overridden equals method. + + The object to compare. + True if the objects are equal. + + + + Get endpoint hash code. + + The hashcode. + + + + A class to represent a TLS record. + + + + + TLS record type. + + + + + Version of protocol. + + + + + The record data. + + + + + Parse a TLS record from a binary reader. + + The reader to read from. + The parsed TLS record. + + + + Parse a TLS record from a byte array. + + The byte array. + The parsed TLS record. + + + + Type for a TLS record. + + + + + Change cipher spec. + + + + + Alert. + + + + + Handshake. + + + + + Application data. + + + + + Class to represent an ALPC port. + + + + + Disconnect this port. + + Disconection flags. + True to throw on error. + The NT status code. + + + + Disconnect this port. + + Disconection flags. + + + + Disconnect this port. + + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + True to throw on error. + The NT status code. + + + + Cancel a message based on a context attribute. + + Cancellation flags. + The context attributes. + + + + Cancel a message based on a context attribute. + + The context attributes. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send and receive messages on an ALPC port. + + Send/Receive flags. + The message to send. Optional. + The attributes to send with the message. Optional. + The message to receive. Optional. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + True to throw on error. + The NT status code. + The attribute parameters will be repopulated with the attribute results. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attributes to send with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + True if completed successfully, false if timed out. + Thrown on error. + + + + Send a message on an ALPC port. + + Send flags. + The message to send. Optional. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The attributes to receive with the message. Optional. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The maximum length to receive. + The received message. + The attribute parameters will be repopulated with the attribute results. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + True to throw on error. + The received message. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + Time out for the send/receive. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The attributes to receive with the message. Optional. + The attribute parameters will be repopulated with the attribute results. + The type of structure to receive. + + + + Receive a message on an ALPC port. + + Receive flags. + The type of structure to receive. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + True to throw on error. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Impersonation flags. + Required impersonation level. Need to set RequiredImpersonationLevel flag as well. + Thread impersonation context. + + + + Impersonate client of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + True to throw on error. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Impersonation flags. + Thread impersonation context. + + + + Impersonate client container of port for a message. + + The message send by the client. + Thread impersonation context. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + True to throw on error. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the process. + Optional object attributes. + The opened process object. + + + + Open the process of the message sender. + + The sent message. + The desired access for the process. + The opened process object. + + + + Open the process of the message sender with maximum privileges. + + The sent message. + The opened process object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + True to throw on error. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + Optional flags. Currently none defined. + The desired access for the thread. + Optional object attributes. + The opened thread object. + + + + Open the thread of the message sender. + + The sent message. + The desired access for the thread. + The opened thread object. + + + + Open the thread of the message sender with maximum privileges. + + The sent message. + The opened thread object. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + True to throw on error. + The NT status code. + + + + Associate an IO completion port with this ALPC port. + + The IO completion object. + Optional completion key. + The NT status code. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True to throw on error. + True if the connected SID matches the specified SID. + + + + Check if the current SID matches the connected SID. + + The SID to compare. + True if the connected SID matches the specified SID. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + True to throw on error. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Optional backing section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Flags for the port section. + Size of the section to create. + The created port section. + + + + Create a new port section. + + Size of the section to create. + The created port section. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + True to throw on error. + The ALPC handle entry. + + + + Get a handle entry for a message. + + The handle index to get. + The associated message. + The ALPC handle entry. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + True to throw on error. + The created security context. + + + + Create a security context. + + Flags for the creation. + Security quality of service. + The created security context. + + + + Create a security context. + + Security quality of service. + The created security context. + + + + Create a security context. + + The created security context. + + + + Set port attribute flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Port flags. + + + + + Port sequence number. + + + + + Port context. + + + + + Class to represent an ALPC client port. + + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + + + + Connect to an ALPC port. + + The path to the port. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required SID for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + The name of the port to connect to. + Attributes for the port. + The connected ALPC port object. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + True to throw on error. + The connected ALPC port. + Only available on Windows 8+. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Object attributes for the handle. Optional. + Attributes for the port. Optional. + Send flags for the initial connection message. + Required security descriptor for the server. + Initial connection message. + Outbound message attributes. + Inbound message atributes. + Connect timeout. + The connected ALPC port. + Thrown on error. + + + + Connect to an ALPC port. + + Object attribute for the port name. + Attributes for the port. + The connected ALPC port object. + + + + Get the server process information. + + True to throw on error. + The process information. + + + + Get the server process information. + + The process information. + + + + Get the server process ID. + + + + + Get the server session ID. + + + + + Class to represent an ALPC server port. + + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + True to throw on error. + The created object. + + + + Create an ALPC port. + + The object attributes for the port. + The attributes for the port. + The created object. + Thrown on error. + + + + Create an ALPC port. + + The name of the port to create. + The attributes for the port. + The created object. + Thrown on error. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + True to throw on error. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Object attributes. Optional. + The attributes for the port. + Port context. Optional. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Accept a new connection on a port. + + The message send flags. + Connect request message. + Connect request attributes. + True to accept the connection. + The accepted port. + + + + Access rights for ALPC + + + + + ALPC Port Information Class + + + + + If set then object duplication won't complete. Used by RPC to ensure + multi-handle attributes don't fail when receiving. + + + + + Use in a reply to release the view. + + + + + Automatically release the view once it's passed to the receiver. + + + + + Make the data view secure. + + + + + When used all structures passed to kernel need to be 64 bit versions. + + + + + Static utilities for ALPC. + + + + + Wait for the result to complete. This could be waiting on an event + or the file handle. + + Wait timeout. Will cancel the operation if it times out. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Wait for the result to complete asynchronously. This could be waiting on an event + or the file handle. + + Cancellation token. + Returns true if the wait completed successfully. + If true is returned then status and information can be read out. + + + + Return the status information field. + + Thrown if not complete. + + + + Return the status information field. (32 bit) + + Thrown if not complete. + + + + Get completion status code. + + Thrown if not complete. + + + + Returns true if the call is pending. + + + + + Dispose object. + + + + + Reset the file result so it can be reused. + + + + + Cancel the pending IO operation. + + + + + Cancel the pending IO operation. + + True to throw on error. + The NT status code. + + + + Class to handle NT atoms + + + + + Add a global atom name + + The name to add + Flags for the add. + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + Flags for the add. + A reference to the atom + + + + Add a global atom name + + The name to add + True to throw on error. + A reference to the atom + + + + Add a global atom name + + The name to add + A reference to the atom + + + + Find a global atom by name. + + The name of the atom. + True to throw on error. + The found atom. + + + + Find a global atom by name. + + The name of the atom. + The found atom. + + + + Query if a global atom exists. + + The atom to check. + True if the atom exists. + + + + Query if the atom exists. + + The atom to check. + Specify true to check for a global atom, otherwise gets a user atom. + True if the atom exists. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to open a global atom, otherwise a user atom. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + True to throw on error. + The atom object. + + + + Open a global atom by number. + + The atom to open. + True to check atom exists. + The atom object. + + + + Open a global atom by number. + + The atom to open. + The atom object. + + + + Enumerate all atoms. + + An enumeration of all atoms on the system. + + + + Enumerate all global atoms. + + An enumeration of all atoms on the system. + + + + Delete a global atom. + + True to throw on error. + The NT status code. + + + + Delete a global atom. + + + + + Get the name of the atom. + + True to throw on error. + The name of the atom. + + + + The atom value + + + + + Get the name of the atom. + + The name of the atom + + + + If true indicates this is a global atom, otherwise it's a user atom. + + + + + Class representing a NT Debug object + + + + + Create a debug object + + The debug object name (can be null) + The root directory for relative names + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + The debug object + + + + Create a debug object + + Desired access for the debug object + Object attributes for debug object + Debug object flags. + True to throw an exception on error. + The NT status code and object result. + + + + Create a debug object + + The debug object + + + + Open a named debug object + + The debug object name + The root directory for relative names + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + The debug object + + + + Open a named debug object + + The object attributes to open. + Desired access for the debug object + True to throw an exception on error. + The NT status code and object result. + + + + Open the current thread's debug object. + + True to throw on error. + The opened debug object. Returns null if no object exists. + + + + Open the current thread's debug object. Returns null if no object exists. + + + + + Attach to an active process. + + The process to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process ID to debug. + True to throw on error. + The NT status code. + + + + Attach to an active process. + + The process to debug. + + + + Attach to an active process. + + The process ID to debug. + + + + Detach a process from this debug object. + + The process to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process to remove. + + + + Detach a process from this debug object. + + The process ID to remove. + True to throw on error. + The NT status code. + + + + Detach a process from this debug object. + + The process ID to remove. + + + + Set kill process on close flag. + + The flag state. + True to throw on error. + The NT status code. + + + + Set kill process on close flag. + + The flag state. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + True to throw on error. + The NT status code. + + + + Continue the debugged process. + + The client ID for the process and thread IDs. + The continue status code. + + + + Continue the debugged process. + + The process ID to continue. + The thread ID to continue. + The continue status code. + + + + Continue the debugged process with a success code. + + The process ID to continue. + The thread ID to continue. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + True to throw on error. + The debug event. + + + + Wait for a debug event. + + True to set the thread as alertable. + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout. + The debug event. + + + + Wait for a debug event. + + Wait timeout in milliseconds. + The debug event. + + + + Wait for a debug event. + + The debug event. + + + + Class which represents a desktop object. + + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + The instance of the desktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + Thrown on error. + + + + Open a desktop by name. + + The name of the desktop. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + True to throw on error. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The object attributes for opening. + Flags for opening the desktop. + Desired access. + Device name. + Device mode. + Heap size. + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + Optional root object + An instance of NtDesktop. + + + + Create a new desktop. + + The name of the desktop. + An instance of NtDesktop. + + + + Get the desktop for a thread. + + The thread ID of the thread. + True to throw on error. + The desktop result. + + + + Get the desktop for a thread. + + The thread ID of the thread. + The desktop result. + + + + Get desktop for current thread. + + + + + Get list of top level Windows for this Desktop. + + + + + Close the Desktop. This is different from normal Close as it destroys the Desktop. + + True to throw on error. + The NT status. + + + + NT Directory Object class + + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Open a directory object + + The object attributes to use for the open call. + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + The directory object + Throw on error + + + + Open a directory object by name + + The directory object to open + Optional root directory to parse from + Access rights for directory object + True to throw an exception on error. + The directory object + Throw on error + + + + Open a directory object by full name + + The directory object to open + The directory object + Throw on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + True to throw an exception on error. + The NT status code and object result. + Thrown on error and throw_on_error is true. + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + Flags for creation. + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The object attributes to create the directory with + The desired access to the directory + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The directory object + Thrown on error + + + + Create a directory object with a shadow + + The directory object to create, if null will create a unnamed directory object + The desired access to the directory + Root directory from where to start the creation operation + The shadow directory + The directory object + Thrown on error + + + + Create a directory object + + The directory object to create, if null will create a unnamed directory object + The directory object + Thrown on error + + + + Open a session directory. + + The session ID to open + Sub directory to open. + Desired access to open directory. + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open the current session directory. + + The directory object + Thrown on error + + + + Open basenamedobjects for a session. + + The session ID to open + The directory object + Thrown on error + + + + Open basenamedobjects for current session. + + The directory object + Thrown on error + + + + Get the based named object's directory for a session. + + The session ID + The based named object's directory. + + + + Get the based named object's directory for the current session. + + The based named object's directory. + + + + Get the a session's Windows object directory. + + The session id to use. + The path to the windows object directory. + + + + Get the current session's Windows object directory. + + The path to the windows object directory. + + + + Get the a session's Window Stations object directory. + + The session id to use. + The path to the window stations object directory. + + + + Get the current session's Window Stations object directory. + + The path to the window stations object directory. + + + + Open dos devices directory for a token. + + The directory object + Thrown on error + + + + Open dos devices directory for current effective token. + + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Create a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Create a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + True to throw an exception on error. + The directory object + Thrown on error + + + + Open a private namespace directory. + + Object attributes for the directory + Boundary descriptor for the namespace + Desired access for the directory + The directory object + Thrown on error + + + + Open a private namespace directory. + + Boundary descriptor for the namespace + The directory object + Thrown on error + + + + Returns whether a directory exists for this path. + + The path to the entry. + The root directory. + True if the directory exists for the specified path. + + + + Get the type of a directory entry by path. + + The path to the directory entry + The root object to look up if path is relative + The type name, or null if it can't be found. + + + + Query the directory for a list of entries. + + The list of entries. + Thrown on error + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Specify max recursive depth. -1 to not set a limit. + True if all children were visited. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + + + + Deletes a private namespace. If not a private namespace this does nothing. + + + + + Deletes a private namespace. If not a private namespace this does nothing. + + True to throw on error. + The NT status code. + + + + Get a directory entry based on a name. + + The name of the entry. + The typename to verify against, can be null. + True if look up is case sensitive. + The directory entry, or null if it can't be found. + + + + Get a directory entry based on a name. + + The name of the entry. + The directory entry, or null if it can't be found. + + + + Check whether a directory is exists relative to the current directory. + + Relative path to directory + True if the directory exists. + + + + Set the session ID for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Set the session object for this directory to the current session. + + True to throw on error. + The NT status code. + Thrown on error. + Needs SeTcbPrivilege. + + + + Returns whether this object is a container. + + + + + Directory access rights. + + + + + Base class to implement an enclave. + + + + + The base address of the enclave. + + + + + The type of enclave. + + + + + Dispose of the enclave. + + + + + Close the enclave. + + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + True to throw on error. + The return value from the call. + + + + Call a method in the enclave. + + The routine address to call. + The parameter to pass to the routine. + True to wait for a free thread. + The return value from the call. + + + + Type of enclave. + + + + + Class to represent a VBS enclave. + + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + The process to create the enclave in. + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + True to throw on error. + The address of the procedure. + + + + Get a procedure address in the loaded enclave. + + The name of the procedure. + The address of the procedure. + + + + Terminate the enclave. + + Flags for the terminate. + True to throw on error. + The NT status code. + + + + Terminate the enclave. + + Flags for the terminate. + The NT status code. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + True to throw on error. + The NT status. + + + + Load a module into the enclave. + + The name of the module + Flags or path. + The NT status. + + + + Initialize the enclave. + + The number of threads to create. + True to throw on error. + The number of created threads. + + + + Initialize the enclave. + + The number of threads to create. + The number of created threads. + + + + Dispose of the enclave. + + + + + Class to represent a kernel transaction enlistment. + + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create a new enlistment object. + + The object attributes + Desired access for the handle + Resource manager to handle the enlistment. + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + True to throw an exception on error. + The opened enlistment and NT status code. + + + + Open a existing new enlistment object. + + The object attributes + Desired access for the handle + Resource manager handling the enlistment. + ID of the enlistment to open. + The opened enlistment. + + + + Get a default mask for creating an enlistment object. + + The creation option to get default mask for. + A default working mask. + + + + Commit complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Preprepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Prepare enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback complete enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Rollback enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Read only enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Recover enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Single phase reject enlistment. + + Optional virtual clock value. + True to throw on error. + The NT status code. + + + + Commit complete enlistment. + + Optional virtual clock value. + + + + Commit enlistment. + + Optional virtual clock value. + + + + Preprepare complete enlistment. + + Optional virtual clock value. + + + + Preprepare enlistment. + + Optional virtual clock value. + + + + Prepare complete enlistment. + + Optional virtual clock value. + + + + Prepare enlistment. + + Optional virtual clock value. + + + + Rollback complete enlistment. + + Optional virtual clock value. + + + + Rollback enlistment. + + Optional virtual clock value. + + + + Read only enlistment. + + Optional virtual clock value. + + + + Recover enlistment. + + Optional virtual clock value. + + + + Single phase reject enlistment. + + Optional virtual clock value. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get enlistment ID. + + + + + Get associated transaction ID. + + + + + Get resource manager ID. + + + + + Get CRM enlistment ID. + + + + + Get CRM transaction manager ID. + + + + + Get CRM resource manager ID. + + + + + Get or set recovery information. + + + + + Class to represent an NT trace GUID. + + + + + Class representing a NT Event object + + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + True to throw on error. + The event object + + + + Create an event object + + The path to the event + The root object for relative path names + The type of the event + The initial state of the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + The event object + + + + Create an event object + + The event object attributes + The type of the event + The initial state of the event + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Create an event object + + The path to the event + The type of the event + The initial state of the event + The event object + + + + Open an event object + + The path to the event + The root object for relative path names + The desired access for the event + The event object + + + + Open an event object + + The event object attributes + The desired access for the event + The event object. + + + + Open an event object + + The event object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + + + + Open an event object + + The path to the event + The root object for relative path names + The event object + + + + Open an event object + + The path to the event + The event object + + + + Set the event state + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Set the event state + + The previous state of the event + + + + Clear the event state + + True to throw an exception on error. + The NT status code. + + + + Clear the event state + + + + + Pulse the event state. + + True to throw an exception on error. + The previous state of the event and NT status. + + + + Pulse the event state. + + The previous state of the event + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get event type. + + + + + Get current event state. + + + + + Type of Event object. + + + + + Manual reset event. + + + + + Automatic reset event. + + + + + Exception class representing an NT status error. + + + + + Constructor + + Status result + + + + Returns the contained NT status code + + + + + Returns a string form of the NT status code. + + + + + Class representing a NT File object + + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + Optional allocation size. + The created/opened file object. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The NT status code and object result. + + + + Create a new file + + The object attributes + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + True to throw an exception on error. + The created/opened file object. + + + + Create a new file + + The path to the file + A root object to parse relative filenames + Desired access for the file + Attributes for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new file + + The path to the file + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Extended Attributes buffer + The created/opened file object. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create a new named pipe file + + The object attributes + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + True to throw an exception on error. + The file instance for the pipe. + Thrown on error. + + + + Create a new named pipe file + + The path to the pipe file + A root object to parse relative filenames + Desired access for the file + Share access for the file + Open options for file + Disposition when opening the file + Pipe completion mode + Default timeout + Input quota + Maximum number of instances (-1 for infinite) + Output quota + Type of pipe to create + Pipe read mode + The file instance for the pipe. + Thrown on error. + + + + Create an anonymous named pipe pair. + + True to throw on error. + The named pipe pair. + + + + Create an anonymous named pipe pair. + + The named pipe pair. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read Timeout. + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS (<0 is infinite) + True to throw on error. + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The object attributes + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Read timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Create a new named mailslot file + + The path to the mailslot file + A root object to parse relative filenames + Desired access for the file + Open options for file + Mailslot quota + Maximum message size (0 for any size) + Timeout in MS ( <0 is infinite) + The file instance for the mailslot. + Thrown on error. + + + + Open a file + + The object attributes + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + + + + Open a file + + The object attributesf + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Open a file + + The path to the file + The root directory if path is relative. + The desired access for the file handle + The opened file + Thrown on error. + + + + Get the object ID of a file as a string + + The path to the file + The object ID as a string + Thrown on error. + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The object ID as a binary string + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its ID + + A handle to the volume on which the file resides. + The file's ID. Can be a file reference number or an Object ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Open a file by its object ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + A handle to the volume on which the file resides. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + Thrown on error. + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + True to throw on error + The opened file object + + + + Open a file by its file ID + + The path to the volume which contains the file. + The file ID. + The desired access for the file + File share access + Open options. + The opened file object + + + + Delete a file + + The object attributes for the file. + True to throw an exception on error + The status result of the delete + + + + Delete a file + + The object attributes for the file. + + + + Delete a file + + The path to the file. + + + + Rename file. + + The file to rename. + The target NT path. + Thrown on error. + + + + Create a hardlink to another file. + + The file to hardlink to. + The desintation hardlink path. + Thrown on error. + + + + Create a mount point. + + The path to the mount point to create. + The substitute name to reparse to. + The print name to display (can be null). + + + + Create a symlink. + + The path to the mount point to create. + True to create a directory symlink, false for a file. + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Get the reparse point buffer for the file. + + The path to the reparse point. + The reparse point buffer. + + + + Delete the reparse point buffer. + + The path to the reparse point. + The original reparse buffer. + + + + Query attributes of a file. + + The object attributes. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The object attributes. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + True to throw on error. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The root directory to parse from. + The file attributes. + + + + Query attributes of a file. + + The path to the file. + The file attributes. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Cancellation token to cancel the async operation. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + Cancellation token to cancel the async operation. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw on error. + Thrown on error. + The length of output bytes returned. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + Thrown on error. + The length of output bytes returned. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send a Device IO Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + True to throw an exception on error. + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + True to throw an exception on error. + The output buffer returned by the kernel. + + + + Send an File System Control code to the file driver + + The control code + Input buffer can be null + Output buffer can be null + The length of output bytes returned. + Thrown on error. + + + + Send a File System Control code to the file driver. + + The control code + Input buffer can be null + Maximum output buffer size + The output buffer returned by the kernel. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + Flags for the object attributes. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an existing file for different access. + + The desired access for the file handle + The file share access + File open options + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Re-open an exsiting file for different access. + + The desired access for the file handle + The file share access + File open options + The opened file + Thrown on error. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + True to throw on error. + The NT status code. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Specify file disposition. + + True to set delete on close, false to clear delete on close. + Thrown on error. + You can't prevent deletion if file opened with DeleteOnClose flag. + + + + Delete the file. Must have been opened with DELETE access. + + True to throw on error. + The NT status code. + Thrown on error. + + + + Delete the file. Must have been opened with DELETE access. + + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + True to throw on error. + Flags for SetDispositionEx call. + The NT status code. + Thrown on error. + + + + Set disposition on the file (extended Windows version). + + Flags for SetDispositionEx call. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + True to throw on error. + Flags for DeleteEx call. + The NT status code. + Thrown on error. + + + + Delete the file (extended Windows version). Must have been opened with DELETE access. + + Flags for DeleteEx call. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + Thrown on error. + + + + Create a new hardlink to this file. + + The target absolute NT path. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Create a new hardlink to this file. + + The target NT path. + The root directory if linkname is relative + The flags associated to FileLinkInformationEx. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + If TRUE, replaces the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename file. + + The target NT path. + The root directory if new_name is relative + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + If TRUE, replace the target file if it exists. If FALSE, fails if the target file already exists. + Thrown on error. + + + + Rename this file with an absolute path. + + The target absolute NT path. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The root directory if new_name is relative + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Rename (extended Windows version) this file with an absolute path. + + The target absolute NT path. + The flags associated to FileRenameInformationEx. + Thrown on error. + + + + Set an arbitrary reparse point. + + The reparse point data. + + + + Set an arbitrary reparse point. + + The reparse point data. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + + + + Set an arbitrary reparse point as a raw byte array. + + The reparse point data as a byte array. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + True to throw on error. + The NT status code. + + + + Set an arbitrary reparse point. + + The reparse point data. + Flags for the reparse buffer. + Existing tag to check against. If no check required use 0. + Existing Guid to check against. If no check requested use empty GUID. + + + + Set an arbitrary reparse point. + + The reparse point data. + Existing tag to check against. If no check required use 0. + + + + Set an arbitrary reparse point. + + The reparse point data.> + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + + + + Set a mount point on the current file object. + + The substitute name to reparse to. + The print name to display (can be null). + True to throw on error. + The NT status code. + + + + Set a symlink on the current file object. + + The substitute name to reparse to. + The print name to display. + Additional flags for the symlink. + True to throw on error. + The NT status code. + + + + Get the reparse point buffer for the file. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file. + + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + True to throw on error. + The reparse point buffer. + + + + Get the reparse point buffer for the file as a raw buffer. + + The reparse point buffer. + + + + Delete the reparse point buffer + + The reparse tag. + The NT status code. + True to throw on error. + + + + Delete the reparse point buffer + + The reparse tag. + + + + Delete the reparse point buffer + + The original reparse buffer. + True to throw on error. + + + + Delete the reparse point buffer + + The original reparse buffer. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of files which can be access. + + + + Get list of accessible files underneath a directory. + + Share access for file open + Options for open call. + The desired access for each file. + The list of files which can be access. + + + + Query a directory for files. + + The list of directory entries. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Specify what additional data to include in the directory entries. + The list of directory entries. You might need to cast the directories to the appropriate types if using include flags. + + + + Query a directory for files. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + The list of directory entries. + + + + Query a directory for files with file ID. + + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + Return placeholder parent and current directory entries. + The list of directory entries. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The buffer to read to. + The position in the file to read. The position is optional. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read. The position is optional. + True to throw on error. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length. + + The length of the read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read. + + + + Read data from a file with a length over a scatter set of pages. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The buffer to read to. + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + The length of the read + The position in the file to read. The position is optional. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + Cancellation token to cancel async operation. + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously.. + + The length of the read + The position in the file to read + The read bytes, this can be smaller than length. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + True to throw on error. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + Cancellation token to cancel async operation. + The length of bytes read into the buffer. + + + + Read data from a file with a length and position asynchronously. + + List of pages to read into. These pages must be Page Size aligned. + The length of the read + The position in the file to read. + The length of bytes read into the buffer. + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write as a buffer. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file at a specific position asynchronously. + + The data to write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to. Optional + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position. + + The data to write + The position to write to + The number of bytes written + + + + Write data to a file + + The data to write + The number of bytes written + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written. + + + + Write data to a file at a specific position gathered from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written. + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + True to throw on error. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + Cancellation token to cancel async operation. + The number of bytes written + + + + Write data to a file at a specific position asynchronously from a list of pages. + + List of pages to write. These pages must be page size aligned. + The length of the write. + The position to write to. + The number of bytes written + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file. + + The offset into the file to lock + The number of bytes to lock + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + True to throw on error. + The NT status code. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + Cancellation token to cancel async operation. + + + + Lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + + + + Shared lock part of a file asynchronously. + + The offset into the file to lock + The number of bytes to lock + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + Thrown on error. + + + + Unlock part of a file previously locked with Lock + + The offset into the file to unlock + The number of bytes to unlock + True to throw on error. + The NT status code. + + + + Convert this NtFile to a FileStream for reading/writing. + + The stream must be closed separately from the NtFile. + The file stream. + Thrown on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + The path. + Throw on error. + + + + Get the Win32 path name for the file. + + The flags to determine what path information to get. + True to throw on error. + The path. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + True to throw on error. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file with a specific level. + + The level of oplock to set. + The oplock response level. + + + + Acknowledge an oplock break. + + The acknowledgment level. + True to throw on error. + The NT status code. + Oplock break acknowledgement returns STATUS_PENDING. + + + + Acknowledge an oplock break. + + The acknowledgment level. + + + + Oplock the file with a specific level. + + The oplock cache level. + Specify additional flags for the request. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level. + + The oplock cache level. + True to throw on error. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + Specify additional flags for the request. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + Specify additional flags for the request. + The result of the oplock request. + + + + Oplock the file with a specific lease level and flags. + + The oplock lease level. + The result of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Cancellation token to cancel async operation. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + True to throw on error. + The request of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + The response of the oplock request. + + + + Oplock the file with a specific level and flags. + + The oplock level. + Specify additional flags for the request. + The response of the oplock request. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + True to throw on error. + The NT status code. + This breaks to None. If you want to request the new oplock level then request a new oplock. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + True to complete acknowledgement on close. + + + + Acknowledge a lease oplock started with RequestOplockLease. + + + + + Oplock the file exclusively (no other users can access the file). + + True to throw on error. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + Cancellation token to cancel async operation. + The oplock response level. + + + + Oplock the file exclusively (no other users can access the file). + + The oplock response level. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Wait for an oplock break to complete. + + True to throw on error. + The NT status code. + + + + Wait for an oplock break to complete. + + The NT status code. + + + + Dispose. + + True is disposing. + + + + Try and cancel any pending asynchronous IO. + + + + + Get the extended attributes of a file. + + True to throw on error. + The extended attributes, empty if no extended attributes. + + + + Get the extended attributes of a file. + + The extended attributes, empty if no extended attributes. + + + + Set the extended attributes for a file. + + The EA buffer to set. + True to throw on error. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The EA buffer to set. + This will add entries if they no longer exist, + remove entries if the data is empty or update existing entires. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Set the extended attributes for a file. + + The name of the entry + The associated data + The entry flags. + + + + Remove an extended attributes entry for a file. + + The name of the entry + + + + Assign completion port to file. + + The completion port. + A key to associate with this completion. + + + + Check if a specific set of file directory access rights is granted + + The file directory access rights to check + True if all access rights are granted + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached signing level for a file. + + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The cached signing level data. + Throw on error. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + Flags to set for the cache. + The signing level to cache + Files for signature. + Optional directory path to look for catalog files. + True to throw on error. + + + + Set the end of file. + + The offset to the end of file. + + + + Set the valid data length of the file without zeroing. Needs SeManageVolumePrivilege. + + The length to set. + + + + Get list of hard link entries for a file. + + The list of entries. + + + + Get a list of stream entries for the current file. + + The list of streams. + + + + Visit all accessible streams under this file. + + A function to be called on every accessible stream. Return true to continue enumeration. + Specify the desired access for the streams. + The share access to open the streams with. + Additional options to open the s with. + True if all accessible streams were visited, false if not. + + + + Get list of process ids using this file. + + The list of process ids. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + A file name mask (such as *.txt). Can be null. + Indicate what entries to return. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + True to recurse into sub keys. + The share access to open the files with. + Specify max recursive depth. -1 to not set a limit. + Additional options to open the files with. + True if all accessible files were visited, false if not. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + + + + Visit all accessible files under this directory. + + A function to be called on every accessible file. Return true to continue enumeration. + Specify the desired access for the files. + The share access to open the files with. + + + + Query whether a file is trusted for dynamic code. + + Returns true if the file is trusted. + + + + Set a file is trusted for dynamic code. + + + + + Set a file is trusted for dynamic code. + + True to throw on error. + The NT status code. + + + + Find files in a directory by the owner SID. + + The owner SID. + A list of files in the directory. + For this method to work you need Quota enabled on the volume. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get full change notifications. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get full change notifications asynchronously. Will pick ex version if available and revert to old format if not. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Wait timeout. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + True to throw on error. + The list of changes. + + + + Get extended change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Timeout to wait. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + True to throw on error. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + Cancellation token. + The list of changes. + + + + Get change notifications. + + The filter of events to watch for. + True to watch all sub directories. + The list of changes. + + + + Get the file attributes. + + True to throw on error. + The file attributes. + + + + Set the file attributes. + + The file attributes to set. + True to throw on error. + The NT status code. + + + + Get the creation time. + + True to throw on error. + The creation time. + + + + Get the last write time. + + True to throw on error. + The last write time. + + + + Get the change time time. + + True to throw on error. + The change time. + + + + Get the last access time. + + True to throw on error. + The last access time time. + + + + Set the file's creation time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last access time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's last write time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file's change time. + + The time to set. + True to throw on error. + The NT status code. + + + + Set the file position. + + The file position to set. + True to throw on error. + The NT status code. + + + + Get file information. + + + + + + + Query all reparse points from a volume. + + The list of reparse points. + You'll need to open the reparse database, which is typically \$Extend\$Reparse:$R:$INDEX_ALLOCATION on the volume. + + + + Query all object ids from a volume. + + The list of object ids. + You need to open the object ID database, which is typically \$Extend\$ObjId:$O:$INDEX_ALLOCATION on the volume. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get the Object ID create for a file. + + The object ID buffer. + + + + Get the Object ID buffer for a file. + + True to throw on error. + The object ID buffer. + + + + Get or create the Object ID for a file. + + The object ID buffer. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + True to throw on error. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID buffer. + Only set the extended information. + The NT status code. + + + + Set Object ID and extended information. + + The Object ID GUID. + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Set only Object ID extended information. + > + Extended info buffer, needs to be 48 bytes in size. + The NT status code. + + + + Delete the Object ID for a file. + + True to throw on error. + The NT status code. + + + + Delete the Object ID for a file. + + + + + Make the file sparse. + + True to make the file sparse. + True to throw on error. + The NT status code. + + + + Query if the driver is in the device stack for the device. + + The driver path. Can be a plain name of full object manager path, e.g. \Device\Blah. + True to throw on error. + True indicating driver in path. + + + + Query if the driver is in the device stack for the device. + + The driver path. + True indicating driver in path. + + + + Get filesystem and volume information. + + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a fixed buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + True to throw on error. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + Initialization buffer. + The returned type. + + + + Query a buffer for a volume. + + The type to query. + The volume information class. + The returned type. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + True to throw on error. + The NT status code. + + + + Query a buffer for a volume. + + The volume information class. + The buffer for the query. Can be initialized. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + True to throw on error. + The NT status code. + + + + Set a buffer on a volume. + + The volume information class. + The buffer for the set. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + True to throw on error. + The NT status code. + + + + Set a fixed value on a volume. + + The volume information class. + The fixed value to set. + + + + Query the quota entries for a volume. + + Return quote entries for the specified SIDs. + The list of quota entries. + + + + Query all quota entries for a volume. + + The list of quota entries. + + + + Set quota entries. + + The quota entries to set. + True to throw on error. + The NT status code. + + + + Set quota entries. + + The quota entries to set. + + + + Set quota entry. + + The quota entry to set. + + + + Set quota entry. + + The SID for the quota. + The quota limit to set. + The quota threshold to set. + + + + Get the file's full path. + + True to throw on error. + The file name. + + + + Get the file's normalized path. + + True to throw on error. + The file name. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get object ID for current file + + The object ID as a string + Thrown on error. + + + + Get object ID for current file as a number. + + The object ID as a number. + Thrown on error. + + + + Get or set the attributes of a file. + + The file attributes + Thrown on error. + + + + Get or set the creation time. + + + + + Get or set the last access time. + + + + + Get or set the last write time. + + + + + Get or set the change time. + + + + + Get file information, which is times, attributes and sizes. + + + + + Get or set the file as sparse. + + + + + Get whether this file represents a directory. + + + + + Get whether this file repsents a reparse point. + + + + + The result of opening the file, whether it was created, overwritten etc. + + + + + Get or set the current file position. + + + + + Get or sets the file's length + + + + + Get the file's allocation size. + + + + + Get the number of links. + + + + + Get whether delete is pending. + + + + + Get the Win32 path name for the file. + + The path, string.Empty on error. + + + + Get the low-level device type of the file. + + The file device type. + + + + Get the low-level device characteristics of the file. + + The file device characteristics. + + + + Get filesystem and volume information. + + + + + Get or set the file's compression format. + + + + + Gets whether the file is on a remote file system. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get or set whether this file/directory is case sensitive. + + + + + Get the file mode. + + + + + Get file access information. + + + + + Get the filename with the volume path. + + + + + Get the normalized filename with the volume path. + + + + + Get the associated short filename + + + + + Get the associated short filename + + + + + Get the normalized name. + + + + + Get or set the storage reserve ID. + + + + + Returns whether this object is a container. + + + + + Get or set the read only status of the file. + + + + + Is the file compressed. + + + + + Get remote protocol information. + + + + + Get the granted access as directory rights. + + + + + Get the file system control flags. + + + + + Get persist volume flags. + + + + + Return the status information field. (32 bit) + + + + + Class representing file information. + + + + + Time of creation. + + + + + Time of last access. + + + + + Time of last write. + + + + + Time of change. + + + + + Length of the file. + + + + + Length of the file, alias of EndOfFile. + + + + + Allocation size. + + + + + File attributes. + + + + + Has the file got a set of attributes set. + + The attributes to check. + True if it has the attributes. + + + + Is the file a directory. + + + + + Is the file a reparse point. + + + + + Class to represent a directory entry. + + + + + Index of the file. + + + + + File name. + + + + + Class to represent a directory entry with file IDs. + + + + + Length of any EA buffer. + + + + + The file reference number if known. + + + + + Class to represent a directory entry with short names. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + Class to represent a directory entry with short names and file ids. + + + + + Length of any EA buffer. + + + + + The short name of the file. + + + + + The file reference number if known. + + + + + Class to represent a file quota entry. + + + + + Class to represet a file object ID. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The file's object ID. + + + + + The file's extended info. + + + + + File's birth volume ID. + + + + + File's birth object ID. + + + + + File's domain ID. + + + + + Class to represent a file reparse point. + + + + + Full path to the file with the reparse point. + + + + + Win32 path to the file with the reparse point. + + + + + Reference number for the file. + + + + + The file's attributes. + + + + + The reparse point buffer. + + + + + The reparse point tag. + + + + + Utility functions for files + + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + True to throw on error. + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + The filename, can be relative + The NT filename + + + + Convert a DOS filename to an absolute NT filename + + List of paths to combine before converting. + The NT filename + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + True to throw on error. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The DOS filename. + The object attribute flags. + An optional security quality of service. + An optional security descriptor. + The object attributes + + + + Convert a DOS filename to an NT filename and get as an ObjectAttributes structure + + The filename + The object attributes + + + + Convert a DOS filename to a UNICODE_STRING structure + + The DOS filename + The UNICODE_STRING + + + + Get type of DOS path + + The DOS filename + The type of DOS path + + + + Map directory access rights to file access rights. + + The directory access rights to map. + The mapped access rights. + + + + Convert a file ID long to a string. + + The file ID to convert + The string format of the file id. + + + + Convert a string to a file ID. + + The file ID as a string (must be 4 characters). + The file ID as a long. + + + + Get if a reparse tag is a Microsoft defined one. + + The reparse tag. + True if it's a Microsoft reparse tag. + + + + Get if a reparse tag is a name surrogate. + + The reparse tag. + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory which can have children. + + The reparse tag. + True if it's a directory reparse tag which can have children. + + + + Convert a directory access rights mask to a normal file access mask. + + The access to convert. + The converted access rights. + + + + Convert a file access rights mask to a directory file access mask. + + The access to convert. + The converted access rights. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + True to throw on error. + The old enable state. + + + + Enable or disable Wow64 FS redirection. + + True to enable FS redirection. + The old enable state. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The base address to split. The address should be page aligned. + The length of bytes to split into pages. This will be rounded up to the next page boundary. + The list of pages. + + + + Split an allocated address into a list of pages. This can be used to pass to + ReadScatter or WriteGather file APIs. + + The allocated buffer to split. The address should be page aligned. + The buffer will be split up based on its length. Note that the length will be rounded up. + The list of pages. + + + + Attempt to convert an NT device filename to a DOS filename. + + The filename to convert. + The converted string. Returns a path prefixed with GLOBALROOT if it doesn't understand the format. + + + + Build a path for an open by ID file. + + The path to the volume. + The ID. + The bytes for the ID path. + + + + Build a path for a file ID volume. + + The path to the volume. + The file reference number. + The bytes for the file ID path. + + + + Build a path for an object ID volume. + + The path to the volume. + The file object ID. + The bytes for the file ID path. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + True throw on error. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + Number of iterations of the algorithm to test. + The DOS filename. + + + + Generate a DOS filename from a full filename. + + The full filename. + True to allow extended characters. + The DOS filename. + + + + Is the filename a legal 8dot3 name. + + The filename to check. + True if it's a legal 8dot3 name. + + + + Class representing a NT FilterConnectionPort object. Note this is just a dummy object for typing purposes. + + + + + A generic wrapper for any object, used if we don't know the type ahead of time. + + + + + Convert the generic object to the best typed object. + + The typed object. Can be NtGeneric if no better type is known. + + + + Convert the generic object to the best typed object. + + True to throw on error. + The typed object. Can be NtGeneric if no better type is known. + + + + Returns whether this object is a container. + + + + + Class to represent a system handle + + + + + The ID of the process holding the handle + + + + + Get the image path for the process which contains this handle. + + + + + Get name of the process which contains this handle. + + + + + The object type index + + + + + The object type name + + + + + The object type + + + + + The handle attribute flags. + + + + + The handle value + + + + + The address of the object. + + + + + The granted access mask + + + + + The granted access mask as a string. + + + + + The granted access mask as a string. + + + + + Whether the handle is inheritable. + + + + + Whether the handle is protected from close. + + + + + Whether the handle has write access. + + + + + Whether the handle has read access. + + + + + Whether the handle has execute access. + + + + + Whether the handle has full access. + + + + + The name of the object (needs to have set query access in constructor) + + + + + The security of the object (needs to have set query access in constructor) + + + + + Indicates if the handle was valid. + + This can cause the handle's values to be queried which can take time. + + + + Overridden ToString. + + The handle as a string. + + + + Get handle into the current process + + True to throw on error. + The handle to the object + + + + Get handle into the current process + + The handle to the object + + + + Close the handle in the original process. + + True throw on error. + The NT status code. + This is not recommended. + + + + Close the handle in the original process. + + This is not recommended. + + + + Class to call NT heap APIs. + + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + True to throw on error. + The allocated memory address. + + + + Allocate a buffer from the heap. + + Heap flags. + Size of the allocation. + The allocated memory address. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + True to throw on error. + + + + Free a buffer from the heap. + + Heap flags. + Address of the allocation. + + + + Get the current process heap. + + + + + Class representing an NT IO Completion Port object + + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Create an IO Completion Port object + + The object attributes + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + Number of concurrent threads to process I/O packets. 0 for CPU count. + The IO Completion Port object. + Thrown on error. + + + + Create an unnamed IO Completion Port object. + + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The object attributes + The desired access for the event + True to throw an exception on error. + The NT status code and object result. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The root object for relative path names + The desired access for the event + The IO Completion Port object. + Thrown on error. + + + + Open an IO Completion Port object + + The path to the IO Completion Port + The IO Completion Port object. + Thrown on error. + + + + Remove a queued status from the queue. + + An optional timeout. + True to throw on error. + The completion result. + Thrown on error or timeout. + + + + Remove a queued status from the queue. + + An optional timeout. + The completion result. + Thrown on error or timeout. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + True to throw on error. + Array of completion results. Length can be <= max_count. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + An optional timeout. + Indicate whether the wait is alertable. + Array of completion results. Length can be <= max_count. If timeout then returns an empty array. + + + + Remove multiple queued status from the queue. + + Maximum number of status to remove. + Array of completion results. Length can be <= max_count + + + + Remove a queued status from the queue. Wait for an infinite time for the result. + + The completion result. + + + + Add a queued status to the queue. + + The optional key context. + The optional APC context. + Status code + The information context. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get current depth of IO Completion Port + + + + + Memory control method. + + + + + Buffered. + + + + + IN Direct. + + + + + OUT Direct. + + + + + Neither. + + + + + Access control flags. + + + + + Any access. + + + + + Read access. + + + + + Write access. + + + + + Represents a NT file IO control code. + + + + + Type of device + + + + + Function number + + + + + Buffering method + + + + + Access of file handle + + + + + Is the function number custom, i.e. has the top bit set. + + + + + Get a known name associated with this IO control code. + + + + + Constructor + + Type of device + Function number + Buffering method + Access of file handle + + + + Constructor + + Raw IO control code to convert. + + + + Static method to create an NtIoControlCode + + The conde as an integer. + The io control code. + + + + Convert the io control code to an Int32 + + The int32 version of the code + + + + Overriden hash code. + + The hash code. + + + + Overridden equals. + + The object to compare against. + True if equal. + + + + Overridden ToString method. + + The IO control code as a string. + + + + Format IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + The formatted string. + + + + Format the underlying IO control code with an format specifier. + + The format specified. For example use X to format as a hexadecimal number. + Format provider. + The formatted string. + + + + Class representing a NT Job object + + + + + Create a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Create a job object + + The object attributes + Desired access for job. + The Job object. + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + Desired access for job. + The Job object + + + + Create a job object + + The path to the job object (can be null) + The root object when path is relative + The Job object + + + + Create an unnamed job object + + The Job object + + + + Open a job object + + The object attributes + Desired access for job. + True to throw an exception on error. + The NT status code and object result. + + + + Open a job object + + The object attributes + Desired access for job. + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + Desired access for the job object + The Job object + + + + Open a job object + + The path to the job object + The root object when path is relative + The Job object + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + True to throw on error. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Silo, + + Flags for root directory. + True to throw on error. + The Job object. + + + + Create an initialize a Silo, + + Flags for root directory. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + Desired access for the job. + Object attributes. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + True to throw on error. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Create and initialize a Server Silo, + + Flags for root directory. + Path to the system root. + Event to signal when silo deleted. + True if a downlevel container. + The Job object. + + + + Convert Job object into a Silo + + True to throw on error. + The NT status code. + + + + Convert Job object into a Silo + + + + + Initialize a Silo, + + Flags for root directory. + True to throw on error. + The NT status code. + + + + Initialize a Silo, + + Flags for root directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + True to throw on error. + The NT status code. + You must have set a system root and added a \Device directory (which shadows the real directory) to the silo object directory. + + + + Initialize a Silo to a Server Silo. + + Event to signal when silo deleted. + True if a downlevel container. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + True to throw on error. + The NT status code. + + + + Create the silo's root object directory. + + The flags for the creation. + The NT status code. + + + + Assign a process to this job object. + + The process to assign. + + + + Assign a process to this job object. + + True to throw on error. + The process to assign. + The NT status code. + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Assign a process to this job object using current Job on Windows 1709+. + + + + + Associate a completion port with the job. + + The completion port. + The key associated with the port. + + + + Terminate this job object. + + The termination status. + True to throw on error. + The NT status code. + + + + Terminate this job object. + + The termination status. + + + + Set the limit flags for the job. + + The limit flags. + True to throw on error. + The NT status code. + + + + Set the limit flags for the job. + + The limit flags. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + True to throw on error. + The system_root path must start with a capital drive letter and not end with a backslash. + The NT status code. + + + + Set the Silo system root directory. + + The absolute path to the system root directory. + The system_root path must start with a capital drive letter and not end with a backslash. + + + + Set the active process limit. + + The number of active processes in the job. + True to throw on error. + The NT status code. + + + + Set the active process limit. + + The number of active processes in the job. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + True to throw on error. + The NT status code. + + + + Set minimum and maximum working set size. + + The minimum working set size. + The maximum working set size. + + + + Set the process memory limit. + + The memory limit for a process. + True to throw on error. + The NT status code. + + + + Set the process memory limit. + + The memory limit for a process. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + True to throw on error. + The NT status code. + + + + Set the job memory limit. + + The memory limit for a job. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process, in 100ns ticks. Set to 0 to clear the timeout. + + + + Set the time limit for a process. + + The time limit for a process. + True to throw on error. + The NT status code. + + + + Set the time limit for a process. + + The time limit for a process. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job, in 100ns ticks. Set to 0 to clear timeout. + + + + Set the time limit for a job. + + The time limit for a job. + True to throw on error. + The NT status code. + + + + Set the time limit for a job. + + The time limit for a job. + + + + Get list of process IDs in Job. + + True to throw on error. + The list of process IDs. + + + + Get list of process IDs in Job. + + The list of process IDs. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + True to throw on error. + The NT status code. + + + + Set UI Restriction Flags. + + The UI Restriction Flags. + The NT status code. + + + + Query Silo Root directory. + + True to throw on error. + The silo root directory. + + + + Get Silo basic information. + + True to throw on error. + The Silo Basic Information. + + + + Get Silo basic information. + + True to throw on error. + The Server Silo Basic Information. + + + + Get Silo user shared data. + + True to throw on error. + The Silo User Shared Data. + + + + Get whether this job object can be impersonated. + + True to throw on error. + True if the job object can be impersonated. + + + + Enable thread impersonation on this job object. + + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get or set completion filter for job object. + + + + + The count of completions for the job. + + + + + Get or set the Maximum Bandwith NetRate limitation. + + + + + Get or set the DSCP Tag NetRate limitation. + + + + + Get or set the active process limit. + + + + + Get or set the active process limit. + + + + + Get or set the minimum working set size. + + + + + Get or set the maximum working set size. + + + + + Get or set the process time limit. + + + + + Get or set the process time limit. + + + + + Get or set the process memory limit. + + + + + Get or set the process memory limit. + + + + + Get used peak job memory used. + + + + + Get used peak job memory used. + + + + + Get or set the job limit flags. + + + + + Get or set the job UI Restriction flags. + + + + + Get or set whether job breakaway is allowed. + + + + + Get or set whether silenty job breakaway is allowed. + + + + + ID of container. + + + + + ID of container telemetry. + + + + + Job ID. + + + + + Get the Silo's Root Directory. + + + + + Get Silo basic information. + + + + + Get Silo basic information. + + + + + Get Silo user shared data. + + + + + Get or set the thread impersonation status. + + + + + Get whether this Job object is a silo. + + + + + Class to represent an NT Key object + + + + + Load a new hive + + The destination path + The path to the hive + Load flags + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + The opened root key + Thrown on error. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Key that this hive will be trusted for. + Event handle for key load. + The opened key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Key that this hive will be trusted for. + Event handle for key load. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code and object result. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + True to throw an exception on error. + The NT status code. + + + + Load a new hive + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Desired access for the root key + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + The loaded key. + + + + Load a new hive and do not open the root key. + + Object attributes for the key name + Object attributes for the path to the hive file + Load flags + Token to open the hive files under. + Key that this hive will be trusted for. + Event handle for key load. + + + + Unload an existing hive. + + Object attributes for the key name + Unload flags + True to throw an exception on error. + The NT status code. + + + + Unload an existing hive. + + Path to key to unload. + Unload flags + Thrown on error. + + + + Unload an existing hive. + + Path to key to unload. + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + True to throw an exception on error. + The NT status code and object result. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Create a new Key + + Object attributes for the key name + Desired access for the root key + Create options + Optional transaction object. + The NT status code and object result. + + + + Create a new Key + + Path to the key to create + Root key if key_name is relative + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + Optional transaction object. + True to throw an exception on error. + The NT status code and object result. + + + + Try and open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + Open options. + True to throw an exception on error. + The NT status code and object result. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + The opened key + Thrown on error. + + + + Open a Key + + Object attributes for the key name + Desired access for the root key + Open options. + Optional transaction object. + The opened key + Thrown on error. + + + + Open a Key + + Path to the key to open + Root key if key_name is relative + Desired access for the root key + The opened key + Thrown on error. + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + True to throw an exception on error + The license value key + + + + Query a license value. While technically not directly a registry key + it has many of the same properties such as using the same registry + value types. + + The name of the license value. + The license value key + + + + Create a registry key symbolic link + + Root key if path is relative + Path to the key to create + Target resistry path + The created symbolic link key + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the machine key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open the user key + + The opened key + Thrown on error. + + + + Open the user key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Open a specific user key + + The SID of the user to open + The opened key + Thrown on error. + + + + Open the user key + + The SID of the user to open + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the current user key + + The opened key + Thrown on error. + + + + Open the current user key + + True to throw on error. + The opened key with the maximum access allowed. + Thrown on error. + + + + Open the root key + + The opened key + Thrown on error. + + + + Open the root key + + The opened key with the maximum access allowed. + True to throw on error. + Thrown on error. + + + + Create a new Key + + Path to the key to create + The opened key + Thrown on error. + + + + Create a new Key + + Path to the key to create + Desired access for the root key + Create options + The opened key + Thrown on error. + + + + Delete the key + + True to throw on error. + + + + Delete the key + + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a resistry value + + The name of the value + The type of the value + The raw value data + Thrown on error. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a string resistry value + + The name of the value + The type of the value + The value data + Thrown on error. + + + + Set a string resistry value as REG_SZ. + + The name of the value + The value data + Thrown on error. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a list of strings as a resistry value. + + The name of the value + The list of strings to set. + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a QWORD resistry value + + The name of the value + The value data + True to throw on error. + Thrown on error. + The NT status code. + + + + Set a DWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Set a DWORD resistry value + + The name of the value + The value data + True to set the value of big endian. + Thrown on error. + + + + Set a QWORD resistry value + + The name of the value + The value data + Thrown on error. + + + + Delete a registry value + + The name of the value + True to throw on error. + Thrown on error. + The NT status code. + + + + Delete a registry value + + The name of the value + Thrown on error. + + + + Query a value by name + + The name of the value + True to throw on error + The value information + + + + Query a value by name + + The name of the value + The value information + Thrown on error. + + + + Query all values for this key + + A list of values + Thrown on error. + + + + Query all subkey entries. + + The list of subkey entries + Thrown on error. + + + + Query all subkey names + + The list of subkey names + Thrown on error. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + True to open link keys rather than following the link. + True to open keys with backup flag set. + The disposable list of subkeys. + + + + Return a list of subkeys which can be accessed. + + The required access rights for the subkeys + The disposable list of subkeys. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + True to throw on error. + The NT status code. + Thrown on error. + + + + Set a symbolic link target for this key (must have been created with + appropriate create flags) + + The symbolic link target. + + + + Get the symbolic link target for this key. + + True to throw on error. + The symbolic link target. + Thrown on error. + + + + Get the symbolic link target for this key. + + The symbolic link target. + Thrown on error. + + + + Open a key + + The path to the key to open + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + True to throw on error. + The opened key + Thrown on error. + + + + Open a key + + The path to the key to open + Access rights for the key + Key open options. + True to throw on error. + The opened key + Thrown on error. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + The object attributes to open with. + Open options. + True to throw on error. + The opened key. + + + + Reopen the key with different access rights. + + The access rights to reopen with. + Open options. + The opened key. + + + + Convert object to a .NET RegistryKey object + + The registry key object + + + + Rename key. + + The new name for the key. + True to throw on error. + The NT status code. + Thrown on error. + + + + Rename key. + + The new name for the key. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Save the opened key into a file. + + The file path to save to. + Save key flags + + + + Save the opened key into a file. + + The file path to save to. + + + + Restore key from a file. + + The file to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + Restore key flags + True to throw on error. + The NT status code. + Thrown on error. + + + + Restore key from a file. + + The file path to restore from + Restore key flags + + + + Restore key from a file. + + The file path to restore from + + + + Try and lock the registry key to prevent further modification. + + Note that this almost certainly never works from usermode, there's an explicit + check to prevent it in the kernel. + + + + Wait for a change on the registry key. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Wait for a change on thie registry key asynchronously. + + Specify what changes will be notified. + True to watch the entire tree. + The status from the change notification. + Thrown on error. + + + + Visit all accessible keys under this one. + + A function to be called on every accessible key. Return true to continue enumeration. + Specify the desired access for the keys. + True to recurse into sub keys. + Specify max recursive depth. -1 to not set a limit. + Open the key using backup privileges. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + True to recurse into sub directories. + + + + Visit all accessible directories under this one. + + A function to be called on every accessible directory. Return true to continue enumeration. + Specify the desired access for the directory + True to recurse into sub directories. + Open the key using backup privileges. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Get key last write time + + The last write time + Thrown on error. + + + + Get key subkey count + + The subkey count + Thrown on error. + + + + Get key value count + + The key value count + Thrown on error. + + + + Get the key title index + + The key title index + Thrown on error. + + + + Get the key class name + + The key class name + Thrown on error. + + + + Get the maximum key value name length + + The maximum key value name length + Thrown on error. + + + + Get the maximum key value data length + + The maximum key value data length + Thrown on error. + + + + Get the maximum subkey name length + + The maximum subkey name length + Thrown on error. + + + + Get the maximum class name length + + The maximum class name length + Thrown on error. + + + + Get the key path as a Win32 style one. If not possible returns + the original path. + + + + + The disposition when the key was created. + + + + + Indicates the handle is a special pre-defined one by the kernel. + + + + + Get or set virtualization flags. + + + + + Get or set key control flags. + + + + + Get or set wow64 flags. + + + + + Get key flags. + + + + + Indicates if this key is from a trusted hive. + + + + + Indicates if this key is a symbolic link. + + + + + Indicates if this key is volatile. + + + + + Get the name from NtQueryKey. + + + + + Returns whether this object is a container. + + + + + A key entry. + + + + + The name of the key. + + + + + The last write time. + + + + + The key's title index. + + + + + Class to represent a loaded hive from the Hive List. + + + + + Path to the root key. + + + + + Path to the hive file. + + + + + Utilities for registry keys. + + + + + Convert a Win32 style keyname such as HKEY_LOCAL_MACHINE\Path into a native key path. + + The win32 style keyname to convert. + The converted keyname. + Thrown if invalid name. + + + + Attempt to convert an NT style registry key name to Win32 form. + If it's not possible to convert the function will return the + original form. + + The NT path to convert. + The converted path, or original if it can't be converted. + + + + Query list of loaded hives from the Registry. + + Convert the file path to a DOS path. + The list of loaded hives. + + + + Query list of loaded hives from the Registry. + + The list of loaded hives. + + + + Class representing a single Key value + + + + + Name of the value + + + + + Type of the value + + + + + Raw data for the value + + + + + Title index for the value + + + + + Get the value as an object. + + + + + Convert the value to a string + + The value as a string + + + + Convert value to an object + + The value as an object + + + + LDR static methods. + + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + True to throw on error. + The procedure address. + + + + Get address of a procedure in a mapped image. + + The handle to the mapped image. + The name of the procedure to find. + The procedure address. + + + + Class to access NT locale information + + + + + Get mapped NLS section + + The type of section + The codepage number + True to throw on error. + The mapped section if it exists. + + + + Get mapped NLS section + + The type of section + The codepage number + The mapped section if it exists. + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + + + + Get default locale ID + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + True to throw on error. + The locale ID + The NT status code. + + + + Set default locale + + True if the locale should be the thread's, otherwise the systems + The locale ID + + + + Class representing a NT File Mailslot client object + + + + + Set the mailslot read timeout. + + The timeout to set. + True to throw on error. + The NT Status code. + + + + Peek on the current status of the Mailslot. + + True to throw on error. + The peek status. + + + + Peek on the current status of the Mailslot. + + The peek status. + + + + Get or set the Read Timeout. + + + + + Get maximum message size. + + + + + Get mailslot quota. + + + + + Get next message size. + + + + + Get messages available. + + + + + Class representing a mapped section + + + + + The process which the section is mapped into + + + + + The valid length of the mapped section from the current position. + + This doesn't take into account the possibility of fragmented commits. + + + + Get full path for mapped section. + + + + + Query the memory protection setting for this mapping. + + + + + Get image signing level. + + + + + Get the base address of the mapped section. + + + + + Release the internal handle + + + + + + Checks if this mapped view represents the same file. + + The address to check. + True to throw on error. + True if the mapped view represents the same file. + + + + Checks if this mapped view represents the same file. + + The address to check. + True if the mapped view represents the same file. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Class representing a NT Mutant object + + + + + Create a new mutant + + The path to the mutant + The root object if path is relative + True to set current thread as initial owner + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + The opened mutant + Thrown on error + + + + Create a new mutant + + Object attributes + True to set current thread as initial owner + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Open a mutant + + The path to the mutant + The root object if path is relative + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + The path to the mutant + The root object if path is relative + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + The opened mutant + Thrown on error + + + + Open a mutant + + Object attributes + Desired access for mutant + True to throw an exception on error. + The NT status code and object result. + + + + Release the mutant + + True to throw on error. + The previous release count + + + + Release the mutant + + The previous release count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the owner of the mutant. + + + + + Get current count. + + + + + Get wether mutant owned by current thread. + + + + + Get whether mutant is abandoned. + + + + + Pipe attribute type. + + + + + The pipe attributes. + + + + + The pipe connect attributes. + + + + + The pipe handle attributes. + + + + + Class to add additional methods to a file for a named pipe. This is a base class for server and client types. + + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as a byte array. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + True to throw on error. + The status code for the attribute. + Thrown on error. + + + + Set a named attribute for a pipe. + + The attribute type to set. + The name of the attribute. + The value to set. + Thrown on error. + + + + Get a named attribute from the pipe. + + The attribute type to query. + The name of the attribute. + The attribute value as a byte array. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + True to throw on error. + The attribute value as an integer. + Thrown on error. + + + + Get a named attribute from the pipe as an integer. + + The attribute type to query. + The name of the attribute. + The attribute value as an integer. + Thrown on error. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + True to throw on error. + The received buffer. + + + + Send and receive a message in one call. + + The input buffer to send. + The maximum output size. + The received buffer. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + True to throw on error. + The NT status code. + + + + Set pipe information flags. + + The read mode to set. + The completion mode. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Pipe completion mode. + + + + + Pipe read mode. + + + + + Pipe type. + + + + + Pipe configuration. + + + + + Maximum instances of the pipe, -1 is unlimited. + + + + + Current pipe instances. + + + + + Inbound quota. + + + + + Available bytes to read. + + + + + Outbound quota. + + + + + Available outbound quota. + + + + + Connect state of the named pipe. + + + + + Type of pipe endpoint. + + + + + Class to add additional methods to a file for a named pipe server. + + + + + Listen for a new connection to this named pipe server. + + + + + Listen for a new connection to this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Listen for a new connection to this named pipe server asynchronously. + + The async task to complete. + + + + Disconnect this named pipe server. + + + + + Disconnect this named pipe server asynchronously. + + An optional cancellation token. + The async task to complete. + + + + Disconnect this named pipe server asynchronously. + + The async task to complete. + + + + Impersonate the client of the named pipe. + + The impersonation context. Dispose to revert to self. + + + + Get client process ID. + + + + + Get client session ID. If this is 0 then the client is local, otherwise it's set by the SMB server. + + + + + Get client computer name. + + + + + Get the default named pipe ACL for the current caller. + + The default named pipe ACL. + + + + Class to add additional methods to a file for a named pipe client. + + + + + Disables impersonation on a named pipe. + + + + + Get server process ID. + + + + + Get client session ID. + + + + + A pair of named pipes. + + + + + Read pipe for the pair. + + + + + Write pipe for the pair. + + + + + Base class for all NtObject types we handle + + + + + Get the basic information for the object. + + The basic information + + + + Base constructor + + Handle to the object + + + + Duplicate the internal handle to a new handle. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate the internal handle to a new handle. + + The source handle to duplicate + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The duplicated handle. + + + + Duplicate a handle from the current process to a new handle with the same access rights. + + The source handle to duplicate + The desination process for the handle + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with the same access rights. + + The source handle to duplicate + True to throw on error. + The duplicated handle. + + + + Duplicate a handle from and to the current process to a new handle with new access rights. + + The source handle to duplicate + The access for the new handle. + The duplicated handle. + + + + Indicates whether a specific type of kernel object can be opened. + + The kernel typename to check. + True if this type of object can be opened. + + + + Open an NT object with a specified type. + + The type to open. If null the method will try and lookup the appropriate type. + Object attributes for object. + Generic access rights to the object. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + True to throw on error. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + Attributes to open the object. + Security quality of service. + The opened object. + Thrown if an error occurred opening the object. + + + + Open an NT object with a specified type. + + The name of the type to open (e.g. Event). If null the method will try and lookup the appropriate type. + The path to the object to open. + A root directory to open from. + Generic access rights to the object. + The opened object. + Thrown if an error occurred opening the object. + Thrown if type of resource couldn't be found. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process. + + The source handle to close. + The source process containing the handle to close. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + True to throw an exception on error. + The NT status code. + + + + Close a handle in another process by PID. + + The source handle to close. + The source process ID containing the handle to close. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Close a handle. + + The handle to close. + The NT status code. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate a handle to a new handle, potentially in a different process. + + Attribute flags for new handle + The source handle to duplicate + The source process to duplicate from + The desination process for the handle + Duplicate handle options + The access rights for the new handle + The NT status code and object result. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate object with specific access rights. + + Access rights to duplicate with. + The duplicated object. + + + + Duplicate object with same access rights. + + The duplicated object. + + + + Duplicate the object handle as a WaitHandle. + + The wait handle. + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get security descriptor as a byte array + + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor. + + + + Get security descriptor as a byte array + + Returns an array of bytes for the security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + Make the object a temporary object + + True to throw on error. + The NT status code. + + + + Make the object a temporary object + + + + + Make the object a permanent object + + True to throw on error. + The NT status code. + + + + Make the object a permanent object + + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + True to make the wait alertable + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled + + The time out in seconds + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled for an infinite time. + + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + Thrown on error + + + + Wait on the object to become signaled. + + Timeout in seconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + + Timeout in seconds. + A task to wait on. If result is true then event was signaled. + + + + Wait on the object to become signaled. + Will wait an infinite time. + + A task to wait on. + + + + Convert an enumerable access rights to a string + + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The string format of the access rights + + + + Check if this object is exactly the same as another using NtCompareObject. + + The object to compare against. + True if this is the same object. + Thrown on error. + This is only supported on Windows 10 and above. For one which works on everything use SameObject. + + + + Check if this object is exactly the same as another. + + The object to compare against. + True if this is the same object. + Thrown on error. + This function can be slow to run and unreliable. Use CompareObject is Windows 10 or above. + + + + Convert to a string + + The string form of the object + + + + Get full path to the object + + + + + Get the granted access as an unsigned integer + + + + + Get the security descriptor, with Dacl, Owner, Group and Label + + + + + Get the security descriptor as an SDDL string + + The security descriptor as an SDDL string + + + + The low-level handle to the object. + + + + + Get the NT type name for this object. + + The NT type name. + + + + Get the NtType for this object. + + The NtType for the type name + + + + Get the name of the object + + + + + Indicates if the handle can be used for synchronization. + + + + + Get object creation time. + + + + + Get the attribute flags for the object. + + + + + Get number of handles for this object. + + + + + Get reference count for this object. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the object's address is kernel memory. + + As getting the address is expensive you need to pass the object to NtSystemInfo::ResolveObjectAddress to intialize. + + + + Returns whether this object is a container. + + + + + Returns whether this object is closed. + + + + + Virtual Dispose method. + + True if disposing, false if finalizing + + + + Finalizer + + + + + Dispose + + + + + Close handle + + + + + Generic access rights. + + + + + Options for duplicating objects. + + + + + Close the original handle. + + + + + Duplicate with the same access. + + + + + Duplicate with the same handle attributes. + + + + + Prevent duplicating handle above the existing access. + + + + + Information class for NtQueryObject + + + + + + Structure to return Object Name + + + + + Structure to return Object basic information + + + + + Type of kernel pool used for object allocation + + + + + Native structure used for getting type information. + + + + + Static utility methods. + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Convert an NtStatus to an exception if the status is an error + + The NtStatus + The original NtStatus if not an error + Thrown if status is an error. + + + + Convert an NtStatus to an exception if the status is an error and throw_on_error is true. + + The NtStatus + True to throw an exception onerror. + The original NtStatus if not thrown + Thrown if status is an error and throw_on_error is true. + + + + Checks if the NtStatus value is a success + + The NtStatus value + True if a success + + + + Checks if the NtStatus value is an error. + + The NtStatus value + True if an error. + + + + Get the severity of the NTSTATUS. + + The NtStatus value + The severity. + + + + Get the facility of the NTSTATUS. + + The NtStatus value + The facility. + + + + Get the status code of the NTSTATUS. + + The NtStatus value. + The static code. + + + + Is an NTSTATUS a customer code. + + The NtStatus value + True if is a customer code. + + + + Is an NTSTATUS reserved. + + The NtStatus value + True if reserved. + + + + Build a status from it's component parts. + + The severity of the status code. + Is this a customer code? + Is this a reserved code? + The facility. + The status code. + + + + + Convert an NTSTATUS to a message description. + + The status to convert. + The message description, or an empty string if not found. + + + + Convert an integer to an NtStatus code. + + The integer status. + The converted code. + + + + Convert an enumerable access rights to a string + + The granted access mask. + Generic mapping for object type. + Enum type to convert to string. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an IEnumerable to a Disposable List. + + + + + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The default value to return if an error occurred. + The result of func. + If result is not a success then the function is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + If result is not a success then the function is not called. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + If result is not a success then the action is not called. + + + + Run a function on an NtResult and dispose the result afterwards. + + The underlying result type. + The result of the function. + The result. + The function to call. + The result of func. + + + + Run an action on an NtResult and dispose the result afterwards. + + The underlying result type. + The result. + The action to call. + + + + Convert a handle to a known object type. + + The handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Convert a handle to a known object type. + + The handle. + True to own the handle. + The object type. + + + + Map a DOS error to an NT status code. + + The DOS error. + The NT status code. + + + + Map a status to a DOS error code. Takes into account NTWIN32 + status codes. + + The status code. + The mapped DOS error. + + + + Get the last NT status code in this thread set for Win32 last error. + + The last NT status code. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + Create a successful NT result object. + + The result type. + The result value. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + Function to call on error. + The created result. + + + + Create an NT result object. If status is successful then call function otherwise use default value. + + The result type. + The associated status code. + Throw an exception on error. + Function to call to create an instance of the result + The created result. + + + + A derived class to add some useful functions such as Duplicate + + The derived type to use as return values + An enum which represents the access mask values for the type + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + True to throw on error. + The reopened object. + + + + Reopen object with different access rights. + + The desired access. + The reopened object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + True to throw an exception on error. + The duplicated object. + + + + Duplicate object. + + Access rights to duplicate with. + Attribute flags. + Duplicate options + The duplicated object. + + + + Duplicate the object with specific access rights + + The access rights for the new handle + The duplicated object + + + + Duplicate the object with specific access rights + + The access rights for the new handle + True to throw an exception on error. + The duplicated object + + + + Duplicate the object with same access rights + + The duplicated object + + + + Duplicate the object with same access rights + + True to throw on error. + The duplicated object + + + + Get granted access for handle. + + Granted access + + + + Get generic granted access for handle. + + Generic Granted access + + + + Get the maximum permission access for this object based on a token + and it's security descriptor. + + The token to check against. + Returns 0 if can't read the security descriptor. + + + + Get the maximum permission access for this object based on the current token + and its security descriptor. + + Returns 0 if can't read the security descriptor. + + + + Check if a specific set of access rights is granted + + The access rights to check + True if all access rights are granted + + + + Create a new instance from a kernel handle + + The kernel handle + The new typed instance + + + + Create a new instance from a kernel handle + + The kernel handle + True to own the handle. + The new typed instance + + + + Create a new instance from a kernel handle. + + The kernel handle + The call doesn't own the handle. The returned object can't be used to close the handle. + The new typed instance + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + The attribute flags for the new object. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process with a specified access rights. + + The process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process + + The process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process with same access rights. + + The process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from a process with same access rights + + The process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from current process to an other process with a specified access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from current process to an other process + + The destination process ID + The handle value to duplicate + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The handle value to duplicate + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights. + + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The handle value to duplicate + The duplicated handle + + + + Duplicate an instance from current process to an other process with same access rights + + The destination process ID + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The options for duplication. + True to throw an exception on error. + The NT status code and object result. + + + + Duplicate an instance from a process to an other process with a specified access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The access rights to duplicate. + The duplicated handle + + + + Duplicate an instance from a process to an other process + + The source process ID + The handle value to duplicate + The destination process ID + The access rights to duplicate with + The duplicated handle + + + + Duplicate an instance from a process to an other process with same access rights. + + The source process (with DupHandle access) + The handle value to duplicate + The destination process (with DupHandle access) + The duplicated object. + + + + Duplicate an instance from a process to an other process with same access rights + + The source process ID + The handle value to duplicate + The destination process ID + The duplicated handle + + + + Interface to generically query an object. + + + + + Interface to generically set an object. + + + + + A derived class to add some useful functions such as Duplicate as well as generic Query and Set information methods. + + The derived type to use as return values + An enum which represents the access mask values for the type + An enum which represents the information class for query. + An enum which represents the information class for set. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The base type for the enumeration. + The information class to query. + The result of the query. + Thrown on error. + + + + Query an enumerated value from the object. + + The type of enum to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Query the information class as an object. + + The information class. + The information class as an object. + If the information class doesn't have an explicit object type a raw byte query will be made. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Overriddable method to determine the maximum brute force length for query. + + Information class to key on if needs to return different sizes. + The maximum bytes to brute force. Returning 0 will disable brute force. + + + + Overridable method to determine if the return length shouldn't be trusted for this info class when querying a variable buffer. + + Information class to key on. + True to trust the return length when querying a variable buffer. + + + + Class representing a NT Partition object + + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + True to throw an exception on error. + The NT status code and object result. + + + + Create a partition object + + The object attributes + Optional parent parition. + Desired access for the partition. + The preferred node, -1 for any node. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + True to throw an exception on error. + The NT status code and object result. + + + + Open a partition object + + The object attributes + Desired access for the partition. + The NT status code and object result. + + + + Class representing a NT Process object. + + + + + Gets all accessible processes on the system. + + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system. + + The access desired for each process. + True to get processes from system information rather than NtGetNextProcess + The list of accessible processes. + + + + Gets all accessible processes on the system in a particular session. + + The session ID. + The access desired for each process. + The list of accessible processes. + + + + Gets all accessible processes on the system in the current session session. + + The access desired for each process. + The list of accessible processes. + + + + Get first accessible process (used in combination with GetNextProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a process + + The process ID to open + The desired access for the handle + The opened process + + + + Open a process + + The process ID to open + Optional thread ID to verify the correct process is opened. + The desired access for the handle + The opened process. + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + The parent process + Creation flags + Handle to the executable image section + The created process + + + + Create a new process + + Handle to the executable image section + Access token for the new process. + The created process + + + + Create a new process + + Handle to the executable image section + The created process + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Desired access for the new process. + Optional object attributes. + The parent process + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + + + + Create a new user process. + + The process configuration. + True to throw on error. + The result of the process creation + + + + Create a new user process. + + The process configuration. + The result of the process creation + + + + Fork a process. + + The process configuration. + True to throw on error. + The new forked process result + This uses NtCreateUserProcess. + + + + Fork a process. + + The process configuration. + The new forked process result + This uses NtCreateUserProcess. + + + + Open an actual handle to the current process rather than the pseudo one used for Current + + The process object + + + + Test whether a process can access another protected process. + + The current process. + The target process. + True if the process can be accessed. + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Get next accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The access required for the process. + The accessible process, or null if one couldn't be opened. + + + + Get previous accessible process (used in combination with GetFirstProcess) + + The accessible process, or null if one couldn't be opened. + + + + Get first accessible thread for process. + + The desired access for the thread. + The first thread object, or null if not accessible threads. + + + + Get first accessible thread for process. + + The first thread object, or null if not accessible threads. + + + + Get accessible threads for a process. + + The desired access for the threads + The list of threads + + + + Get accessible threads for a process. + + The list of threads + + + + Read a partial PEB from the process. + + The read PEB structure. + + + + Create a new process + + Creation flags + Handle to the executable image section + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + True to throw on error. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Create a new process + + Optional object attributes. + Desired access for the new process. + Creation flags + Handle to the executable image section + Debug port for the new process. + Access token for the new process. + The created process + This uses NtCreateProcessEx rather than NtCreateUserProcess + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + + + + Terminate the process + + The exit code for the termination + True to throw on error. + The NT status code. + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + True to throw on error. + The process image file path + + + + Get process image file path + + True to return the native image path, false for a Win32 style path + The process image file path + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + True to throw on error. + The mitigation policy value + + + + Get a mitigation policy as an enumeration. + + The policy to get. + The mitigation policy value + + + + Get a mitigation policy raw value + + The policy to get + True to throw on error. + The raw policy value + + + + Get a mitigation policy raw value + + The policy to get + The raw policy value + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy value from an enum. + + The policy to set + The value to set + + + + Set a mitigation policy raw value + + The policy to set + The value to set + True to throw on error. + The NT status code. + + + + Set a mitigation policy raw value + + The policy to set + The value to set + + + + Disable dynamic code policy on another process. + + + + + Suspend the entire process. + + True to throw on error. + The NT status code. + + + + Resume the entire process. + + True to throw on error. + The NT status code. + + + + Suspend the entire process. + + + + + Resume the entire process. + + + + + Open the process' token + + The process token. + + + + Open the process' token + + True to throw on error. + The process token. + + + + Open the process' token + + Desired access for token. + True to throw on error. + The process token. + + + + Set process access token. Process must be have not been started. + + The token to set. + True to throw on error. + The NT status code. + + + + Set process access token. Process must be have not been started. + + The token to set. + + + + Read memory from a process. + + The base address in the process. + The length to read. + If true ensure we read all bytes, otherwise throw on exception. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Read memory from a process. + + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Query memory information for a process. + + The base address. + The queries memory information. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Specify memory types to filter on. + Set of flags which indicate the memory states to return. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Specify memory types to filter on. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + True to include free regions of memory. + Thrown on error. + + + + Query all memory information regions in process memory excluding free regions. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped images in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of mapped files in a process. + + The list of mapped images + Thrown on error. + + + + Query a list of all mapped files and images in a process. + + The list of mapped images + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Allocate read/write virtual memory in a process. + + The region size to allocate. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The address to flush. + The number of bytes to flush/ + + + + Query working set information for an address in a process. + + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The base address to query. + The working set information. + Thrown on error. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Set the process device map. + + The device map directory to set. + True to throw on error. + Note that due to a bug in the Wow64 layer this won't work in a 32 bit process on a 64 bit system. + + + + Open a process' debug object. + + True to throw on error. + The process' debug object. + + + + Open a process' debug object. + + The process' debug object. + + + + Queries whether process is backed by a specific file. + + File object opened with Synchronize and Execute access to test against. + True if the process is created from the image file. + + + + Open parent process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open parent process by ID. + + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + True to throw on error. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The desired process access rights. + The opened process. + Thrown on error. + + + + Open owner process by ID. + + The opened process. + Thrown on error. + + + + Get if process is in a job. + + A specific job to check + True if in specific job. + + + + Get if process is in a job. + + True if in a job. + + + + Get process handle table. + + The list of process handles. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + Force file query for name/details for non-filesystem handles. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + True to throw on error. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + Specify to all name/details to be queried from the handle. + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get handles for process. + + The list of handles. + This queries the handles from the process which does not contain the Object's addres in kernel memory. + + + + Get the process handle table and try and get them as objects. + + True to only return named objects + A list of typenames to filter on (if empty then return all) + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Get the process handle table and try and get them as objects. + + The list of handles as objects. + This function will drop handles it can't duplicate. + + + + Open image section for process. + + True to throw on error. + The opened image section. + Should only work on the pseudo process handle. + + + + Open image section for process. + + The opened image section. + Should only work on the pseudo process handle. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section. + + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section. + + The base address to unmap. + + + + Get the user SID for the process. + + True to throw on error. + The user SID. + + + + Get the user SID for the process. + + The user SID. + + + + Get the integrity level for the process. + + True to throw on error. + The integerity level. + + + + Set process fault flags. + + The flags to set. + True to throw on error. + The NT status code for the operation. + + + + Set process fault flags. + + The flags to set. + The NT status code for the operation. + + + + Set the process exception port. + + The exception port to set. + Additional state flags. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + True to throw on error. + The NT status code. + + + + Set the process exception port. + + The exception port to set. + The NT status code. + + + + Get the user process parameters. + + The user process parameters. + + + + Fork the process. + + Extra flags for fork. + True to throw on error. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + Extra flags for fork. + The new forked process result. + This uses NtCreateProcessEx. + + + + Fork the process. + + The new forked process result. + This uses NtCreateProcessEx. + + + + Get the accessible job objects this process is in. + + This tries to find accessible Job handles. There's no guarantee that all Job objects will be found for the process. + The list of job objects. + + + + Set thread intelligence logging flags. + + The flags to set. + True to throw on error. + The NT status code. + + + + Set thread intelligence logging flags. + + The flags to set. + + + + Get the process security domain. + + True to throw on error. + The security domain. + + + + Get the process security domain. + + The security domain. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + True to throw on error. + The NT status code. + The current process need SetLimitedInformation access. + + + + Combine two process' security domains. + + The process to combine with. Needs QueryLimitedInformation. + The current process need SetLimitedInformation access. + + + + Get the session ID for the process. + + True to throw on error. + The session ID. + + + + Test whether the current process can access another protected process. + + The target process. + True if the process can be accessed. + + + + Get the environment from the process. + + List of environment variables. + + + + Get an environment variable by name. + + The name of the variable. + The value of the environment variable. Returns null if it doesn't exist. + Only returns the first variable with a case insensitive name. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + True to throw on error. + The NT status code. + + + + Revoke file handles for an AppContainer process. + + The device path for the files to revoke. + + + + Get the process command line. + + True to throw on error. + The process command line. + + + + Get the IO counters for the process. + + True to throw on error. + The IO counters. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + True to throw on error. + The created enclave. + + + + Create a VBS enclave. + + Size of the enclave. + Flags for the enclave. + Owner ID. Must be 32 bytes. + The created enclave. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the process' session ID + + + + + Get the process' ID + + + + + Get the process' parent process ID + + + + + Get the memory address of the PEB + + + + + Get the memory address of the PEB for a 32 bit process. + + If the process is 64 bit, or the OS is 32 bit this returns the same value as PebAddress. + + + + Get the base address of the process from the PEB. + + + + + Read flags from PEB. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Get the process' command line + + + + + Get the command line as parsed arguments. + + + + + Get process DEP status + + + + + Get whether process has a debug port. + + + + + + Get handle count. + + + + + Get break on termination flag. + + + + + Get or set debug flags. + + + + + Get or set execute flags. + + + + + Get IO priority. + + + + + Get secure cookie. + + + + + Get the process user. + + + + + Get the integrity level of the process. + + + + + Get process mitigations + + + + + Get extended process flags. + + + + + Get process window title (from Process Parameters). + + + + + Get process window flags (from Process Parameters). + + + + + Get the process subsystem type. + + + + + Get if the process is Wow64 + + + + + Get whether the process is 64bit. + + + + + Get whether LUID device maps are enabled. + + + + + Return whether this process is sandboxed. + + + + + Get or set the hard error mode. + + + + + Does the process has a child process restriction? + + + + + Gets whether the process is currently deleting. + + + + + Gets whether the process is secure. + + + + + Gets whether the process is protected. + + + + + Gets whether the process is a subsystem process. + + + + + Gets whether the process is frozen. + + + + + Get process protection information. + + + + + Query process section image information. + + + + + Get full image path name in native format + + + + + Get the Win32 image path. + + + + + Get owner process ID + + + + + Query the process token's full package name. + + + + + Get or set whether resource virtualization is enabled. + + + + + Get the security domain of the process. + + + + + Get the creation time of the process. + + + + + Get the exit time of the process. + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get the time spent in the kernel in seconds. + + + + + Get the time spent in user mode. + + + + + Get the process IO counters. + + + + + Get or set priority boost disabled. + + + + + Get the current process. + + This only uses the pseudo handle, for the process. If you need a proper handle use OpenCurrent. + + + + Get the current PEB address. + + + + + Configuration for a new NT Process. + + + + + Path to the executable to start. + + + + + Path to the executable to start which is passed in the process configuration. + + This doesn't have to match ImagePath. + + + + Command line + + + + + Prepared environment block. + + + + + Title of the main window. + + + + + Path to DLLs. + + + + + Current directory for new process + + + + + Desktop information value + + + + + Shell information value + + + + + Runtime data. + + + + + Prohibited image characteristics for new process + + + + + Additional file access for opened executable file. + + + + + Process create flags. + + + + + Thread create flags. + + + + + Initialization flags + + + + + Parent process. + + + + + Specify child process mitigations. + + + + + Whether to terminate the process on dispose. + + + + + Specify a security descriptor for the process. + + + + + Specify a security descriptor for the initial thread. + + + + + Specify the primary token for the new process. + + + + + Access for process handle. + + + + + Access for thread handle. + + + + + Set protection level. + + + + + Set to create a trustlet. + + + + + Set to specify the configuration for the trustlet if Secure is set. + + + + + Capture additional information when NtProcess.Create returns. + + + + + Specify callback to update process parameters. + + + + + Redirection DLL path. Only supported from 1903. + + + + + Inheritable handles. + + + + + Debug object. + + + + + Toggle inherit handles process create flag. + + + + + Add an extra process/thread attribute. + + The process attribute to add. + The caller is responsible for disposing the attribute, this class does not hold a reference. + + + + Set protected process protection level. + + The type of protected process. + The signer level. + + + + Constructor + + + + + Result from creating a user process. + + + + + Handle to the process + + + + + Handle to the initial thread + + + + + Handle to the image file + + + + + Handle to the image section + + + + + Handle to the IFEO key (if it exists) + + + + + Image information + + + + + Client ID of process and thread + + + + + Process ID + + + + + Thread ID + + + + + Create status. + + + + + True if create succeeded. + + + + + DLL characterists if CreateState is FailMachineMismatch. + + + + + Creation state + + + + + Output flags if CreateStatus is Success. + + + + + Native user process parameters pointer if CreateStatus is Success. + + + + + Wow64 user process parameters pointer if CreateStatus is Success. + + + + + Current parameter flags if CreateStatus is Success. + + + + + PEB pointer if CreateStatus is Success. + + + + + Wow64 PEB pointer if CreateStatus is Success. + + + + + Manifest pointer if CreateStatus is Success. + + + + + Manifest size if CreateStatus is Success. + + + + + Set to true to terminate process on disposal + + + + + Terminate the process + + Exit code for termination + + + + Resume initial thread + + The suspend count + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Dispose + + + + + Entry for a process environment block. + + + + + Name of the environment variable. + + + + + Value of the environment variable. + + + + + Constructor. + + Name of the environment variable. + Value of the environment variable. + + + + Class representing various process mitigations + + + + + Partial definition of the PEB + + + + + Partial definition of the PEB + + + + + Class which represents the configuration for a trustlet. + + + + + The ID of the trustlet. + + + + + The mailbox key. Must be 2 longs. + + + + + The collaboration ID. Must be 2 longs. + + + + + The VM ID. Must be 2 longs. + + + + + The TK sessio ID. Must be 4 longs. + + + + + Overridden ToString method. + + The object as a string. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a native path. + True to throw on error. + The trustlet configuration. + + + + Create a trustlet configuration from an image file. + + The path to the image file. Should be a win32 path. + The trustlet configuration. + + + + Constructor + + + + + Constructor + + The ID of the trustlet. + + + + Class to represent a registry transaction object + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a transaction object. + + The path to the object + The opened object + + + + Commit the transaction + + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Class to represent a transaction resource manager. + + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The object attributes + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + True to throw an exception on error. + The NT status code and object result. + + + + Create a new resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Creation options flags. + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + Optional description. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + Resource manager GUID. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Desired access for the handle + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + The root if path is relative. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + The path to the resource manager. + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Create a new volatile resource manager object. + + Optional transaction manager to assign the resource manager to. + The object result. + Thrown on error. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + True to throw an exception on error. + The NT status code and object result. + + + + Opens an existing resource manager object. + + The object attributes + Desired access for the handle + Transaction manager which contains the resource manager. + Resource manager GUID. + The object result. + Thrown on error. + + + + Recover the the transaction manager. + + True to throw on error. + The NT status code. + + + + Recover the the transaction manager. + + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + True to throw on error. + The NT status code. + + + + Set an IO completion port on the resource manager. + + The IO completion port. + Associated completion key. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + True to throw on error. + The transaction notification. + + + + Get a notification synchronously. + + Optional timeout for getting the notification. + The transaction notification. + + + + Get a notification synchronously waiting indefinetly. + + The transaction notification. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + True to throw on error. + The NT status code. + + + + Register protocol information. + + The ID of the protocol to register. + An opaque protocol buffer. + Optional create options. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + True to throw on error. + The NT status code. + + + + Complete propagation request. + + The cookie to identify the request. + An optional buffer to pass with the request. + + + + Fail propagation request. + + The cookie to identify the request. + Optional NT status code for the failure. + True to throw on error. + The NT status code. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The object attributes + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible enlistment objects owned by this resource manager. + + The access for the enlistment objects. + The list of all accessible enlistment objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + True to throw an exception on error. + The created enlistment and NT status code. + + + + Create an enlistment in this resource manager. + + Desired access for the handle + The transaction to enlist. + Optional create options. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Notification mask. + Enlistment key returned during notification. + The created enlistment. + + + + Create an enlistment in this resource manager. + + The transaction to enlist. + Enlistment key returned during notification. + The created enlistment. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the resource manager ID. + + + + + Get the description for the resource manager. + + + + + A structure to return the result of an NT system call with status. + This allows a function to return both a status code and a result + without having to resort to out parameters. + + The result type. + + + + The NT status code. + + + + + The result of the NT call. + + + + + Get the result object or throw an exception if status code is an error. + + The result NT result. + Thrown if status code is an error. + + + + Get the result object or a default value if an error occurred. + + The default value to return. + The result or the default if an error occurred. + + + + Get the result object or a default value if an error occurred. + + The result or the default if an error occurred. + + + + Is the result successful. + + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Map result to a different type. + + The different type to map to. + A function to map the result. + The mapped result. + + + + Cast result to a different type. + + The different type to cast to. + The mapped result. + + + + Forward the result and check for an exception. + + True to throw on error. + The forwarded result. + + + + Dispose result. + + + + + Create a result from an error. + + The error status code. + True to throw on error. + The result. + + + + Create a result. + + + Create a new result. + + + + Conversion operator from T to object. + + The result to convert. + + + + Compression format for RtlDecompressBuffer. + + + + + Class to represent a NT Section object + + + + + Create an Image section object + + The object attributes for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + Root directory for the object. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The object name to use for the image section. + The file to create the image section from + The opened section + Thrown on error. + + + + Create an Image section object + + The file to create the image section from + The opened section + Thrown on error. + + + + Create a data section from a file. + + The file to create from. + The created section object. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + The path to the section + The root if path is relative + The desired access + Optional size of the section + The section protection + The section attributes. The lower 5 bits can be used to specify the NUMA node. + Optional backing file + The opened section + Thrown on error. + + + + Create a section object + + Size of the section + The opened section + Thrown on error. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + True to throw an exception on error. + The NT status code and object result. + + + + Create a section object + + The object attributes + The desired access + Optional size of the section + The section protection + The section attributes + Optional backing file + Extended parameters for section create. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + True to throw an exception on error. + The NT status code and object result. + + + + Open a section object + + The object attributes for the section + The desired access for the sections + The opened section + + + + Open a section object + + The path to the section + Root object if the path is relative + The desired access for the sections + The opened section + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in the current process. + + The base address to unmap. + True to throw on error. + The NT status code. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + Flags for unmapping memory. + + + + Unmap a section in a specified process. + + The process to unmap the section. + The base address to unmap. + + + + Unmap a section in the current process. + + The base address to unmap. + + + + Map section Read/Write into a specific process + + The process to map into + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + The mapped section + + + + Map section Read/Write into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a specific process + + The process to map into + True to throw on error. + The mapped section + + + + Map section Read Only into a current process + + The mapped section + + + + Map section Read Only into a current process + + True to throw on error. + The mapped section + + + + Map section Read/Write into a current process + + The mapped section + + + + Map section Read/Write into a current process + + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + True to throw on error. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Number of zero bits. + Size of pages to commit. + Offset into the section. + Optional view size + Allocation type. + Section inheritance type. + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + The mapped section + + + + Map section into a specific process + + The process to map into + The protection of the mapping + Optional base address + Optional view size + True to throw on error. + The mapped section + + + + Map section into the current process + + The protection of the mapping + The mapped section + + + + Extend the section to a new size. + + The new size to extend to. + True to throw on error. + The new size. + Thrown on error. + + + + Extend the section to a new size. + + The new size to extend to. + The new size. + Thrown on error. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Get the size of the section + + + + + Get the attributes of the section + + + + + Get section image information. + + + + + Get original section base address. + + + + + Get relocation address. + + + + + Static class to access NT security manager routines. + + + + + Looks up the account name of a SID. + + The system name to lookup the SID on. + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The SID name. + Thrown if lookup fails. + + + + Looks up the account name of a SID. + + The SID to lookup + True to throw on error. + The name. + + + + Looks up the account name of a SID. + + The SID to lookup + The name, or null if the lookup failed + + + + Looks up a capability SID to see if it's already known. + + The capability SID to lookup + The name of the capability, null if not found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + True to throw on error. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The system name to lookup the SID on. + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup a SID from a username. + + The username, can be in the form domain\account. + The Security Identifier + Thrown if account cannot be found. + + + + Lookup the name of a process trust SID. + + The trust sid to lookup. + The name of the trust sid. null if not found. + Thrown if trust_sid is not a trust sid. + + + + Try and lookup the moniker associated with a package sid. + + The package sid. + Returns the moniker name. If not found returns null. + Thrown if SID is not a package sid. + + + + Lookup a device capability SID name if known. + + The SID to lookup. + Returns the device capability name. If not found returns null. + Thrown if SID is not a package sid. + + + + Convert a package SID to a capability. + + The package SID to convert. + The package SID as a capability. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert a security descriptor to SDDL string + + The security descriptor + Indicates what parts of the security descriptor to include + True to throw on errror. + The SDDL string + Thrown if cannot convert to a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + True to throw on error. + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL string to a binary security descriptor + + The SDDL string + The binary security descriptor + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + This function returns a list of results rather than a single entry. It should only be used + with object types. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The list of access check results. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type specific generic mapping (get from corresponding NtType entry). + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + The maximum allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access. + + The security descriptor + The access token. + The set of access rights to check against + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the maximum allowed access. + + The security descriptor + The access token. + The type used to determine generic access mapping.. + The allowed access mask as a unsigned integer. + Thrown if an error occurred in the access check. + + + + Get a security descriptor from a named object. + + The path to the resource (such as \BaseNamedObejct\ABC) + The type of resource, can be null to get the method to try and discover the correct type. + The named resource security descriptor. Returns null if can't open the resource. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access and + audit the result. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + True to throw on error. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Do an access check between a security descriptor and a token to determine the allowed access + and audit. This function returns a list of results rather than a single entry. It should only + be used with object types. + + The name of the subsystem to audit. + The handle ID to audit. Used when issuing a close audit. + The object type name. + The name of the object. + Indicates if this is an object creation operation. + Type of audit. + Flags for the audit operation. + The security descriptor + The access token. + The set of access rights to check against + An optional principal SID used to replace the SELF SID in a security descriptor. + The type specific generic mapping (get from corresponding NtType entry). + List of object types to check against. + The result of the access check. + Thrown if an error occurred in the access check. + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Get a SID for a specific mandatory integrity level. + + The mandatory integrity level. + The integrity SID + + + + Checks if a SID is an integrity level SID + + The SID to check + True if an integrity SID + + + + Get the integrity level from an integrity SID + + The integrity SID + The token integrity level. + + + + Gets the SID for a service name. + + The service name. + The service SID. + Thrown on error. + + + + Checks if a SID is a service SID. + + The sid to check. + True if a service sid. + + + + Checks if a SID is a logon session SID. + + The sid to check. + True if a logon session sid. + + + + Checks if a SID is a process trust SID. + + The sid to check. + True if a process trust sid. + + + + Checks if a SID is a domain SID. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a domain SID and is a member of the local machine domain. + + The SID to check. + True if a domain SID. + + + + Checks if a SID is a capability SID. + + The sid to check. + True if a capability sid. + + + + Checks if a SID is a capbility group SID. + + The sid to check. + True if a capability group sid. + + + + Get a capability sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability sid by name. + + The name of the capability. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + True to throw on error. + The capability SID. + + + + Get a capability group sid by name. + + The name of the capability. + The capability SID. + + + + Get the type of package sid. + + The sid to get type. + The package sid type, Unknown if invalid. + + + + Checks if a SID is a valid package SID. + + The sid to check. + True if a capability sid. + + + + Get the parent package SID for a child package SID. + + The child package SID. + The parent package SID. + Thrown if sid not a child package SID. + + + + Checks if a SID is a Scoped Policy ID SID. + + The SID to check. + True if a Scoped Policy ID SID. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + True to throw on error. + The conditional ACE string. + + + + Converts conditional ACE data to an SDDL string + + The conditional application data. + The conditional ACE string. + + + + Converts a condition in SDDL format to an ACE application data. + + The condition in SDDL format. + The condition in ACE application data format. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in SDDL format. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True to throw on error. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + Specify resource attributes to add to the check. + True if the conditional expression was a success. + + + + Evaluate a condition ACE expression. + + The Token to check against. + The conditional expression in binary format. + True if the conditional expression was a success. + + + + Get the cached signing level for a file. + + The handle to the file to query. + The cached signing level. + + + + Get the cached signing level for a file. + + The handle to the file to query. + True to throw on error. + The cached signing level. + + + + Get the cached singing level from the raw EA buffer. + + The EA buffer to read the cached signing level from. + The cached signing level. + Throw on error. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + + + + Set the cached signing level for a file. + + The handle to the file to set the cache on. + Flags to set for the cache. + The signing level to cache + A list of source file for the cache. + Optional directory path to look for catalog files. + True to throw on error. + + + + Compare two signing levels. + + The current level. + The signing level to compare against. + True if the current level is above or equal to the signing level. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + True to bypass the internal cache and get the current name. + The name for the SID. Returns the SDDL form if no other name is known. + + + + Get readable name for a SID, if known. This covers sources of names such as LSASS lookup, capability names and package names. + + The SID to lookup. + The name for the SID. Returns the SDDL form if no other name is known. + This function will cache name lookups, this means the name might not reflect what's currently in LSASS if it's been changed. + + + + Add a SID name to the local name cache. + + The SID to add. + The SID's domain name. + The name of the account. + The name user value. + + + + Remove a SID name from the local cache. + + The SID to remove. + + + + Clear the SID name cache. + + + + + Get a logon session SID from an ID. + + The logon session ID. + The new logon session SID. + + + + Get a new logon session SID. + + The new logon session SID. + + + + Get session id from logon session SID. + + The logon session SID. + The logon session ID. + + + + Get security descriptor as a byte array + + Handle to the object to query. + What parts of the security descriptor to retrieve + True to throw on error. + The NT status result and security descriptor as a buffer. + + + + Set the object's security descriptor + + Handle to the object to set. + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status result. + + + + Do a privilege check on a token. + + A handle to a token object. + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Get the access mask for querying a specific security information class. + + The information class. + The access mask for the information. + + + + Get the access mask for setting a specific security information class. + + The information class. + The access mask for the information. + + + + Get whether an ACE type is an allowed ACE type. + + The ACE type. + True if an allowed ACE type. + + + + Get whether an ACE type is a denied ACE type. + + The ACE type. + True if a denied ACE type. + + + + Get whether an ACE type is an object ACE type. + + The ACE type. + True if an object ACE type. + + + + Get whether an ACE type is an audit ACE type. + + The ACE type. + True if an audit ACE type. + + + + Get whether an ACE type is used int the SACL. + + The ACE type. + True if a system ACE type. + + + + Get whether an ACE type is a callback type. + + The ACE type. + True if a callback type. + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + Set to true to use SDK style names. + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The enumeration type for the string conversion + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + The string version of the access + + + + Convert an access rights type to a string. + + The access mask to convert + Set to true to use SDK style names. + The string version of the access + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an enumerable access rights to a string + + The access mask. + Enum type to convert to string. + Generic mapping for object type. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights. Will return Full Access if not a generic access and has all rights and None if no access. + + + + Convert an ACE type to an SDK type string. + + The ACE type. + The ACE type as an SDK type string. + + + + Convert the ACE flags to an SDK type string. + + The ACE type as an SDK type string. + + + + Convert the security descriptor control flags to an SDK type string. + + The security descriptor control as an SDK type string. + + + + Get a Process Trust Level SID. + + The Trust Type. + The Trust Level. + The Process Trust Level SID. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + True to throw on error. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object open. + + The subsystem name. + Handle ID. + The typename of the object. + The name of the object. + The security descriptor set for the object. + The client token used to open the object. + Desired access for the open. + Granted access from the open. + Privileges used to open the object. + True if the object was created. + Specify whether access was granted. + A value indicating whether an event need to be generated on close. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object close. + + The subsystem name. + Handle ID. + True indicates to generate on close. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + True to throw on error. + The NT status code. + + + + Generate audit event for an object deleted. + + The subsystem name. + Handle ID. + True indicates to generate on close. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used with an object. + + The subsystem name. + Handle ID. + The client token used. + Desired access for the object. + Privileges used to open the object. + Specify whether access was granted. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + True to throw on error. + The NT status code. + + + + Generate audit event for a privileges used by a client. + + The subsystem name. + The client token used. + The name of the service. + Privileges used in the operation. + Specify whether access was granted. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + Specify the token handle. If null will use the effective token. + The name of the capability to check. + True if the token has the capability. + + + + Get GenericMapping for standard access rights. + + + + + Security information class for security descriptors. + + + + + ACE Flags. Note that the value isn't completely the same as + the real flags. + + + + + Class to represent a NT Semaphore object. + + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + True to throw an exception on error. + The NT status code and object result. + + + + Create a semaphore object. + + The object attributes for the object + The desired access for the object + Initial count for semaphore + Maximum count for semaphore + The opened object + + + + Create a semaphore object. + + The path to the object + The root if path is relative + Initial count for semaphore + /// Maximum count for semaphore + The opened object + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a semaphore object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a semaphore object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Release the semaphore + + The release count + The previous count + + + + Release the semaphore + + The release count + True to throw an exception on error. + The previous count + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Current count of the semaphore. + + + + + Maximum count of the semaphore. + + + + + Semaphore access rights. + + + + + Class to represent a Session object + + + + + Open a session object. + + The object attributes + Desired access for the object + True to throw on error. + The open result. + + + + Open a session object. + + The object attributes + Desired access for the object + The open result. + + + + Open a session object. + + Name of the object + Optional root directory for lookup + Desired access for the object + The open result. + + + + NT status values + + + + + Class representing a NT SymbolicLink object + + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + True to throw an exception on error. + The NT status code and object result. + + + + Create a symbolic link object. + + The object attributes for the object + The desired access for the object + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The root if path is relative + The target path + The opened object + + + + Create a symbolic link object. + + The path to the object + The target path + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The desired access for the object + True to throw on error. + The opened object + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + True to throw an exception on error. + The NT status code and object result. + + + + Open a symbolic link object. + + The object attributes for the object + The desired access for the object + The opened object + + + + Open a symbolic link object. + + The path to the object + The root if path is relative + The opened object + + + + Open a symbolic link object. + + The path to the object + The opened object + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + True to throw on error. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Resolve a symlink name to a final target. + + The name of the symlink to resolve. + The final target. + This function will return the last name which returns STATUS_OBJECT_TYPE_MISMATCH. Anything else is an error. + + + + Get the symbolic link target. + + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set access mask filter. + + The access mask to set. + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set access mask filter. + + The access mask to set. + Needs SeTcbPrivilege. + + + + Set as a global link. + + True to throw on error. + The NT status code. + Needs SeTcbPrivilege. + + + + Set as a global link. + + Needs SeTcbPrivilege. + + + + Get the symbolic link target path. + + True to throw on error. + The target path. + + + + Class to access some NT system information + + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + True to force all file names to be queried. Otherwise limits to only DISK files. + The list of handles + The purpose of force_file_name to disable querying a file handle for its path unless it's on a FS volume. + This is because some non-file types can be in a locked state which causes the filename lookup to hang. + + + + Get a list of handles + + A process ID to filter on. If -1 will get all handles + True to allow the handles returned to query for certain properties + The list of handles + + + + Get a list of all handles + + The list of handles + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + True to throw on error. + The list of thread information. + + + + Get a list of threads for a specific process. + + The process ID to list. + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get a list of all threads. + + The list of thread information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get all process information for the system. + + The list of process information. + + + + Get all process information for the system. + + True to throw on error. + The list of process information. + + + + Get list of page filenames. + + The list of page file names. + + + + Create a kernel dump for current system. + + The path to the output file. + Flags + Page flags + + + + Query all system environment value names. + + A list of names of environment values + + + + Query all system environment value names and values. + + A list of names of environment values + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + True to throw on error. + The system environment value. + + + + Query a single system environment value. + + The name of the value. + The associated vendor guid + The system environment value. + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Set a system environment variable. + + The name of the variable. + The vendor GUID + The value to set + Attributes of the value + + + + Allocate a LUID. + + The allocated LUID. + + + + Allocate a LUID. + + The allocated LUID. + + + + Get the addresses of a list of objects from the handle table and initialize the Address property. + + The list of objects to initialize. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + + + + Get the address of an object in kernel memory from the handle table and initialize the Address property. + + The object. + Any remaining objects. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + Pointer to a memory buffer containing the image. + The size of the in-memory buffer. + True if the file is trusted. + + + + Query whether a file is trusted for dynamic code. + + Pointer to a memory buffer containing the image. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Query whether a file is trusted for dynamic code. + + The handle to a file to query. + The status code from the operation. Returns STATUS_SUCCESS is valid. + + + + Set a file is trusted for dynamic code. + + The handle to a file to set. + The status code from the operation. + + + + Get list of root silos. + + The list of root silos. + + + + Set the ELAM certificate information. + + The signed file containing an ELAM certificate resource. + The NT status code. + + + + Query code integrity certificate information. + + The image file. + The type of check to make. + The NT status code. + + + + Query the image path from a process ID. + + The ID of the process. + True to throw on error. + The image path. + This method can be called without any permissions on the process. + + + + Query the image path from a process ID. + + The ID of the process. + The image path. + This method can be called without any permissions on the process. + + + + Get flags for isolated user mode. + + True to throw on error. + The ISO flags. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a fixed structure from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + True to throw on error. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + A buffer to initialize the initial query. Can be null. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object and return as bytes. + + The information class to query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + A default value for the query. + The result of the query. + Thrown on error. + + + + Query a variable buffer from the object. + + The type of structure to return. + The information class to query. + The result of the query. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. If you specify a SafeBuffer then it'll be passed directly. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object. + + The type of structure to set. + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer. + + The information class to set. + The value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a value to the object from a buffer.. + + The information class to set. + The value to set. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + True to throw on error. + The NT status code of the set. + Thrown on error. + + + + Set a raw value to the object. + + The information class to set. + The raw value to set. + The NT status code of the set. + Thrown on error. + + + + Draw text on the background. + + The text to draw. + True to throw on error. + The NT status code. + + + + Draw text on the background. + + The text to draw. + + + + Display a string. + + The text to display. + True to throw on error. + The NT status code. + + + + Display a string. + + The text to display. + + + + Load a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Unload a driver. + + The name of the driver service. + True to throw on error. + The NT status code. + + + + Get kernel modules. + + True to throw on error. + The list of kernel modules. + + + + Get kernel modules. + + The list of kernel modules. + + + + Get whether the kernel debugger is enabled. + + + + + Get whether the kernel debugger is not present. + + + + + Get current code integrity option settings. + + + + + Get code integrity policy. + + + + + Get code integrity unlock information. + + + + + Get all code integrity policies. + + + + + Get whether secure boot is enabled. + + + + + Get whether system supports secure boot. + + + + + Extract the secure boot policy. + + + + + Get system timer resolution. + + + + + Get system page size. + + + + + Get number of physical pages. + + + + + Get lowest page number. + + + + + Get highest page number. + + + + + Get allocation granularity. + + + + + Get minimum user mode address. + + + + + Get maximum user mode address. + + + + + Get active processor affinity mask. + + + + + Get number of processors. + + + + + Get system device information. + + + + + Get the system processor information. + + + + + Get the system emulation processor information. + + + + + Get the Isolated User Mode flags. + + + + + Get the NT product type. + + + + + + Get OS version info, + + + + + Get whether this is a multi-session SKU. + + True if multi-session. + + + + Get whether this there are multiple users in a session. + + True if multi-session. + + + + Query the system elevation flags. + + + + + Class to represent a NT Thread object + + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + The object attributes for the thread object. + Desired access for the handle. + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Zero bits for the stack address. + Size of the committed stack. + Maximum reserved stack size. + Optional attribute list. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + True to throw on error + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Create a new thread in a process. + + Process to create the thread in. + Address of the start routine. + Argument to pass to the thread. + Creation flags. + Size of the committed stack. + The created thread object. + This creates a native thread, not a Win32 thread. This might cause unexpected things to fail as they're not initialized. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Open a thread + + The process ID containing the thread. + The thread ID to open + The desired access for the handle + The NT status code and object result. + + + + Open a thread + + The thread ID to open + The desired access for the handle + The opened object + + + + Gets all accessible threads on the system. + + The desired access for each thread. + Get the thread list from system information. + The list of accessible threads. + + + + Gets all accessible threads on the system. + + The desired access for each thread. + The list of accessible threads. + + + + Get first thread for process. + + The process handle to get the threads. + The desired access for the thread. + The first thread, or null if no more available. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True to throw on error. + STATUS_ALERTED if the thread was alerted, other success or error code. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread + + Set if the thread should be alertable + The delay, negative values indicate relative times. + True if the thread was alerted before the delay expired. + + + + Sleep the current thread for a specified number of milliseconds. + + The delay in milliseconds. + True if the thread was alerted before the delay expired. + + + + Open an actual handle to the current thread rather than the pseudo one used for Current + + The thread object + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The ticket to set. + True to throw on error. + The status code from the set. + + + + Set the work on behalf ticket. + + The ticket to set. + + + + Set the work on behalf ticket. + + The thread ID. + True to throw on error. + The NT status. + + + + Set the work on behalf ticket. + + The thread ID. + + + + Test alert status for the current thread. + + True to throw on error. + The NT status code. + + + + Test alert status for the current thread. + + + + + Attach a silo container to the current thread. + + The silo to attach. + True to throw on error. + The thread impersonation context. + + + + Attach a silo container to the current thread. + + The silo to attach. + The thread impersonation context. + + + + Detach container from the current thread. + + True to throw on error. + The NT status code. + + + + Detach container from the current thread. + + + + + Get XOR key for the work-on-behalf ticket. + + True to throw on error. + The XOR key. + + + + Get the current thread. + + 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. + + + + + Get or set the work on behalf ticket for the current thread. + + + + + Get the work on behalf ticket xor key. + + + + + Reopen object with different access rights. + + The desired access. + Additional attributes for open. + True to throw on error. + The reopened object. + + + + Resume the thread. + + True to throw on error. + The suspend count + + + + Resume the thread. + + The suspend count + + + + Suspend the thread. + + True to throw on error. + The suspend count + + + + Suspend the thread + + The suspend count + + + + Terminate the thread + + True to throw on error. + The thread status exit code + The NT status code. + + + + Terminate the thread + + The thread status exit code + + + + Wake the thread from an alertable state. + + True to throw on error. + The NT status code. + + + + Wake the thread from an alertable state. + + + + + Wake the thread from an alertable state and resume the thread. + + True to throw on error. + The previous suspend count for the thread. + + + + Wake the thread from an alertable state and resume the thread. + + The previous suspend count for the thread. + + + + Hide the thread from debug events. + + True to throw on error. + The NT status code. + + + + Hide the thread from debug events. + + + + + The set the thread's impersonation token + + The impersonation token to set + True to throw on error. + The NT status code. + + + + The set the thread's impersonation token + + The impersonation token to set + + + + Impersonate the anonymous token + + True to throw on error. + The impersonation context. Dispose to revert to self + + + + Impersonate the anonymous token + + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + True to throw on error. + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate a token + + The token to impersonate. + The impersonation context. Dispose to revert to self + + + + Impersonate another thread. + + The thread to impersonate. + The impersonation security quality of service. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context. + + The thread to impersonate. + The impersonation level for the token. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + True to throw on error. + The imperonsation context. Dispose to revert to self. + + + + Impersonate another thread's security context at impersonation level. + + The thread to impersonate. + The imperonsation context. Dispose to revert to self. + + + + Open the thread's token + + The token, null if no token available + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a special user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + + + + Queue a user APC to the thread. + + The APC callback pointer. + Context parameter. + System argument 1. + System argument 2. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + True to throw on error. + The NT status code. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Queue a user APC to the thread. + + The APC callback delegate. + Context parameter. + System argument 1. + System argument 2. + This is only for APCs in the current process. You also must ensure the delegate is + valid at all times as this method doesn't take a reference to the delegate to prevent it being + garbage collected. + + + + Get next thread for process relative to current thread. + + The process handle to get the threads. + The desired access for the thread. + The next thread, or null if no more available. + + + + Get the thread context. + + Flags for context parts to get. + True to throw on error. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Get the thread context. + + Flags for context parts to get. + An instance of an IContext object. Needs to be cast to correct type to access. + + + + Set the thread's context. + + The thread context to set. + True to throw on error. + The NT status code. + + + + Set the thread's context. + + The thread context to set. + + + + Get current waiting server information. + + True to throw on error. + The thread ALPC server information. + + + + Get current waiting server information. + + The thread ALPC server information. + + + + Get the process ID associated with the thread. + + True to throw on error. + The process ID. + + + + Get the thread ID. + + True to throw on error. + The thread ID. + + + + Cancel all synchronous IO for this thread. + + True to throw on error. + The NT status. + + + + Get a partial TEB for the thread. + + The partial TEB. + + + + Get the work on behalf ticket for a thread. + + True to throw on error. + The work on behalf ticket. + + + + Get the work on behalf ticket for a thread. + + The work on behalf ticket. + + + + Get the effective container ID for the thread. + + True to throw on error. + The effective container ID. + + + + Get priority boost disable value. + + True to throw on error. + True if priority base + + + + Set priority boost disable value. + + True to disable priority boost. + True to throw on error. + The NT status code. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get thread ID + + + + + Get process ID + + + + + Get name of process. + + + + + Get or set the thread's current priority + + + + + Get or set the thread's base priority + + + + + Get or set the thread's affinity mask. + + + + + Get the thread's TEB base address. + + + + + Get or set whether thread is allowed to create dynamic code. + + Set can only be done on the current thread. + + + + Get whether thread is impersonating another token. + + Note that this tries to open the thread's token and return true if it could open. A return of false + might just indicate that the caller doesn't have permission to open the token, not that it's not impersonating. + + + + Get name of the thread. + + + + + Get or set a thread's description. + + + + + Get the Win32 start address for the thread. + + + + + Get the current Instruction Pointer for the thread. + + + + + Get last system call on the thread. + + + + + Get the thread's suspend count. + + + + + Get whether the thread has pending IO. + + + + + Get the creation time of the thread. + + + + + Get the exit time of the thread (0 if not exited) + + + + + Get the time spent in the kernel. + + + + + Get the time spent in user mode. + + + + + Get thread information. + + + + + Get thread exit status. + + + + + Get thread exit status. + + + + + Get the effective container ID. + + Should be called on the current thread psuedo handle. + + + + Get or set priority boost disabled. + + + + + Delegate for APC callbacks. + + Context parameter. + System argument 1. + System argument 2. + + + + Class to represent an NT Timer object + + + + + Create a timer object + + The path to the event + The root object for relative path names + The type of the timer. + The timer object + + + + Create a timer object + + The timer object attributes + The type of the event + The desired access for the timer + The timer object + + + + Create a timer object + + The timer object attributes + The type of the timer + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Create a timer object + + The path to the timer + The type of the timer + The timer object + + + + Create a timer object + + The type of the timer + The timer object + + + + Create a timer object + + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + The timer object + + + + Open a timer object + + The path to the timer + The root object for relative path names + The desired access for the timer + True to throw on error. + The timer object + + + + Open a timer object + + The timer object attributes + The desired access for the timer + The timer object. + + + + Open a timer object + + The event object attributes + The desired access for the timer + True to throw an exception on error. + The NT status code and object result. + + + + Open a timer object + + The path to the timer + The root object for relative path names + The timer object + + + + Open a timer object + + The path to the timer + The timer object + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + True throw on error. + The NT result and previous state. + + + + Set timer state. + + The due time for the timer. + Optional APC routine. + Optional APC context pointer. + True to resume. + Period time. + The previous state. + + + + Set timer state. + + The due time for the timer. + The previous state. + + + + Set timer state in milliseconds. + + The due time for the timer in milliseconds. + The previous state. + + + + Cancel the timer. + + True to throw on error. + The previous state. + + + + Cancel the timer. + + The previous state. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Remaining time for the timer. + + + + + Signal state of the timer. + + + + + Delegate for Timer APC callbacks. + + Context parameter. + Low value of timer. + High value of timer. + + + + Enumeration for querying group list using QueryGroups. + + + + + The default group list. + + + + + The restrict group list. + + + + + The capability group list. + + + + + The device group list. + + + + + The restricted device list. + + + + + Specify type of security attributes to query. + + + + + Local security attributes. + + + + + User security attributes. + + + + + Restricted user security attributes. + + + + + Device security attributes. + + + + + Restricted device security attributes. + + + + + Singleton device security attributes. + + + + + Data from the TSA://ProcUnique security attribute. + + + + + The index entry for the process. + + + + + The value for the entry. + + + + + Class representing a Token object + + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The object attributes for the token. + The security descriptor for the token. + The new token + Thrown on error + + + + Duplicate token as specific type. + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + If true then throw an exception on error. + The new token + Thrown on error + + + + Duplicate token as specific type + + The token type + The impersonation level us type is Impersonation + Open with the desired access. + The new token + Thrown on error + + + + Duplicate the token as the same token type. + + The new token. + Thrown on error + + + + Duplicate the token as the same token type. + + True to throw on error. + The new token. + Thrown on error + + + + Duplicate token as an impersonation token with a specific level + + The token impersonation level + The new token + Thrown on error + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The name of the privilege (e.g. SeDebugPrivilege) + True to enable the privilege, false to disable + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The luid of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True to throw on error. + True if successfully changed the state of the privilege + + + + Set a privilege state + + The value of the privilege + The privilege attributes to set. + True if successfully changed the state of the privilege + + + + Remove a privilege. + + The value of the privilege to remove. + True if successfully removed the privilege. + + + + Remove a privilege. + + The LUID of the privilege to remove. + True if successfully removed the privilege. + + + + Create a LowBox token from the current token. + + The package SID + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + The created LowBox token. + Thrown on error. + + + + Create a LowBox token from the current token. + + The package SID + List of handles to capture with the token + List of capability sids to add. + Desired token access. + The created LowBox token. + Thrown on error. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove groups/privileges and add restricted SIDs + + Filter token flags + List of SIDs to disable + List of privileges to delete + List of restricted SIDs to add + The new token. + + + + Filter a token to remove privileges and groups. + + Filter token flags + The new filtered token. + + + + Set the state of a group + + The group SID to set + The attributes to set + + + + Set the state of a group + + The group SID to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + True to throw on error. + The NT status code. + + + + Set the state of a group + + The groups to set + The attributes to set + + + + Reset all groups to their default state. + + True to throw on error. + The NT status code. + + + + Reset all groups to their default state. + + + + + Set the session ID of a token + + The session ID + + + + Set a token's default DACL + + The DACL to set. + + + + Set the origin logon session ID. + + The origin logon session ID. + + + + Set virtualization enabled + + True to enable virtualization + True to throw on error. + + + + Set virtualization enabled + + True to enable virtualization + + + + Set UI Access flag. + + True to enable UI Access. + + + + Get the linked token + + True to throw on error. + The linked token + + + + Get the linked token + + The linked token + + + + Set the linked token. + + The token to set. + Requires SeCreateTokenPrivilege. + + + + Impersonate the token. + + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Impersonate the token. + + Impersonation level for token. + An impersonation context, dispose to revert to process token + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Thrown on error. + + + + Run a function under impersonation. + + The return type. + The callback to run. + Impersonation level for token. + The return value from the callback. + Thrown on error. + + + + Run an action under impersonation. + + The callback to run. + Impersonation level for token. + Thrown on error. + + + + Get a security attribute by name. + + Specify the type of security attributes to query. + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The expected type of the security attribute. If None return ignore type check. + The security attribute or null if not found. + + + + Get a security attribute by name. + + The name of the security attribute, such as WIN://PKG + The security attribute or null if not found. + + + + Get token's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token's security attributes. + + Throw on error. + The security attributes. + + + + Get token's security attributes + + Specify the type of security attributes to query. + The security attributes. + + + + Get token's security attributes + + The security attributes. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + Throw on error. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Set security attributes on the token. + + The list of attributes. + The operation to perform on the attribute. + The array of attributes aand operations must be the same size. You need SeTcbPrivilege to call this API. + + + + Add security attributes to the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Add security attributes to the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Replace all security attributes in the token. + + The list of attributes. + Throw on error. + You need SeTcbPrivilege to call this API. + The NT Status code. + + + + Replace security attributes in the token. + + The list of attributes. + You need SeTcbPrivilege to call this API. + + + + Remove security attributes by name. + + The attribute names to remove. + Throw on error. + The NT Status code. + + + + Remove security attributes by name. + + The attribute names to remove. + + + + Set the token's integrity level. + + The level to set. + + + + Set the token's integrity level. + + The level to set. + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + Thrown if can't query privileges + + + + Get the state of a privilege. + + The privilege to get the state of. + The privilege, or null if it can't be found + True to throw on error + Thrown if can't query privileges + + + + Compare two tokens. + + The other token to compare. + True if tokens are equal. + + + + Get the App Policy for this token. + + The type of app policy. + The policy value. + + + + Disable No Child process policy on the token. + + Needs SeTcbPrivilege. + + + + Query a list of groups from the token. + + The type of groups to query. + True to throw on error. + The list of groups. + + + + Query a list of groups from the token. + + The type of groups to query. + The list of groups. + + + + Get the user from the token. + + True to throw on error. + The user group information. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + True to throw on error. + The privilege check result. + + + + Do a privilege check on a token. + + The list of privileges to check. + True to require all necessary privileges. + The privilege check result. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Do a privilege check for a single privilege. + + The privilege to check. + True if the privilege is enabled. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform a capability check for a token. + + The name of the capability to check. + True to throw on error. + True if the token has the capability. + + + + Perform a capability check for a token. + + The name of the capability to check. + True if the token has the capability. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the logon SID for the token. + + True to throw on error. + The logon SID. + + + + Get token user + + + + + Get token groups + + + + + Get list of enabled groups. + + + + + Get list of deny only groups. + + + + + Get count of groups in this token. + + + + + Get the authentication ID for the token + + + + + Get the token's type + + + + + Get the token's expiration time. + + + + + Get the Token's Id + + + + + Get the Token's modified Id. + + + + + Get/set the token's owner. + + + + + Get/set the token's primary group + + + + + Get/set the token's default DACL + + + + + Get the token's source + + + + + Get token's restricted sids + + + + + Get count of restricted sids + + + + + Get token's impersonation level + + + + + Get/set token's session ID + + + + + Get whether token has sandbox inert flag set. + + + + + Get/set token's origin + + + + + Get token's elevation type + + + + + Get whether token is elevated + + + + + Get whether token has restrictions + + + + + Get/set token UI access flag + + + + + Get or set whether virtualization is allowed + + + + + Get/set whether virtualization is enabled + + + + + Get whether token is restricted + + + + + Get whether token is write restricted. + + + + + Get whether token is filtered. + + + + + Get whether token is not low. + + + + + Token access flags. + + + + + Get whether token can be used for new child processes. + + + + + Get token capabilities. + + + + + Get or set the token mandatory policy + + + + + Get token logon sid + + + + + Get token's integrity level sid + + + + + Get token's App Container number. + + + + + Get or set token's integrity level. + + + + + Get token's security attributes + + + + + Get token's device claims. + + + + + Get token's user claims. + + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get token's restricted user claims. + + Unsupported, at least on Windows 10. + + + + Get whether a token is an AppContainer token + + + + + Get whether the token is configured for low privilege. + + + + + Get token's AppContainer sid + + + + + Get token's AppContainer package name (if available). + Returns an empty string if not an AppContainer. + + + + + Get token's device groups + + + + + Get token's restricted device groups. + + + + + Get list of privileges for token + + The list of privileges + Thrown if can't query privileges + + + + Get full path to token + + + + + Get the token's trust level. Will be null if no trust level present. + + + + + Returns true if this is a pseudo token. + + + + + Get whether this token is a sandboxed token. + + + + + Query the token's full package name. + + + + + Query the token's appid. + + + + + Get the list of policies for this App. + + + + + Get the list of policies for this App in a table. + + + + + Get the BaseNamedObjects isolation prefix if enabled. + + + + + Get the token's package identity. + + + + + Get or set the token audit policy. + + Needs SeSecurityPrivilege to query and SeTcbPrivilege to set. + + + + Get or set if token is in a private namespace. + + + + + Get if the token is restricted. + + + + + Get the TSA://ProcUnique attribute. + + + + + Enable debug privilege for the current process token. + + True if set the debug privilege + + + + Enable a privilege of the effective token. + + The privilege to enable. + True if set the privilege. + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + Attribute flags for the handle. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + If true then throw an exception on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The process to open the token for + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of the current process + + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + True to duplicate the token before returning + The desired access for the token + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the process token of another process + + The id of the process to open the token for + The opened token + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + The desired access for the token + If true then throw an exception on error. + The opened token result + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning. + The desired access for the token + True to throw on error. + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The ID of the thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The desired access for the token + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + Open the token as the current identify rather than the impersonated one + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the thread token + + The thread to open the token for + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + True to duplicate the token before returning + The opened token, if no token return null + Thrown if cannot open token + + + + Open the current thread token + + The opened token, if no token return null + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + Desired access for token. + Open token as self. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + True to throw on error. + The opened token + Thrown if cannot open token + + + + Open the effective token, thread if available or process + + The thread to open the token for + True to duplicate the token before returning + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + The opened token + Thrown if cannot open token + + + + Open the current effective token, thread if available or process + + True to throw on error. + The opened token + Thrown if cannot open token + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + Optional device attributes. + Optional device groups. + Optional mandatory policy. + Optional user attributes. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + True to throw on error. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The desired access for the token. + Object attributes, used to pass SecurityDescriptor or SQOS for impersonation token. + The type of token. + The authentication ID for the token. + The expiration time for the token. + The user for the token. + The groups for the token. + The privileges for the token. + The owner of the token. + The primary group for the token. + The default dacl for the token. + The source for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The groups for the token. + The privileges for the token. + The token object. + + + + Create a token. Needs SeCreateTokenPrivilege. + + The user for the token. + The token object. + + + + Impersonate another process' token + + The impersonation level + Process ID of the other process + An impersonation context, dispose to revert to process token + + + + Get the current user. + + True to throw on error. + The current user. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True to throw on error. + True if the privilege is enabled. + + + + Do a single privilege check on the effective token. + + The privilege to check. + True if the privilege is enabled. + + + + Get the current user. + + + + + Get authentication ID for LOCAL SYSTEM + + + + + Get authentication ID for LOCAL SERVICE + + + + + Get authentication ID for NETWORK SERVICE + + + + + Get authentication ID for ANONYMOUS + + + + + Get a pseudo handle to the primary token. + + Only useful for querying information. + + + + Get a pseudo handle to the impersonation token. + + Only useful for querying information. + + + + Get a pseudo handle to the effective token. + + Only useful for querying information. + + + + Static methods to interact with the ETW subsystem. + + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + True to throw on error. + The output length. + + + + Issue a trace control request. + + The trace control function code. + The optional input buffer. + The optional output buffer. + The output length. + + + + Access rights for Trace + + + + + The security trace provider GUID. + + + + + The default security GUID. + + + + + Class to represent a kernel transaction. + + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + True to throw an exception on error. + The NT status code and object result. + + + + Create a transaction + + The object attributes + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + Transaction creation options. + Optional description of the transaction. + Isolation flags. + Isolation level. + Optional transaction timeout. + Optional transaction manager. + Optional UOW. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + True to throw an exception on error. + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + Desired access for the handle + The opened transaction + + + + Create a transaction + + The path of the transaction + The root if path is relative + The opened transaction + + + + Create a transaction + + The path of the transaction + The opened transaction + + + + Create a transaction + + The opened transaction + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + True to throw an exception on error. + The NT status code and object result. + + + + Open a transaction object. + + The object attributes for the object + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + The desired access for the object + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + Optional transaction manager. + UOW Guid. + The object result. + + + + Open a transaction object. + + UOW Guid. + The object result. + + + + Get a list of all accessible transaction objects. + + The object attributes for the object + Optional transaction manager. + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects. + + The list of all accessible transaction objects. + + + + Get the current thread's transaction. + + + + + Commit the transaction + + Wait for transaction to commit. + True to throw an exception on error. + The NT status code. + + + + Commit the transaction + + Wait for transaction to commit. + + + + Commit the transaction + + + + + Rollback the transaction + + Wait for transaction to rollback. + True to throw an exception on error. + The NT status code. + + + + Rollback the transaction + + Wait for transaction to rollback. + + + + Rollback the transaction + + + + + Enable the transaction for anything in the current thread context. + + The transaction context. This should be disposed to disable the transaction. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get the ID of the transaction. + + + + + Get the Unit of Work ID of the transaction. Same as transaction ID. + + + + + Get the state of the transaction. + + + + + Get the outcome of the transaction. + + + + + Get or set the transaction description. + + + + + Get or set the transaction isolation level. + + + + + Get or set the transaction isolation flags. + + + + + Get or set transaction timeout. + + + + + Query list of enlistments for this transaction. + + + + + Query the superior enlistment for this transaction. + + + + + Class to represent a kernel transaction manager. + + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + True to throw an exception on error. + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The NT status code and object result. + + + + Create a new transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + Commit strength, set to 0. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + True to throw an exception on error. + The object result. + + + + Create a new transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The CLFS log file to create if not volatile. + Creation options flags. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Create a new volatile transaction manager object. + + The path to the transaction manager. + The object result. + + + + Create a new volatile transaction manager object. + + The object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + The CLFS log file to create if not volatile. + Identity of the transaction manager. + Open options flags. + True to throw an exception on error. + The NT status code and object result. + + + + Open a existing transaction manager object. + + The object attributes + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + True to throw an exception on error. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + Identity of the transaction manager. + The CLFS log file to create if not volatile. + Open options flags. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + Desired access for the handle + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The root if path is relative. + The object result. + + + + Open an existing transaction manager object. + + The path to the transaction manager. + The object result. + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + The path to the transaction log file. + The existing transaction manager identity. + True to throw an exception on error. + The NT status code + + + + Get a list of all accessible transaction manager objects. + + Object attributes for opened handle. + The access for the transaction manager objects. + Open options. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The access for the transaction manager objects. + The list of all accessible transaction manager objects. + + + + Get a list of all accessible transaction manager objects. + + The list of all accessible transaction manager objects. + + + + Get the Transaction Manager identity. + + + + + Get the Transaction Manager virtual clock. + + + + + Get the Transaction Manager log identity. + + + + + Get the Transaction Manager log path. + + + + + Get Transaction Manager last recovered Log Sequence Number. + + + + + Get whether the transaction manager is volatile. + + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + True to throw an exception on error. + The NT status code + + + + Rename transaction manager object. The new identity can be queried with the Identity property on the object. + + + + + Recover the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Recover the transaction manager. + + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + True to throw an exception on error. + The NT status code + + + + Rollforward the transaction manager. + + Optional virtual block value to rollforward to. + + + + Rollforward the transaction manager. + + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + True to throw on error. + The resource manager and NT status. + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + Creation options. + The resource manager . + + + + Create a resource manager for this transaction manager. + + The resource manager GUID to assign. + The resource manager. + + + + Create a volatile resource manager for this transaction manager with a auto-generated GUID. + + The resource manager. + + + + Method to query information for this object type. + + The information class. + The buffer to return data in. + Return length from the query. + The NT status code for the query. + + + + Method to set information for this object type. + + The information class. + The buffer to set data from. + The NT status code for the set. + + + + Query the information class as an object. + + The information class. + True to throw on error. + The information class as an object. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The access for the transaction objects. + The list of all accessible transaction objects. + + + + Get a list of all accessible transaction objects owned by this transaction manager. + + The list of all accessible transaction objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + Object attributes for opened handle. + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The access for the resource manager objects. + The list of all accessible resource manager objects. + + + + Get a list of all accessible resource manager objects owned by this transaction manager. + + The list of all accessible resource manager objects. + + + + General utilities for the kernel transaction manager. + + + + + Enumerate transaction objects of a specific type from a root handle. + + The root handle to enumearate from. + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Enumerate all transaction objects of a specific type. + + The type of object to query. + The list of enumerated transaction object GUIDs. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + Throw exception on error. + The NT status code. + + + + Freeze all transactions. Needs SeRestorePrivilege. + + The freeze wait timeout. + The thaw wait timeout. + + + + Thaw transactions. Needs SeRestorePrivilege. + + Throw exception on error. + The NT status code. + + + + Thaw transactions. Needs SeRestorePrivilege. + + The NT status code. + + + + Class representing an NT object type + + + + + The name of the type + + + + + The mapping from generic to specific object rights + + + + + The valid access mask + + + + + True if the object needs security even if unnamed + + + + + Total number of objects (when originally retrieved) + + + + + Total number of handles (when originally retrieved) + + + + + Total paged pool usage (when originally retrieved) + + + + + Total non-paged pool usage (when originally retrieved) + + + + + Total name pool usage (when originally retrieved) + + + + + Total handle table usage (when originally retrieved) + + + + + Maximum number of objects (when originally retrieved) + + + + + Maximum number of handles (when originally retrieved) + + + + + Maximum paged pool usage (when originally retrieved) + + + + + Maximum non-paged pool usage (when originally retrieved) + + + + + Maximum name pool usage (when originally retrieved) + + + + + Maximum handle table usage (when originally retrieved) + + + + + The attributes flags which are invalid + + + + + Indicates whether handle count is mainted + + + + + Indicates the type list maintained + + + + + Indicates the type of pool used in allocations + + + + + Current paged pool usage + + + + + Current non-pages pool usage + + + + + Type Index + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Generic Read Access rights + + + + + Get the maximum access mask for the type's default mandatory access policy. + + + + + Get implemented object type for this NT type. + + + + + Get the access rights enumerated type for this NT type. + + + + + Get the access rights enumerated type for this NT type if it's a container. + + There's only one known type at the moment which uses this, File. + + + + Can this type of open be opened by name + + + + + Get the valid access rights for this Type. + + + + + Get the valid read access rights for this Type. + + + + + Get the valid write access rights for this Type. + + + + + Get the valid execute access rights for this Type. + + + + + Get the valid all access rights for this Type. + + + + + Get the valid mandatory access rights for this Type. + + + + + Get defined query information classes for a type. + + + + + Get defined set information classes for a type. + + + + + Open this NT type by name (if CanOpen is true) + + The object attributes to open. + Desired access when opening. + True to throw an exception on error. + The NT status code and object result. + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + Desired access when opening. + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The root object for opening, if name is relative + The created object. + Thrown on error + + + + Open this NT type by name (if CanOpen is true) + + The name of the object to open. + The created object. + Thrown on error + + + + Get object from an existing handle. + + The existing handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + True to own the handle. + The new object. + + + + Get object from an existing handle. + + The existing handle. + The call doesn't own the handle. The returned object can't be used to close the handle. + The new object. + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + Set to true to use SDK style names. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + True to use the container access type. + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + True to try and convert to generic rights where possible. + The string format of the access rights + + + + Convert an enumerable access rights to a string + + The granted access mask. + The string format of the access rights + + + + Checks if an access mask represents a read permission on this type + + The access mask to check + True if it has read permissions + + + + Checks if an access mask represents a write permission on this type + + The access mask to check + True if it has write permissions + + + + Checks if an access mask represents a execute permission on this type + + The access mask to check + True if it has execute permissions + + + + Checks if an access mask represents a full permission on this type + + The access mask to check + True if it has full permissions + + + + Map generic access rights to specific access rights for this type + + The access mask to map + The mapped access mask + + + + Unmap specific access rights to generic access rights for this type + + The access mask to unmap + The unmapped access mask + + + + Checks if an access mask is valid for access of this object type. + + The access mask to check + True if it valid access + + + + Get the maximum access mask for the type's default mandatory access policy. + + The allowed access mask for the type with the default policy. + + + + Overridden ToString method. + + Returns the type as a string. + + + + Create an NtType object by name. + + The name of the NT type. + This will always return a cached type. + Invalid NT type name. + + + + Get a type object by index + + The index + The object type, null if not found + + + + Get a type object by index + + The index, must be >= 0. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + True to get a cached type, false to return a live types. + The object type, null if not found + + + + Get a type object by name + + The name of the type + True to create a fake type if needed. + The object type, null if not found + + + + Get a type object by name + + The name of the type + The object type, null if not found + + + + Get a type object by a kernel handle. + + The kernel handle. + True to create a fake type if needed. + The object type, null if not found + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + True to get a cached type, false to return a live types. + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get an NT type based on the implemented .NET type. + + A type derived from NtObject + The NtType represented by this .NET type. Note if a type is represented with multiple + names only return the first one we find. + Thrown if there exists no .NET type which maps to this type. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The mandatory label policy. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_MAPPING for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The access rights enumeration type of the object is a container. + The fake NT type object. + + + + Get a fake type object. This can be used in access checking for operations which need an NtType object + but there's no real NT object. + + The name of the fake type. Informational only. + The GENERIC_READ for security checking. + The GENERIC_WRITE for security checking. + The GENERIC_EXECUTE for security checking. + The GENERIC_ALL for security checking. + The access rights enumeration type. + The fake NT type object. + + + + Get a list of all types. + + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + True to include fake types such as WNF or Service + The list of types. + + + + Get a list of all types. + + True to get the cached list of types, false to return a live list of all types. + The list of types. + + + + Get the NT type from a path. + + The object manager path. + Optional root object. + The NT type. Returns null if not available or unknown. + + + + Converted user process parameters. + + + + + Static class to access virtual memory functions of NT. + + + + + Query section name, + + The process to query from. + The base address to query. + True to throw on error + The result of the query. + + + + Query section name, + + The process to query from. + The base address to query. + The result of the query. + + + + Query memory information for a process. + + The process to query. + The base address. + True to throw on error. + The memory information for the region. + Thrown on error. + + + + Query memory information for a process. + + The process to query. + The base address. + The memory information for the region. + Thrown on error. + + + + Query all memory information regions in process memory. + + The list of memory regions. + Thrown on error. + + + + Query a list of mapped files in a process. + + The process to query. + The list of mapped images + Thrown on error. + + + + Read memory from a process. + + The process to read from. + The base address in the process. + The length to read. + The array of bytes read from the location. + If a read is short then returns fewer bytes than requested. + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Read structured memory from a process. + + The process to read from. + The base address in the process. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory to a process. + + The process to write to. + The base address in the process. + The data to write. + Thrown on error. + Type of structure to write. + + + + Read structured memory array from a process. + + The process to read from. + The base address in the process. + The number of elements in the array to read. + The read structure. + Thrown on error. + Type of structure to read. + + + + Write structured memory array to a process. + + The process to write to. + The base address in the process. + The data array to write. + Thrown on error. + Type of structure to write. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + True to throw on error. + The address of the allocated region. + Thrown on error. + + + + Allocate virtual memory in a process. + + The process to allocate in. + Optional base address, if 0 will automatically select a base. + The region size to allocate. + The type of allocation. + The allocation protection. + The address of the allocated region. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + Thrown on error. + + + + Free virtual emmory in a process. + + The process to free in. + Base address of region to free + The size of the region. + The type to free. + True to throw on error. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + The old protection for the region. + Thrown on error. + + + + Change protection on a region of memory. + + The process to change memory protection + The base address + The size of the memory region. + The new protection type. + True to throw on error. + The old protection for the region. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The working set information. + Thrown on error. + + + + Query working set information for an address in a process. + + The process to query. + The base address to query. + The working set information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + True to throw on error + The image information. + Thrown on error. + + + + Query image information for an address in a process. + + The process to query. + The base address to query. + The image information. + Thrown on error. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True to throw on error. + True if the mapped memory is the same file. + + + + Determine if two addresses are the same mapped file. + + The first address. + The second address. + True if the mapped memory is the same file. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + True to throw on error. + The NT status code. + + + + Flush instruction cache. + + The process to flush the cache in. + The address to flush. + The number of bytes to flush/ + + + + Native Wait methods. + + + + + Wait on a single object to become signaled + + The object to wait on + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + Wait on multiple objects to become signaled + + The objects to wait on + Whether the thread should be alerable + True to wait for all objects to be signaled + The timeout to wait for + The success status of the wait, such as STATUS_WAIT_OBJECT_0 or STATUS_TIMEOUT + + + + Signal an object then wait for another to become signaled. + + The object to signal + The object to wait on. + Whether the thread should be alertable + The timeout to wait for + The success status of the wait, such as STATUS_SUCCESS or STATUS_TIMEOUT + + + + A .NET wait handle to use for interop. + + + + + Create a .NET wait handle from an object. + + The object to create the wait handle on + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + Cancellation token for wait. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + + Timeout in milliseconds. + A task to wait on. If result is true then event was signaled. + + + + Wait asynchronously for the handle to be signaled. + Will wait an infinite time. + + A task to wait on. + + + + Class to represent an NT timeout + + + + + Get a timeout which will wait indefinitely. + + + + + Get a relative timeout in seconds. + + The number of seconds to wait. + An instance of the timeout class. + + + + Get a relative timeout in milliseconds. + + The number of milliseconds to wait. + An instance of the timeout class. + + + + Get an absolute time out from system start. + + The absolute time to wait until. + An instance of the timeout class. + + + + Get a relative time out from the current time. + + The relative time to wait in units of 100ns. + An instance of the timeout class. + + + + Create an absolute wait timeout from a datetime. + + The time for the timeout to complete. + An instance of the timeout class. + + + + The timeout as a long. + + + + + Overridden ToString method. + + The timeout as a string. + + + + Well-known IO Control codes. + + + + + Convert a control code to a known name. + + The control code. + The known name, or an empty string. + + + + Get a list of known control codes. + + The list of known control codes. + + + + Get a list of known control codes. + + The control code. + Thrown if can't find name. + + + + Structure to represent a Window. + + + + + The Window Handle. + + + + + Get Process ID for the Window. + + + + + Get the Thread ID for the Window. + + + + + Get the real owner Process ID of the Window. + + + + + Get the class name for the Window. + + + + + Send a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Post a message to the Window, Unicode. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + True to throw on error. + The send result. + + + + Send a message to the Window, ANSI. + + The message to send. + The WPARAM. + The LPARAM. + The send result. + + + + Constructor. + + Window handle. + + + + Constructor. + + Window handle. + + + + Get the NULL window handle. + + + + + Get the desktop window. + + + + + Get the broadcast window. + + + + + Get all Top Level windows. + + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + True to throw on error. + The enumerated Window Handles. + + + + Enumerate window handles. + + Desktop containing the Windows. Optional. + The parent Window. Optional. + True to enumerate child Windows. + Hide immersive Windows. + The thread ID that owns the Window. + The enumerated Window Handles. + + + + Class which represents a window station object. + + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + True to throw on error. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The object attributes for opening. + Desired access. + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + The name of the window station + Optional root object + The instance of the window station + Thrown on error. + + + + Open a window station by name. + + + The instance of the window station + Thrown on error. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + True to throw on error. + The Window Station. + + + + Create a Window Station by name. + + Object attributes for the Window Station. + Desired access for the Window Station. + Path to Keyboard DLL e.g. kbusa.dll. + Locale ID, e.g. 0x4090409. + Language ID e.g. 0x409. + The Window Station. + + + + Create a Window Station by name. + + The name of the Window Station. + The Window Station. + + + + Get a list of desktops for this Window Station. + + + + + Enumerate name of Window Stations in current session. + + + + + Get a list of accessible Window Station objects. + + The desired access for the Window Stations. + The list of desktops. + + + + Get a list of accessible Window Station objects. + + The list of desktops. + + + + Get a list of accessible desktop objects. + + The desired access for the desktops. + The list of desktops. + + + + Get a list of accessible desktop objects. + + The list of desktops. + + + + Close the Window Stations. This is different from normal Close as it destroys the Window Station. + + True to throw on error. + The NT status. + + + + Set the Window Station for the Process. + + True to throw on error. + The NT status. + + + + Open the current process Window Station. + + True to throw on error. + The instance of the window station + The returned object is no owned by the caller. + Thrown on error. + + + + Open the current process Window Station. + + + + + Get the Window Station directory for a session. + + The session ID. + The path to the Window Station directory. + + + + Get the Window Station directory for the current session. + + The path to the Window Station directory. + + + + NT WNF object. + + + + + Get the generic mapping for a + + + + + Fake NT type name for WNF. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + True to throw on error. + The created object. + + + + Kernel derived key which is used to mask the state name. + + + + + Create a new WNF state name. + + The lifetime of the name. + The scope of the data. + Whether to persist data. + Optional type ID. + Maximum state size. + Mandatory security descriptor. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + True to throw on error. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The statename to open. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + True to check state name exists. + The created object. + + + + Open a state name. Doesn't check if it exists. + + The name to open. + The created object. + + + + Get registered notifications. + + The list of registered notifications. + + + + Get the state name for this WNF entry. + + + + + The state name decoded. + + + + + Get the associated lifetime for the state name. + + + + + Version of the WNF state name. + + + + + Data scope of WNF state name. + + + + + Is WNF state name persistent. + + + + + Unique identifier of WNF state name, + + + + + Get if the state has subscribers. + + + + + Get the security descriptor for this object, if known. + + + + + Get a name for the WNF notification. + + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + True to throw on error. + The state data. + + + + Query state data for the WNF object. + + Optional Type ID. + Optional explicit scope. + The state data. + + + + Query state data for the WNF object. + + The state data. + + + + Update state data for the WNF object. + + The data to set. + Optional Type ID. + Optional explicit scope. + Optional matching changestamp. + True to throw on error. + The status from the update. + + + + Update state data for the WNF object. + + The data to set. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + True to throw on error. + The NT status code. + + + + Delete the state data for the WNF object. + + Optional explicit scope. + + + + Delete the state data for the WNF object. + + + + + Overridden ToString method. + + The string representation. + + + + Get dictionary of well known WNF state names. + + This was dumped from perf_nt_c.dll 10.0.18362.1 using https://github.com/ionescu007/wnfun. + + + + Get the state name to name mappings. + + + + + Get the name to state name mappings. + + + + + Get the name of a state name if known. + + The state name. + The name of the state name, or null if unknown. + + + + Flags for OBJECT_ATTRIBUTES + + + + + None + + + + + Handle is protected from closing. + + + + + The handle created can be inherited + + + + + Audit handle close. + + + + + The object created is marked as permanent + + + + + The object must be created exclusively + + + + + The object name lookup should be done case insensitive + + + + + Open the object if it already exists + + + + + Open the object as a link + + + + + Create as a kernel handle (not used in user-mode) + + + + + Force an access check to occur (not used in user-mode) + + + + + Ignore impersonated device map when looking up object + + + + + Fail if a reparse is encountered + + + + + A class which represents OBJECT_ATTRIBUTES + + + + + Constructor. Sets flags to None + + + + + Constructor + + The name of the object + Attribute flags + + + + Constructor + + The name of the object + Attribute flags + A root object to lookup a relative path + + + + Constructor + + Attribute flags + + + + Constructor + + The name of the object + + + + Constructor + + An object ID. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, can be SafeKernelObjectHandle.Null. Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Constructor + + The object name, can be null. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + + + + Create an Object Attributes structure with a raw name. Useful for Object ID handling. + + The name of the object in raw bytes. + The object attribute flags. + An optional root handle, Will duplicate the handle. + An optional security quality of service. + An optional security descriptor. + The created object attributes. + + + + Dispose + + + + + Object type entry for an access check. + + + + + The object level. + + + + + The object type GUID. + + + + + The name of the object. + + + + + Constructor. + + + + + Constructor. + + The object type GUID. + The object level. + The name of the object type entry. + + + + Constructor. + + The object type GUID. + The object level. + + + + Constructor. + + The object type GUID. + + + + Overridden ToString method. + + The object formatted. + + + + This class allows a function to specify an optional Guid + + + + + Optional Guid + + + + + Constructor + + The GUID to initialize + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional uint16. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int32. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional int64. + + + + + Optional value + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + This class allows a function to specify an optional length as a SizeT + + + + + Optional length + + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Constructor + + The length value + + + + Implicit conversion + + The length value + + + + This class allows a function to specify an optional pointer. + + + + + Optional length + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + Optional value. + + + + + Optional value. + + + + + Constructor + + The value + + + + Constructor + + + + + Implicit conversion + + The value. + + + + The result of a privilege check. + + + + + The list of privileges from the result. + + + + + The list of enabled privileges. + + + + + True indicates all privileges were held. + + + + + A single process module. + + + + + The module section. + + + + + Mapped base. + + + + + Image base. + + + + + Image size. + + + + + Flags. + + + + + Load order index. + + + + + Init order index. + + + + + Load count. + + + + + Full path name. + + + + + File name. + + + + + Reparse Tag value. + + + + + Base class for a reparse buffer. + + + + + The reparse tag in the buffer. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Constructor. + + The reparse tag to assign. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + The reparse buffer. + + + + Get a reparse buffer from a byte array. + + The byte array to parse + True to return an opaque buffer if + the tag isn't known, otherwise try and parse as a generic buffer + The reparse buffer. + + + + Convert reparse buffer to a byte array in REPARSE_DATA_BUFFER format. + + The reparse buffer as a byte array. + + + + Convert reparse buffer to a byte array in the REPARSE_DATA_BUFFER_EX format. + + Flags for the buffer. + Existing GUID to match against. + Existing tag to matcha against. + The reparse buffer as a byte array. + + + + Get if a reparse tag is a Microsoft defined one. + + + + + Get if a reparse tag is a name surrogate. + + True if it's a surrogate reparse tag. + + + + Get if a reparse tag is a directory. + + + + + Generic GUID reparse buffer. + + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + Constructor. + + The reparse tag. + The reparse GUID + Additional reparse data. + + + + The reparse GUID. + + + + + Additional reparse data. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer with an opaque data blob. + + + + + Constructor. + + The reparse tag. + The opaque data blob. + + + + The opaque data blob. + + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Reparse buffer for an NTFS mount point. + + + + + Constructor. + + Substitution name to reparse to when accessing mount point. + Printable name for the mount point. + + + + Substitution name to reparse to when accessing mount point. + + + + + Printable name for the mount point. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Symlink flags. + + + + + None. + + + + + Substitution name is relative to the symlink. + + + + + Reparse buffer for an NTFS symlink. + + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + + + + Constructor. + + Substitution name to reparse to when accessing symlink. + Printable name for the symlink. + Symlink flags. + Create a global symlink rather than a normal symlink. + + + + Substitution name to reparse to when accessing symlink. + + + + + Printable name for the symlink. + + + + + Symlink flags. + + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Application type for execution alias. + + + + + Desktop bridge application. + + + + + UWP type 1 + + + + + UWP type 2 + + + + + UWP type 3 + + + + + Reparse buffer for an execution alias. + + + + + The execution alias version. + + + + + The name of the application package. + + + + + The entry point in the package. + + + + + The target executable. + + + + + Application type for the alias. + + + + + Flags, obsolete. + + + + + Constructor. + + The execution alias version. + The name of the application package. + The entry point in the package. + The target executable. + Apptype for the alias. + + + + Get reparse buffer data as a byte array (not including header). + + The reparse buffer data. + + + + Function to initialize this class by parsing the reparse buffer data (not including header). + + The length of the data to read. + The stream to read from. + + + + Safe buffer for an ALPC data view. + + + + + Flags for the data view. + + + + + Get the port section handle. + + + + + Convert the section view to a message attribute. + + The message attribute. + + + + Release the data view handle. + + True if successfully released. + + + + Safe buffer to contain an ALPC port message. + + + + + Constructor. + + The port message header. + The total length of allocated memory excluding the header. + + + + Constructor. Creates a receive buffer with a set length. + + The total length of allocated memory excluding the header. + + + + Get a NULL safe buffer. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a port section. + + + + + Release handle. + + True if handle released successfully. + + + + Safe handle for an ALPC security context. + + + + + Attribute flags. + + + + + Security quality of service. + + + + + Get the security context as a message attribute. + + The message attribute. + + + + Get whether handle is invalid. + + + + + Release handle. + + True if handle released successfully. + + + + Revoke the security context attribute. + + True to throw on error. + The NT status code. + + + + Revoke the security context attribute. + + + + + Safe buffer to contain a list of structures. + + + + + The count of elements of the array. + + + + + Constructor. + + Array of elements. + Additional data to place after the array. + + + + Constructor. + + Array of elements. + + + + Get a reference to the additional data. + + + + + Get a NULL safe array buffer. + + + + + Dispose buffer. + + True if disposing. + + + + Safe buffer which acts as a base class for all other SafeBuffer types in the library. + + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + Inidicates if the underlying buffer is writable. + + + + Constructor + + Size of the buffer. + An existing pointer to a buffer. + Specify whether safe handle owns the buffer. + + + + Length of the allocation. + + + + + Length of the allocation as a long. + + + + + Get the length as an IntPtr + + + + + Convert the safe handle to an array of bytes. + + The data contained in the allocaiton. + + + + Read a NUL terminated string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated string + + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + Text encoding for the string. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string for the byte offset. + + The byte offset to read from. + The string read from the buffer without the NUL terminator + + + + Read a NUL terminated ANSI string + + The string read from the buffer without the NUL terminator + + + + Read a unicode string from the buffer. + + The offset into the buffer to read. + The number of characters to read. + The read unicode string. + + + + Read a unicode string from the buffer. + + The number of characters to read. + The read unicode string. + + + + Write a unicode string to the buffer. + + The offset into the buffer to write. + The value to write. + + + + Write a unicode string to the buffer. + + The value to write. + + + + Read an array of bytes from the buffer. + + The offset into the buffer. + The number of bytes to read. + The read bytes. + + + + Read an array of bytes from the buffer. + + The number of bytes to read. + The read bytes. + + + + Write an array of bytes to the buffer. + + The offset into the buffer. + The bytes to write. + + + + Write an array of bytes to the buffer. + + The bytes to write. + + + + Read array from the buffer. + + The type to read. + The offset into the buffer. + The number of elements to read. + The read array. + + + + Read an array of complex structures which can contain references. Doing this from a buffer is a dangerous operation. + + The buffer type. + The offset into the buffer. + The number of elements. + The array structures. + This doesn't bounds check the buffer size for the array or embedded structures so could easily crash the application. + + + + Zero an entire buffer. + + + + + Fill an entire buffer with a specific byte value. + + The fill value. + + + + Get a structured buffer object at a specified offset. + + The type of structure. + The offset into the buffer. + The structured buffer object. + + + + Get the buffer as a memory stream + + + + + + Create a view accessor over the full buffer. + + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + The view accessor. + + + + Create a view accessor. + + Offset into the buffer + Size of view. + True to make the view writable. False for read-only + The view accessor. + + + + A safe handle to an allocated global buffer. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Initialization data for the buffer. + + + + Get a buffer which represents NULL. + + + + + Resize the SafeBuffer. + + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Non-generic buffer to hold an IO_STATUS_BLOCK. + + + + + Constructor. + + + + + Get a buffer which represents NULL. + + + + + Safe handle which represents a kernel handle. + + + + + Constructor. + + An existing kernel handle. + True to own the kernel handle. + + + + Overridden ReleaseHandle method. + + True if successfully released the handle. + + + + Overridden IsInvalid method. + + + + + Get a handle which represents NULL. + + + + + Get or set whether the handle is inheritable. + + + + + Get or set whether the handle is protected from closing. + + + + + Get the NT type name for this handle. + + The NT type name. + + + + Overridden ToString method. + + The handle as a string. + + + + Class which is allocated from the process heap. + + + + + Constructor + + Size of the buffer to allocate. + + + + Constructor + + Initialization data for the buffer. + + + + Constructor + + The length of data to allocate. + The total length to reflect in the Length property. + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe SID buffer. + + This is used to return values from the RTL apis which need to be freed using RtlFreeSid + + + + Safe handle for an in/out structure buffer. + + The type of structure as the base of the memory allocation. + + + + Constructor + + Structure value to initialize the buffer. + + + + Constructor, initializes buffer with a default structure. + + + + + Constructor + + Size of the buffer. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + An existing pointer to an existing HGLOBAL allocated buffer. + Specify whether safe handle owns the buffer. + + + + Constructor, initializes buffer with a default structure. + + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Constructor + + Structure value to initialize the buffer. + Additional data to add to structure buffer. + If true additional_size is added to structure size, otherwise reflects the total size. + + + + Get a buffer which represents NULL. + + + + + Overridden ReleaseHandle method. + + True if successfully released the memory. + + + + Get or set the result structure in the memory buffer. + + + + + Get a reference to the additional data. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Detaches the current buffer and allocates a new one. + + Specify a new length for the detached buffer. Must be <= Length. + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe buffer for a list of Token groups. + + + + + Constructor. + + The list of SID and attributes. + The list of allocated SIDs. + + + + NULL safe buffer. + + + + + Create a buffer from a list of groups. + + The group list. + The safe buffer. + + + + Dispose. + + True if disposing. + + + + Safe buffer for token privileges. + + + + + Constructor. + + List of privileges. + + + + NULL safe buffer. + + + + + Security descriptor control flags. + + + + + Security descriptor. + + + + + Discretionary access control list (can be null) + + + + + System access control list (can be null) + + + + + Owner (can be null) + + + + + Group (can be null) + + + + + Get or set Control flags. This is computed based on the current state of the SD. + + + + + Revision value + + + + + The resource manager control flags. + + + + + Get or set an associated NT type for this security descriptor. + + + + + Get or set mandatory label. Returns a medium label if it doesn't exist. + + + + + Get the process trust label. + + + + + Get list of access filters. + + + + + Get list of resource attributes. + + + + + Get the scoped policy ID. + + + + + Get or set the integrity level + + + + + Get or set the server security flag. + + + + + Get or set the DACL untrusted flag. + + + + + Get whether the DACL is present. + + + + + Get count of ACEs in DACL. + + + + + Get whether the SACL is present. + + + + + Get count of ACEs in DACL. + + + + + Indicates if the security descriptor was constructed from a self relative format. + + + + + Indicates if the SD's DACL is canonical. + + + + + Indicates if the SD's SACL is canonical. + + + + + Indicates if the SD's DACL is defaulted. + + + + + Indicates if the SD's SACL is defaulted. + + + + + Indicates if the SD's DACL is auto-inherited. + + + + + Indicates if the SD's SACL is auto-inherited. + + + + + Indicates if the SD came from a container. + + + + + Indicates the SD has audit ACEs present. + + + + + Indicates the SD has a mandatory label ACE present. + + + + + Indicates the SD has a NULL DACL. + + + + + Indicates the SD has a NULL SACL. + + + + + Get the access rights enum type for this SD based on the NT Type property. + + + + + Get the mandatory label. Returns null if it doesn't exist. + + True to include InheritOnly ACEs in the search. + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Get the mandatory label. Returns null if it doesn't exist. + + The valid mandatory ACE for this security descriptor. Or null if it doesn't exist. + + + + Convert security descriptor to a byte array + + The binary security descriptor + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The parts of the security descriptor to return + The SDDL string + + + + Convert security descriptor to SDDL string + + True to throw on error. + The SDDL string + + + + Convert security descriptor to SDDL string + + The SDDL string + + + + Converts the security to a base64 string. + + True to insert line breaks in the base64. + The relative SD as a base64 string. + + + + Converts the security to a base64 string. + + The relative SD as a base64 string. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + True to throw on error. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + True to return an absolute security descriptor, false for self-relative. + A safe buffer for the security descriptor. + + + + Convert security descriptor to a safe buffer. + + A safe buffer for the security descriptor. + This returns a self-relative security descriptor. + + + + Add an ACE to the DACL, creating the DACL if needed. + + The ACE to add to the DACL. + + + + Add an ACE to the SACL, creating the SACL if needed. + + The ACE to add to the SACL. + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access allowed ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an access allowed ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an access denied ACE to the DACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The ACE flags + The SID + + + + Add an audit success ACE to the SACL + + The access mask + The SID in SDDL form + + + + Add an audit success ACE to the SACL + + The access mask + The SID + + + + Add an access denied ACE to the DACL + + The access mask + The SID in SDDL form + + + + Add an audit fail ACE to the SACL + + The access mask + The SID + + + + Add mandatory integrity label to SACL + + The integrity level + + + + Add mandatory integrity label to SACL + + The integrity level + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity level + The ACE flags. + The mandatory label policy + + + + Add mandatory integrity label to SACL + + The integrity label SID + The ACE flags. + The mandatory label policy + + + + Removes the mandatory label if it exists. + + + + + Map all generic access in this security descriptor to the default type specified by NtType. + + + + + Map all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Map all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Unmap all generic access in this security descriptor to the default type specified by NtType. + + + + + Unmap all generic access in this security descriptor to a specific type. + + The type to get the generic mapping from. + + + + Unap all generic access in this security descriptor to a specific type. + + The generic mapping. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The NT status code. + + + + Modifies a security descriptor from a new descriptor. + + The security descriptor to update with. + The parts of the security descriptor to update. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + True to throw on error. + The NT status code. + + + + Converts the SD to an Auto-Inherit security descriptor. + + The parent security descriptor. + Optional object type GUID. + True if a directory. + Generic mapping for the object. + + + + Canonicalize the DACL if it exists. + + + + + Canonicalize the SACL if it exists. + + + + + Standardize security descriptor according to Active Directory rules. + + + + + Clone the security descriptor. + + The cloned security descriptor. + + + + Overridden ToString method. + + The security descriptor as an SDDL string. + + + + Constructor. + + Native pointer to security descriptor. + + + + Constructor. + + The process containing the security descriptor. + Native pointer to security descriptor. + + + + Constructor + + + + + Constructor. + + The NT type for the security descriptor. + + + + Constructor + + Binary form of security descriptor + Optional NT type for security descriptor. + + + + Constructor + + Binary form of security descriptor + + + + Constructor from a token default DACL and ownership values. + + The token to use for its default DACL. + + + + Constructor + + Base object for security descriptor + Token for determining user rights + True if a directory security descriptor + + + + Constructor from an SDDL string + + The SDDL string + Thrown if invalid SDDL + + + + Constructor from an SDDL string + + The SDDL string + Optional NT type for security descriptor. + Thrown if invalid SDDL + + + + Parse a security descriptor. + + Native pointer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Native pointer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Safe buffer to security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + Binary form of security descriptor + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + The NT type for the security descriptor. + True if the security descriptor is from a container. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor. + + The SDDL form of the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The NT type for the security descriptor. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + True to throw on error. + The parsed Security Descriptor. + + + + Parse a security descriptor from a base64 string + + The base64 string. + The parsed Security Descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + Optional list of object type GUIDs. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + True to throw on error. + The new security descriptor. + + + + Create a new security descriptor from a parent. + + The parent security descriptor. Can be null. + The creator security descriptor. + True if the objec to assign is a directory. + Auto inherit flags. + Optional token for the security descriptor. + Generic mapping. + The new security descriptor. + + + + A security descriptor SID which maintains defaulted state. + + + + + The SID. + + + + + Indicates whether the SID was defaulted or not. + + + + + Constructor from existing SID. + + The SID. + Whether the SID was defaulted or not. + + + + Convert to a string. + + The string form of the SID + + + + Clone the security descriptor SID. + + The cloned SID. + + + + The type of the security attribute name. + + + + + Class to represent an attribute name operand. + + + + + The type of attribute. + + + + + The name of the attribute. + + + + + Constructor. + + The type of the attribute. + The name of the attribute. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a composite conditional operand. + + + + + List of operands. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a conditional expression. + + + + + Serialize the expression to a byte array. + + The expression as a byte array. + + + + Overridden ToString method. + + The object as a string. + + + + Parse a binary conditional expression. + + The data to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse a binary conditional expression. + + The data to parse. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + True to throw on error. + The parsed conditional expression. + + + + Parse an SDDL conditional expression. + + The SDDL expression to parse. + The parsed conditional expression. + + + + Get list of the conditional operands. + + + + + Size of conditional integer operand. + + + + + Sign of conditional integer operand. + + + + + Base of conditional integer operand. + + + + + Class to represent a conditional integer operand. + + + + + Size of the integer. + + + + + Value of the integer. + + + + + Sign of the integer. + + + + + Base of the integer. + + + + + Constructor. + + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent an octet string conditional operand. + + + + + The value of the operand. + + + + + Constructor. + + The value of the operand. + + + + Overridden ToString method. + + The object as a string. + + + + Abstract class to represent a conditional expression operand. + + + + + Conditional operator type. + + + + + Class to represent a conditional operator operand. + + + + + The type of operator. + + + + + Constructor. + + The type of operator. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a SID conditional operand. + + + + + The SID value. + + + + + Constructor. + + The SID value. + + + + Overridden ToString method. + + The object as a string. + + + + Class to represent a string conditional operand. + + + + + The string value. + + + + + Constructor. + + The string value. + + + + Overridden ToString method. + + The object as a string. + + + + Interface for an NT object to query and set a security descriptor. + + + + + Get the name of the object. + + + + + Get the NtType for this object. + + The NtType for the object. + + + + Get the object's security descriptor. + + + + + Get whether the object is a container. + + + + + Check if access is granted to a set of rights + + The access rights to check + True if all the access rights are granted + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Class representing a Central Access Policy. + + + + + The CAP SID. + + + + + CAP Flags. + + + + + Name of the CAP. + + + + + Description of the CAP. + + + + + Change ID. Normally a date time when changed. + + + + + The list of rules associated with this policy. + + + + + Parse the policy from the registry. + + The base key for the registry policy. + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the registry. + + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + True to throw on error. + The list of Central Access Policies. + + + + Parse the policy from the Local Security Authority. + + The list of Central Access Policies. + + + + Class representing a Central Access Rule. + + + + + CAP Rule Flags. + + + + + Name of the CAP Rule. + + + + + Description of the CAP Rule. + + + + + Change ID. Normally a date time when changed. + + + + + Conditional Expression to determine who to applie the rule to. + + + + + The CAP Rule security descriptor. + + + + + The CAP Rule staged security descriptor. + + + + + Class to represent a Security Identifier. + + + + + Maximum size of a SID buffer. + + + + + The SIDs authority. + + + + + List of the SIDs sub authorities. + + + + + Get the account name of the SID or the SDDL form if no corresponding name. + + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor for authority and sub authorities. + + The identifier authority. + The sub authorities. + + + + Constructor from an unmanged buffer. + + A pointer to a buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an unmanged buffer. + + A safe buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from a safe SID handle. + + A safe SID handle containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from an manged buffer. + + A buffer containing a valid SID. + Thrown if the buffer is not valid. + + + + Constructor from existing Sid. + + The existing Sid. + + + + Constructor from an SDDL string. + + The SID in SDDL format. + + new Sid("S-1-0-0"); + new Sid("WD"); + + + + + + Constructor from a SID name. + + The SID name. + + + + Construct a SID from a binary reader. + + The binary reader. + + + + Convert the SID to a safe buffer. + + The safe buffer containing the SID. + + + + Convert to a managed byte array. + + The managed byte array. + + + + Compares two sids to see if their prefixes are the same. The sids must have the same number of subauthorities. + + The sid to compare against + True if the sids share a prefix. + + + + Compare two Sids. + + The other Sid to compare. + True if the Sids are equal. + + + + Equality operator. + + Sid 1 + Sid 2 + True if the Sids are equal. + + + + Inequality operator. + + Sid 1 + Sid 2 + True if the Sids are not equal. + + + + Get hash code. + + The hash code. + + + + Convert to an SDDL format string. + + The SDDL format string (e.g. S-1-1-0) + + + + Does this SID dominate another. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another. + + The other SID. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True to throw on error. + True if the sid dominates. + + + + Does this SID dominate another for trust. + + The other SID. + True if the sid dominates. + + + + Checks if the SID starts with the specified SID. + + The specified SID to check against. + True if the current SID starts with the specified SID. + + + + Create a SID relative to this one. + + The list of RIDs. + The relative SID. + + + + Create a SID sibling to this SID. + + The RIDs to replace the final RID with. + The sibling SID. + This replaces the final RID with one or more addditional RIDs. + + + + Get the SID name for this SID. + + True to bypass the SID name cache. + The SID name. + + + + Get the SID name for this SID. + + The SID name. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + True to throw on error. + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Convert an SDDL SID string to a Sid + + The SDDL SID string + The converted Sid + Thrown if cannot convert from a SDDL string. + + + + Parse a byte array. + + The byte array to parse. + True to throw on error. + The parsed SID. + + + + Parse a byte array. + + The pointer to parse. + True to throw on error. + The parsed SID. + + + + Predefined security authorities + + + + + Represents an identifier authority for a SID. + + + + + Get a reference to the identifier authority. This can be used to modify the value + + + + + Constructor. + + + + + Construct from an existing authority array. + + The authority, must be 6 bytes in length. + Thrown if authority is not the correct length. + + + + Constructor from a simple predefined authority. + + The predefined authority. + + + + Construct from an Int64. + + The authority as an Int64. + + + + Compares authority to another. + + The other authority to compare against. + True if authority is equal. + + + + Get hash code. + + The authority hash code. + + + + Determines if this is a specific security authority. + + The security authority. + True if the security authority. + + + + Convert authority to a 64 bit integer. + + The authority as a 64 bit integer. + + + + Overridden ToString method. + + The security authority as a string. + + + + Source for a SID name. + + + + + SDDL string. + + + + + LSASS lookup. + + + + + Named capability. + + + + + Package name SID. + + + + + From a process trust level. + + + + + Well known SID. + + + + + Scoped policy SID. + + + + + Manually added name. + + + + + Represents a name for a SID. + + + + + The qualified name of the SID. Either the combination of + Domain and Name or the SDDL SID. + + + + + The domain name, if present. + + + + + The user name. + + + + + The source of name. + + + + + The use of the name. + + + + + The SDDL format of the SID. + + + + + Used for caching. Indicates the lookup name was denied rather than not available. + + + + + Disposable class to scope an impersonation context. + + + + + Revert impersonation back to the current user. + + + + + Class to represent the state of a token privilege + + + + + Privilege attributes + + + + + Privilege LUID + + + + + Get the token privilege value enum. + + + + + Get the name of the privilege + + The privilege name + + + + Get the display name/description of the privilege + + The display name + + + + Get whether privilege is enabled + + + + + Get whether privilege is enabled + + + + + Constructor + + The privilege LUID + The privilege attributes + + + + Constructor + + The privilege value + The privilege attributes + + + + Constructor + + The privilege name. + The privilege attributes + + + + Constructor + + The privilege name. + + + + Conver to a string + + The privilege name. + + + + Standard UNICODE_STRING class + + + + + Standard UNICODE_STRING class based on a SecureString class. + + + + + Structure to use when passing in a unicode string as a sub-structure with a seure string. + + + + + Standard ANSI_STRING class + + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Convert unicode string to an array. + + The unicode string data as an array. + + + + This class is used when the UNICODE_STRING is an output parameter. + The allocatation of the buffer is handled elsewhere. + + + + + Structure to use when passing in a unicode string as a sub-structure. + + + + + This class is used when the UNICODE_STRING needs to be preallocated + and then returned back from a caller. + + + + + Implements a UnicodeString which contains raw bytes. + + + + + Constructor. + + The bytes for the name. + + + + Get a null safe buffer. + + + + + Class to represent a user group + + + + + The SID of the user group + + + + + The attributes of the user group + + + + + Get whether the user group is enabled + + + + + Get whether the user group is mandatory + + + + + Get whether the user group is used for deny only + + + + + Get the resolved name of the SID. + + + + + Constructor + + The SID + The attributes + + + + Constructor from a SID. + + The SID + + + + Constructor from a SID or account name. + + The SID or account name. + + + + Convert to a string + + The account name if available or the SDDL SID + + + + Basic utilities for ASN1 support. + + + + + Format an array of ASN.1 DER to a string. + + The ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Format an file containing of ASN.1 DER to a string. + + The path to the file containing ASN.1 data in DER format. + Initial identation depth. + The formatted DER data. + + + + Class to do basic ASN1 DER generation. + + + + + Constructor. + + The stream to write the DER data to. + + + + Constructor. + + + + + Write an object ID. + + The object ID to write. + + + + Write raw bytes to the stream. + + The bytes to write. + + + + Write an octet-string to the stream. + + The octet string. + + + + Write a NULL value. + + + + + Write a 32-bit integer. + + The integer value. + + + + Write a 64-bit integer. + + The integer value. + + + + Write an arbitrary integer. + + The integer value. + + + + Write a sequence based on the contents of another DER builder. + + The builder for the contents. + + + + Write a sequence based on the contents of another DER builder. + + The build function for the contents. + + + + Write a sequence based on the contents of another DER builder. + + Write a sequence of fixed values. + The build function for the contents. + + + + Create a sequence builder. + + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the application specific tag. + The build function for the contents. + + + + Create an application specific builder. + + The ID of the application specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a context specific tag with specified contents. + + The ID of the context specific tag. + The contents of the context specific value. + + + + Write a context specific tag with contents from the builder. + + The ID of the context specific tag. + The builder for the contents. + + + + Write an application specific tag with contents from the builder. + + The ID of the context specific tag. + The build function for the contents. + + + + Create a context specific builder. + + The ID of the context specific tag. + The created builder. + You should call Close or dispose on the created builder to write the tag. + + + + Write a general encoded string. + + The string + The encoding to covert to. + + + + Write a general encoded string using ASCII encoding. + + The string + + + + Write a UTF8 string. + + The UTF8 string + + + + Write an IA5 string. + + The IA5 string + + + + Write a generalized time. + + The time to write. + + + + Convert builder to a byte array. + + The DER encoded data. + + + + A DER builder for a sub-structure.. + + You should call Close or dispose the builder to write the sub-structure. + + + + Close the builder and write its contents to the parent builder. + + + + + Static class for DER builder utility functions. + + + + + A basic ASN.1 DER parser to process Kerberos and SPNEGO Tokens. + + + + + Class containing known OID values. + + + + + Class to implement a scoped file lock. + + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + True to throw on error. + The NT status code. + + + + Lock part of a file. + + The file to lock. + The offset into the file to lock + The number of bytes to lock + True to fail immediately if the lock can't be taken + True to do an exclusive lock + The NT status code. + + + + Unlock the file. + + + + + IMemoryReader implementation for a process. + + + + + Class to compress and decompress buffers using RtlCompressionBuffer. + + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + True to throw on error. + The uncompressed buffer. + + + + Decompress a buffer. + + The compression format used. + The compressed buffer. + The expected uncompressed length. + The uncompressed buffer. + + + + IMemoryReader implementation for a process. + + + + + Class which calls a delegate on dispose. + + + + + Constructor. + + The delegate to call on dispose. + + + + Dispose and call the action. + + + + + A container which can detach an innner reference. + + + + + + Get the contained value. + + + + + Detach the object so the original isn't disposed. + + Detached object. + + + + Miscellaneous utilities. + + + + + Convert a disposable object to a detachable object. + + The disposable object type. + The disposable object. + The disposable container. + + + + Utilities for reflection. + + + + + Get the SDK name for a type, if available. + + The type to get the name for. + The SDK name. Returns the name of the type if not available. + + + + Get the SDK name for an enum, if available. + + The enum to get the name for. + The SDK name. If the enum is a flags enum then will return the names joined with commas. + + + + Get the SDK name an object. + + The object to get the name from. If this isn't an Enum or Type then the Type of the object is used. + The SDK name. + + + + Class to create a view. This never owns the handle. + + + + + Detaches the current handle and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + A buffer which contains an array of GUID pointers. + + + + + The count of GUIDs. + + + + + Constructor. + + The list of GUIDs. + + + + Get NULL safe buffer. + + + + + Basic implementation of ARC4. + + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + Offset into the data to decrypt. + Length of data to decrypt. + The key to decrypt. + The resulting bytes. + + + + Encrypt, or decrypt an ARC4 stream. + + The data to encrypt/decrypt. + The key to decrypt. + The resulting bytes. + + + + Basic implementation of MD4. + + + This could have called out to the CNG APIs or dug into the + internals of the existing .NET crypto APIs but as MD4 is so + simple and it doesn't need to be secure (seriously don't use + this). This uses the reference implementation from RFC1320. + + + + + Calculate the MD4 hash of an input. + + The input bytes. + The MD4 hash. + + + + Calculate the MD4 hash of a string. + + The input string. + Encoding for the string. + The MD4 hash. + + + + Calculate the MD4 hash of a unicode string. + + The input string. + The MD4 hash. + + + + Class to perform the n-fold operation for Kerberos key derivation. + + + + + Perform an n-fold operation. + + The input data as a string. + The output length in bytes. + The computed n-folded byte array. + + + + Perform an n-fold operation. + + The input data. + The output length in bytes. + The computed n-folded byte array. + + + + A tree of Object Types. + + + + + Constructor. + + Entries to setup in the tree. + + + + Contructor. + + The object type GUID. + The name of the root object. + + + + Contructor. + + The object type GUID. + + + + Contructor. + + The object type GUID as a string. + + + + List of child nodes in the tree. + + + + + The parent of this tree. + + + + + The Object Type GUID. + + + + + Optional access mask for use in access checking. + + + + + Optional label for this tree entry. + + + + + Indicates the number of total entries this tree contains. + + + + + Add a new object type to the tree. + + The object type. + The name of the node. + The added tree object. + + + + Add a new object type to the tree. + + The object type. + The added tree object. + + + + Add an existing node to the tree. + + The node to add. + + + + Add an existing list of nodes to the tree. + + The nodes to add. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Removes all object types from the tree. + + The object type. + The removed tree object. + + + + Remove the current tree entry from the parent. + + + + + Convert the tree to an array. + + The array of ObjectTypeEntry objects. + + + + Clone the object type tree. + + The cloned tree. + + + + Set the access mask of this tree node and all children. + + The mask to set. + + + + Remove access mask from this tree node and children and propgate that up the tree. + + The mask to remove. + + + + Find an object type tree entry based on a GUID. + + The object type GUID. + The first entry found, null if doesn't exist. + + + + Split the tree up to reduce the maximum number of entries. + + This will try and keep whole branches together if at all possible, + but might split them up. This could result in incorrect access checking. + The maximum number of entries per tree. + One or more split trees. + + + + Overridden ToString method. + + The object formatted. + + + + Encoding object which converts 1 to 1 with bytes. + + + + + Default instance of the encoding. + + + + + Get the encoding name. + + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The number of bytes this character array requires. + + + + Get bytes for characters. + + The character array. + Index into the array. + Number of characters in the array to use. + The index into the byte array. + The byte array to copy into. + The number of bytes generated. + + + + Get the character count for bytes. + + The byte array. + Index into the array. + Number of bytes in the array to use. + The number of characters this byte array requires. + + + + Get byte count for characters. + + The character array. + Index into the array. + Number of bytes in the array to use. + The index into the byte array. + The byte array to copy into. + The number of characters generated. + + + + Get maximum bytes for a number of characters. + + + + + + + Get maximum characters for a number of bytes. + + + + + + + Indicates if the encoding is a single byte. + + + + + A single extract string instance. + + + + + The string value. + + + + + The offset in the buffer. + + + + + True if the string was 16-bit Unicode. + + + + + Source of the string. Empty if was from a byte array. + + + + + Overridden ToString method. + + The value of the extracted string. + + + + Specify types of strings to extract. + + + + + Extract ASCII strings. + + + + + Extract Unicode strings. + + + + + Class to build a hex dump from a stream of bytes. + + + + + Append an array of bytes to the hex dump. + + The byte array. + The length of the bytes to append from the array. + The start offset in the bytes to append. + + + + Append an array of bytes to the hex dump. + + The byte array. + + + + Append a file or part of a file. + + The path to the file. + The length of the file to append. If 0 will append all remaining data. + The start offset in the file to append. + + + + Append a file or part of a file. + + The path to the file. + + + + Complete the hex dump string. + + + + + Finish builder and convert to a string. + + The hex dump. + + + + Constructor. + + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + The safe buffer to print. + The length to display. + The offset into the buffer to display. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The safe buffer to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + + + + Constructor. + + The stream to print. + Print a header. + Print the address. + Print the ASCII text. + Hide repeating lines. + Offset for address printing. + + + + Constructor. + + + + + Parse a hex dump into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Parse a hex string into a byte array. + + The hex string. Can contain non-hex characters. + The parsed string as a byte array. + True if the parse was successful. + This won't necessarily parse correctly an arbitary hex dump, but it will if you just use the hex of the bytes. + + + + Utility class to extract strings from a byte value. + + + + + Extracts strings from a binary buffer. + + The data to search. + The length of the data to search. + The minimum string length. + The offset into the data to search. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a binary buffer. + + The data to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a stream. + + The stream to extract strings from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a file. + + The file to search. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The list of extracted strings. + + + + Extracts strings from a safe buffer. + + Safe buffer to extract the value from. + The minimum string length. + The type of strings to search for. + The length of the data to search. + The offset into the data to search. + The list of extracted strings. + + + + Class to call NT functions for manipulating strings. + + + + + Upper case a character according to the internal NTDLL string routines. + + The character to upper case. + The upper case character. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + True to throw on error. + The upper case string. + + + + Upper case a string according to the internal NTDLL string routines. + + The string to upper case. + The upper case string. + + + + Lower case a character according to the internal NTDLL string routines. + + The character to lower case. + The lower case character. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + True to throw on error. + The lower case string. + + + + Lower case a string according to the internal NTDLL string routines. + + The string to lower case. + The lower case string. + + + + Builder for a claim security attribute. + + + + + Name of the security attribute. + + + + + Attribute flags. + + + + + The value type. + + + + + The current list of values. + + + + + Convert build to a claim attribute. + + + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + The name of the security attribute. + The attribute flags. + The value for the attribute. + The builder instance. + + + + Create a claim security attribute builder. + + An existing attribute to clone. + The builder instance. + + + + A class which represents an AppContainer profile. + + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + True to throw on error. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a new AppContainerProfile. + + The name of the AppContainer. + A display name. + An optional description. + An optional list of capability SIDs. + The created AppContainer profile. + If the profile already exists then it'll be opened instead. + + + + Create a temporary AppContainer profile. + + List of capabilities for the AppContainer profile. + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Create a temporary AppContainer profile. + + The created AppContainer profile. + The profile will be marked to DeleteOnClose. In order to not leak the profile you + should wait till the process has exited and dispose this profile. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile. + + The name of the AppContainer. + The opened AppContainer profile. + This method doesn't check the profile exists. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + True to throw no error. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Opens an AppContainerProfile and checks it exists. + + The name of the AppContainer. + The opened AppContainer profile. + This checks for the existence of the profile and also populates the additional information. + + + + Delete an existing profile. + + The AppContainer name. + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + The AppContainer name. + + + + Enumerate all AppContainer profiles. + + True to throw on error. + The list of appcontainer profiles. + + + + Enumerate all AppContainer profiles. + + The list of appcontainer profiles. + + + + Delete an existing profile. + + True to throw on error. + The HRESULT from the delete operation. + + + + Delete an existing profile. + + + + + Dispose of the AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Close an AppContainer profile. If DeleteOnClose is set then the profile will be deleted. + + + + + Open the AppContainer key. + + The desired access for the key. + True to throw on error. + The opened key. + + + + The AppContainer name. + + + + + The package SID + + + + + Path to the AppContainer profile directory. + + + + + Path to the AppContainer key. + + + + + Set to true to delete the profile when closed. + + + + + Get list of capabilities assigned to this AppContainer profile. + + + + + The display name for the AppContainer profile. + + + + + The description for the AppContainer profile. + + + + + Utilities for AppModel applications. + + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + True to throw on error. + The PID of the process. + + + + Activate an application from its Application Model ID. + + The app model ID. + Arguments for the activation. + The PID of the process. + + + + Get the list of package SIDs with a loopback exception. + + True to throw on error. + The list of package SIDs with a loopback exception. + + + + Get the list of package SIDs with a loopback exception. + + The list of package SIDs with a loopback exception. + + + + Add a loopback exception to the list. + + The package SID to add. + True to throw on error. + The NT status code. + + + + Add a loopback exception to the list. + + The package SID to add. + + + + Remove a loopback exception from the list. + + The package SID to remove. + True to throw on error. + The NT status code. + + + + Remove a loopback exception to the list. + + The package SID to remove. + + + + State of the console session. + + + + + User logged on to WinStation + + + + + WinStation connected to client + + + + + In the process of connecting to client + + + + + Shadowing another WinStation + + + + + WinStation logged on without client + + + + + Waiting for client to connect + + + + + WinStation is listening for connection + + + + + WinStation is being reset + + + + + WinStation is down due to error + + + + + WinStation in initialization + + + + + Class to represent a console session. + + + + + The session ID. + + + + + The Session Name. + + + + + The Username if any user authenticated. + + + + + The Domain Name for the User. + + + + + The Console Session State. + + + + + The hostname for the client. + + + + + The Farm name for Virtual Machine Farm. + + + + + Get the FQ User Name. + + + + + Type information for an array. + + + + + Get array element type. + + + + + Get number of array elements. + + + + + Type information for a base type. + + + + + Symbol information for a data value. + + + + + Address of the symbol. + + + + + Enumerated type value. + + + + + Name of the value. + + + + + The value as an int64. + + + + + Symbol information for an enumerated type. + + + + + Get the values for the enumerated type. + + + + + Class for a function parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + Type information for a function. + + + + + Type for the return type. + + + + + List of function parameters. + + + + + Interface for symbol type resolver. + + + + + Query types in a module. + + The base address of the module. + The list of types. + + + + Query names of types in a module. + + The base address of the module. + The list of type names. + + + + Get a type by name. + + The base address of the module containing the type. + The name of the type. + + + + + Query types by name + + The base address of the module containing the type. + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The symbol type. + + + + Get the address of a symbol. + + The address of the symbol. + The symbol type. + + + + Type information for a pointer value. + + + + + Get the type this pointer references. + + + + + Indicates this pointer is a reference. + + + + + The name of the symbol. + + + + + Class to represent a symbol information. + + + + + The name of the symbol. + + + + + Size of the symbol. + + + + + Get the loaded module for the symbol. + + + + + Type of the symbol. + + + + + Internal type index. + + + + + Overridden ToString method. + + Returns the symbol name. + + + + Enumeration for symbol type information. + + + + + None. + + + + + UDT. + + + + + Enumerated type. + + + + + A base type. + + + + + A function type. + + + + + A pointer type. + + + + + Undefined. + + + + + Flags for the symbol resolver. + + + + + No flags. + + + + + Trace symbol file loading + + + + + Disable resolving export symbols if no PDB can be found. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Symbol information for a type. + + + + + Represents a member of a UDT. + + + + + The type of the member. + + + + + The name of the member. + + + + + The offset into the UDT. + + + + + The size of the member. + + + + + Represents a bit field member of a UDT. + + + + + If a bit field then this is the bit start position. + + + + + If a bit field this is the bit length. + + + + + Symbol information for an enumerated type. + + + + + The members of the UDT. + + + + + Indicates the UDT is a union. + + + + + Class to capture Win32 debug output. + + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console. + + The session ID for the console. Set to 0 to capture global output. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for current session. + + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + True to throw on error. + The Win32 debug console. + + + + Create an instance of the Win32 debug console for the global session. + + The Win32 debug console. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + Cancellation token. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console asynchronously. + + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The timeout in milliseconds. + The Win32 debug string. If timed out then Output property is null. + + + + Read a debug string from for the console. + + The Win32 debug string. If timed out then Output property is null. + + + + Attach the debug console to another session. + + The session ID. + True to throw on error. + The NT status code. + + + + Attach the debug console to another session. + + The session ID. + + + + Dispose debug console. + + + + + Structure for a debug string event. + + + + + The process ID. + + + + + The output string. + + + + + Class to hold known bus type GUIDs. + + + + + Class to represent a device interface. + + + + + The name of the interface class. + + + + + The device interface GUID. + + + + + The list of device interface instances. + + + + + The list of all device interface properties. + + The device interface properties. + + + + Class containing well known device interface class GUIDs. + + + + + Convert interface class GUID to a string. + + + The name of the interface class GUID. + + + + Get the list of known interface GUIDs. + + The list of known interface guids. + + + + Class to represent a device interface instance. + + + + + The instance path to the device. + + + + + The raw device path. + + + + + The device interface class GUID. + + + + + The device instance ID for the device node. + + + + + Overridden ToString method. + + The Win32Path. + + + + The list of all device interface instance properties. + + The device interface instance properties. + + + + Device property types. + + + + + Class representing a device node. + + + + + The name of the device instance. + + + + + The device setup class GUID. + + + + + The device instance ID. + + + + + Get the device PDO name. + + + + + Get the device INF name. + + + + + Get the device INF path. + + + + + Get the device stack. + + + + + The the device stack as a list of driver paths. + + + + + Indicates if this is a per-session device. If null then not defined. + + + + + Indicates if this instance is present. + + + + + Indicates the name of the SCM service for the driver. + + + + + Get path to the driver. + + + + + Get driver start type. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + List of upper filters. + + + + + List of lower filters. + + + + + Container ID. + + + + + Type of bus for the device. + + + + + Get if the device is a user-mode device. + + + + + The list of all device properties. + + The device properties. + + + + Get the setup class for this instance. + + Returns the setup class. + Thrown if invalid setup GUID. + + + + Get list of parent nodes. + + The list of parent nodes. + + + + Overridden ToString method. + + + + + + Optional security descriptor for device node. + + + + + Indicates the device node has a security descriptor. + + + + + Device property. + + + + + The name of the property, if known. + + + + + The FMTID Guid. + + + + + The PID. + + + + + The device property type. + + + + + Property data. + + + + + Format the data according to type. + + The formatted data. + + + + ToString method. + + The property as a string. + + + + Class to represent a device setup class. + + + + + The friendly name of the device. + + + + + The name of the device class. + + + + + The device class installer Guid. + + + + + The security descriptor for the device (if available). + + + + + Indicates the device setup class has a security descriptor. + + + + + The device type. + + + + + The device characteristics. + + + + + List of upper filters. + + + + + List of lower filters. + + + + + The list of all device setup properties. + + The device setup properties. + + + + Get device instances. + + Return all devices. + The list of devices instances. + + + + Get device instances. + + The list of devices instances. + + + + Enumerated type for device stack type. + + + + + Unknown type. + + + + + Entry is for the function driver. + + + + + Entry is for the bus driver. + + + + + Entry is for an upper filter. + + + + + Entry is for the lower filter. + + + + + Entry is for a filter. + + + + + Class to represent an entry on the stack. + + + + + Name of the driver. + + + + + Path to the driver. + + + + + Stack entry type. + + + + + Overridden ToString method. + + The name of the driver in the stack. + + + + Class to represent a node in a device tree. + + + + + List of child nodes. + + + + + Indicates if the node has any children. + + + + + Get the parent device node. + + The parent device node. Returns null if reached the root. + + + + Utilities for interacting with Device, Configuration and Setup APIs. + + + + + Get a list of device interfaces from an Interface GUID. + + The interface class GUID for the device. + Optional device ID. + True to get all devices, otherwise just present devices. + List of device interfaces. + + + + Get a list of present device interfaces from an Inteface GUID. + + The interface class GUID for the device. + List of device interfaces. + + + + Enumerate installer class GUIDs. + + The list of installer class GUIDs. + + + + Enumerate interface class GUIDs. + + The list of interface class GUIDs. + + + + Query the security descriptor for a device. + + The installer device class. + True to throw on error. + The security descriptor. + + + + Query the security descriptor for a device. + + The installer device class. + The security descriptor. + + + + Get list of registered device setup classes. + + The list of device setup classes. + + + + Get a device setup class by GUID. + + The class GUID. + The device setup class. + + + + Get list of registered device interfaces. + + True to return all devices. + The list of device interfaces. + + + + Get list of registered device interfaces. + + The list of device interfaces. + + + + Get a device interface class by GUID. + + The class GUID. + True to return all devices. + The device interface class. + + + + Get a device interface class by GUID. + + The class GUID. + The device interface class. + + + + Get list of device nodes. + + Return all devices including ones which aren't present. + The list of device nodes. + + + + Get list of present device nodes. + + The list of device entries. + + + + Get list of device entries. + + Specify the Device Setup Class GUID. + Only return present devices. + The list of device entries. + + + + Get list of present device entries. + + Specify the Device Setup Class GUID. + The list of device entries. + + + + Get the device node from a device ID. + + The instance ID to lookup.. + The device node. + + + + Get device tree. + + The device tree's root node. + + + + Get the node from a device instance ID. + + The instance ID to start from. + The root device node. + + + + Get all device interface instances. + + + + + Get all device interface instances for a given interface class GUID. + + + + + Get an interface instance from the interface instance path. + + The path to the interface symbolic link. e.g. \??\SOME$VALUE. + + + + Interface to indicate the device object has properties. + + + + + The list of all device properties. + + The device properties. + + + + Access rights for Active Directory Services. + + + + + Class to represent a binding to a directory service. + + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + True to throw on error. + The cracked names. + + + + Crack one or more names on the domain controller. + + Flags for the cracking. + Format of the names. + Desired format of the names. + The list of names to crack. + The cracked names. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + True to throw on error. + The cracked name. + + + + Crack a name on the domain controller. + + Flags for the cracking. + Format of the name. + Desired format of the name. + The name to crack. + The cracked name. + + + + Get naming contexts for domain. + + True to throw on error. + The naming contexts. + + + + Get naming contexts for domain. + + The naming contexts. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + True to throw on error. + The directory service binding. + + + + Bind to a directory service. + + The name of the domain controller. Can be null. + The DNS domain name. + The directory service binding. + + + + Bind to the current directory service. + + The directory service binding. + + + + Dispose the binding. + + + + + Class to represent an directory service extended right queries from the current domain. + + + + + The common name of the extended right. + + + + + The distinguished name for the extended right. + + + + + The domain name searched for this extended right. + + + + + The rights GUID for this extended right. + + + + + The list of applies to GUIDs. + + + + + The valid accesses for this extended right. + + + + + Get list of properties if a property set. + + + + + True if this a property set extended right. + + + + + True if this is a validated write extended right. + + + + + True if this is a control extended right. + + + + + Overridden ToString method. + + The name of the extended right. + + + + Convert the extended right to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The extended right to convert. + The tree of object types. + + + + Flags and settings from the dSHeuristics attribute. + + + + + The fSupFirstLastANR flag. + + + + + The fSupLastFirstANR flag. + + + + + The fDoListObject flag. + + + + + The fLDAPBlockAnonOps flag. + + + + + The fAllowAnonNSPI flag. + + + + + The fDontStandardizeSDs flag. + + + + + The raw value for the dsHeuristics attribute. + + + + + The domain where the value was read. + + + + + Directory services name error. + + + + + Directory services name flags. + + + + + Directory services name format. + + + + + Structure to represent a directory service name. + + + + + Status of the name. + + + + + Domain of the name. + + + + + Name of the name. + + + + + Native methods for directory services. + + + + + Object type level for a directory object. + + + + + Object type. + + + + + Property set type. + + + + + Property type. + + + + + Class to represent an a class which is referenced from another. For example auxiliary or superior classes. + + + + + The name of the class. + + + + + Whether the class is a system class. + + + + + Get the full schema class for this reference. + + The schema class. + + + + Class to represent a directory service schema attribute. + + + + + The attributes syntax. + + + + + The OM syntax. + + + + + The OM object class. + + + + + The name of the attribute syntax type if known. + + + + + The GUID of the containing property set, if it exists. + + + + + Indicates if the attribute is in a property set. + + + + + Class to represent a directory service schema class. + + + + + The subclass schema name. + + + + + List of attributes the class can contain. + + + + + The default security descriptor. + + + + + The default security descriptor in SDDL format. + + + + + The list of auxiliary classes for this class. + + + + + The category of schema class. + + + + + The list of possible superior classes for this class. + + + + + Possible inferiors of the class. + + + + + Structure to represent an attribute for a class. + + + + + The name of the attribute. + + + + + True if the attribute is required. + + + + + True if the attribute can only be modified by system. + + + + + Get the hash code for the attribute. + + The hash code. + + + + Check attributes for equality. + + The other attribute to check. + True if equal. + + + + Overridden ToString method. + + The name of the attribute. + + + + Represents the type of schema class. + + + + + Legacy class. + + + + + Structure class (can be created). + + + + + Abstract class. + + + + + Auxiliary class. + + + + + Base class for a schema class or attribute object. + + + + + The GUID of the schema class. + + + + + The name of the schema class. + + + + + The LDAP display name. + + + + + The object class for the schema class. + + + + + The distinguished name for the schema class. + + + + + The domain name searched for this schema class. + + + + + The admin description for the object. + + + + + Indicates if this schema object is system only. + + + + + Overridden ToString method. + + The name of the schema class. + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + Convert the extended right to an object type tree. + + The schema class to convert. + The tree of object types. + + + + Class to represent a security principal in the directory. + + + + + Distinguished name of the group. + + + + + The SID of the object. + + + + + Overridden Equals. + + The other object to test. + True if equal. + + + + Overridden GetHashCode. + + The hash code. + + + + User flags. + + + + + Class implementing various utilities for directory services. + + + + + Name for the fake Directory Service NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for Directory Services. + + The fake Directory Services NtType + + + + Get the default property set. + + + + + Get the schema class for a GUID. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a GUID. + + The GUID for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the schema class for a LDAP name. + + The LDAP name for the schema class. + The schema class, or null if not found. + + + + Get the inferior schema class for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the inferior schema class for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + Specify the domain to get the schema class for. + The LDAP name for the parent schema class. + The schema classes. + + + + Get the auxiliary schema classes for a LDAP name. + + The LDAP name for the schema class. + The schema classes. + + + + Get all schema classes. + + Specify the domain to get the schema classes for. + The list of schema classes. + + + + Get all schema classes. + + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify the domain to get the schema classes for. + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get all schema classes in a hierarchy. + + Specify to include auxiliary classes in the list. + The name of the base schema class. + The list of schema classes. + + + + Get the common name of an schema object class. + + Specify the domain to get the schema class for. + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the common name of an schema object class. + + The GUID for the schema class. + The common name of the schema class, or null if not found. + + + + Get the schema attribute for a GUID. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a GUID. + + The GUID for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + Specify the domain to get the schema attribute for. + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get the schema attribute for a LDAP name. + + The LDAP name for the schema attribute. + The schema attribute, or null if not found. + + + + Get all schema attributes. + + Specify the domain to get the schema attributes for. + The list of schema attributes. + + + + Get all schema attributes. + + The list of schema attributes. + + + + Get the common name of a schema attribute. + + Specify the domain to get the schema attribute for. + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the common name of a schema attribute. + + The GUID for the schema attribute. + The common name of the schema attribute, or null if not found. + + + + Get the extended right name by GUID. + + Specify the domain for the extended right. + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get the extended right name by GUID. + + The GUID for the extended right. + If true and the right is a property set, expand the name. + The name of the extended right, or null if not found. + + + + Get an extended right by GUID. + + Specify the domain to get the extended right for. + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by GUID. + + The GUID for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + Specify the domain to get the extended right for. + The common name for the extended right. + The extended right, or null if not found. + + + + Get an extended right by common name. + + The common name for the extended right. + The extended right, or null if not found. + + + + Get a list of all extended rights in the current domain. + + Specify the domain to get the extended rights from. + The list of extended rights. + + + + Get a list of all extended rights in the current domain. + + The list of extended rights. + + + + Get a list of extended rights applied to a schema class. + + Specify the domain to get the extended rights from. + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Get a list of extended rights applied to a schema class in the current domain. + + The schema class identifier. + The list of extended rights applies to the schema class. + + + + Create an object type entry for an access check. + + The object type level. + The object type GUID. + An optional name. + The object type entry. + + + + Get the object SID from a directory object. + + The directory entry. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The domain name for the object. + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get the object SID from a directory object. + + The distinguished name of the object. + The object SID. Returns null if no object SID exists. + + + + Get a directory object. + + The domain name for the object. + The distinguished name of the object. + The object entry. + + + + Get a directory object. + + The distinguished name of the object. + The object entry. + + + + Standardize security descriptor to the rules of Active Directory. + + The security descriptor. + The standardized security descriptor. + + + + Get the value for the dsHeuristics attribute. + + The domain to read the dsHeuristics from. + The dsHeuristics value. + + + + Get the value for the dsHeuristics attribute. + + The dsHeuristics value. + + + + Get the value for an object's sDRightsEffective attribute. + + The domain for the object. + The distinguished name of the object. + The sDRightsEffective value. + + + + Get the value for an object's sDRightsEffective attribute. + + The distinguished name of the object. + The sDRightsEffective value. + + + + Try and find the an object from its SID. + + Specify the domain to search. + The SID to find. + The distinguished name of the object, null if not found. + + + + Try and find the token groups for an object. + + Domain name for the lookup. + The distinguished name to find. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the token groups for an object using the SID. + + Sid to use for the object. + True to return all groups including BUILTIN on the server. False for just universal and global groups. + The list of member SIDs. + + + + Try and find the membership of groups for a name. + + Domain name for the lookup. + The distinguished name to find as member. + The list of groups. + + + + Call to pre-cache the schema for a domain, could take a long time to load. + + The domain to cache. + True if the schema was cached successfully. + + + + Call to pre-cache the schema for the current domain, could take a long time to load. + + True if the schema was cached successfully. + + + + Interface to convert a directory object to a tree for access checking. + + + + + The name of the object. + + + + + The ID of the object. + + + + + Convert the schema class to an object type tree. + + The tree of object types. + + + + DLL characteristic flags. + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Reserved + + + + + Image can handle a high entropy 64-bit virtual address space. + + + + + DLL can be relocated at load time. + + + + + Code Integrity checks are enforced. + + + + + Image is NX compatible. + + + + + Isolation aware, but do not isolate the image. + + + + + Does not use structured exception (SE) handling. No SE handler may be called in this image. + + + + + Do not bind the image. + + + + + Image must execute in an AppContainer. + + + + + A WDM driver. + + + + + Image supports Control Flow Guard. + + + + + Terminal Server aware. + + + + + CodeView debug data for an executable. + + + + + The magic identifier. + + + + + The unique identifier. + + + + + Age of debug information. + + + + + Path to PDB file. + + + + + Identifier path to use when looking up symbol file. + + + + + Get just the name of the PDB file. + + + + + Get the symbol server path. + + The symbol URL, either a local path or a remote URL. + The symbol server path. + + + + Single DLL export entry. + + + + + The name of the export. If an ordinal this is #ORD. + + + + + The ordinal number. + + + + + Address of the exported entry. Can be 0 if a forwarded function. + + + + + Name of the forwarder, if used. + + + + + Get the module this was exported from. + + + + + Overridden ToString method. + + The name of the export. + + + + Single DLL import. + + + + + The name of the DLL importing from. + + + + + List of DLL imported functions. + + + + + List of names imported. + + + + + Could of functions + + + + + True of the imports are delay loaded. + + + + + The path to the executable this import came from. + + + + + Overridden ToString method. + + The DLL name and count. + + + + Single DLL import function. + + + + + The name of the DLL importing from. + + + + + The name of the imported function. If an ordinal this is #ORD. + + + + + Address of the imported function. Can be 0 if not a bound DLL. + + + + + Ordinal of import, if imported by ordinal. -1 if not. + + + + + Overridden ToString method. + + The name of the imported function. + + + + Simple class for an event trace. + + + + + Write an empty event. + + + + + Dispose method. + + + + + Level for trace event. + + + + + Critical level. + + + + + Error level. + + + + + Warning level. + + + + + Information level. + + + + + Verbose level. + + + + + Descriptor for an enabled trace provider. + + + + + Pointer to descriptor data. + + + + + Size of descriptor data. + + + + + Type of descriptor data. + + + + + An Event Trace Log. + + + + + Enable a provider. + + The GUID of the provider. + The level for the events. + Any keywords to match. + All keywords to match. + The timeout. + List of optional descriptors. + True to throw on error. + The resulting status code. + + + + Get allocated session GUID. + + + + + Get name of the session. + + + + + Finalizer. + + + + + Dispose the event trace log. + + + + + Source of an event trace provider. + + + + + Unknown source. + + + + + From WMI. + + + + + From NtTraceControl. + + + + + From the security key. + + + + + Class to represent an Event Trace Provider. + + + + + The ID of the provider. + + + + + The name of the provider. + + + + + Whether the provider is defined as an XML file or a MOF. + + + + + The provider security descriptor (only available as admin). + + + + + Indicates the source of the provider. + + + + + Class to access event tracing methods. + + + + + Query security of an event. + + The event GUID to query. + True to throw on error. + The event security descriptor. + + + + Query security of an event. + + The event GUID to query. + The event security descriptor. + + + + Query the default security for events. + + True to throw on error. + The default security descriptor. + + + + Query the default security for events. + + The default security descriptor. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Modify trace security. + + The event trace GUID. + The operation to perform. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + Adds DACL ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Clears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + True to throw on error. + The NT status code. + + + + lears DACL and adds ACE for an event trace. + + The event trace GUID. + The SID to set. + The access mask to set. + True to allow, false to deny. + + + + Remove security for an event trace. + + The event trace GUID. + True to throw on error. + The NT status code. + + + + Remove security for an event trace. + + The event trace GUID. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + True to throw on error. + The event trace. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + True to throw on error. + The event trace log. + + + + Start an event trace log. + + The path to the log file. + Session GUID. + The name of the logging session. + The event trace log. + + + + Register an event trace with a specific GUID. + + The event trace GUID. + The event trace. + + + + Get the list of registered trace GUIDs. + + The list of trace GUIDs. + + + + Get the list of registered trace providers. + + Specify true to return a list of cached providers. + The list of trace providers. + + + + Get the list of registered trace providers. + + The list of trace providers. + Returns a cached list of providers, if you want to check the current list use GetProviders(bool). + + + + Get the name of a provider. + + The ID of the provider. + The name of the provider. Returns null if the provider had no name or doesn't exist. + + + + Contains information about a manifest file. + + + + + True if parsing the XML manifest failed. + + + + + Full path to the manifest location. + + + + + The name of the manifest. + + + + + True if the manifest indicates UI access. + + + + + The execution level from the manifest. + + + + + True if the manifest indicates auto elevation. + + + + + The manifest XML. + + + + + True if the manifest indicates long path awareness. + + + + + Get the manifests from a file. + + The file to extract the manifests from. + The list of manifests. + + + + Overridden ToString method. + + The manifest as a string. + + + + A class to represent filter communication port. + + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + True to throw on error. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + Make the handle synchronous. + Optional context data. + The filter communications port. + + + + Open a filter communications port. + + The port name, e.g. \FilterName + The filter communications port. + + + + Get message from port. + + The maximum message size to receive. + True to throw on error. + The returned message. + + + + Get message from port. + + The maximum message size to receive. + The returned message. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + True to throw on error. + The NT status code. + + + + Reply to message. + + The NT status code. + The message ID from GetMessage. + The data to send. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + True to throw on error. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The output buffer. + The bytes in the output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + true to throw on error. + The output buffer. + + + + Send a message to the filter. + + The input buffer. + The maximum size of the output buffer. + The output buffer. + + + + Class to represent a filter communications port message. + + + + + The message ID. + + + + + The returned data. + + + + + The length of the reply to send. + + + + + Class to represent a filter drive. + + + + + True if a mini-filter, false if a legacy-filter. + + + + + Flags, if any. + + + + + The frame ID. + + + + + Number of instances if a mini-filter. + + + + + Name of the filter driver. + + + + + Altitude of the filter driver. + + + + + Class to represent a mini-filter instance. + + + + + The name of the instance. + + + + + The altitude of the instance. + + + + + The volume name. + + + + + The filter name. + + + + + Filter filesystem type. + + + + + an UNKNOWN file system type + + + + + Microsoft's RAW file system (\FileSystem\RAW) + + + + + Microsoft's NTFS file system (\FileSystem\Ntfs) + + + + + Microsoft's FAT file system (\FileSystem\Fastfat) + + + + + Microsoft's CDFS file system (\FileSystem\Cdfs) + + + + + Microsoft's UDFS file system (\FileSystem\Udfs) + + + + + Microsoft's LanMan Redirector (\FileSystem\MRxSmb) + + + + + Microsoft's WebDav redirector (\FileSystem\MRxDav) + + + + + Microsoft's Terminal Server redirector (\Driver\rdpdr) + + + + + Microsoft's NFS file system (\FileSystem\NfsRdr) + + + + + Microsoft's NetWare redirector (\FileSystem\nwrdr) + + + + + Novell's NetWare redirector + + + + + The BsUDF CD-ROM driver (\FileSystem\BsUDF) + + + + + Microsoft's Mup redirector (\FileSystem\Mup) + + + + + Microsoft's WinFS redirector (\FileSystem\RsFxDrv) + + + + + Roxio's UDF writeable file system (\FileSystem\cdudf_xp) + + + + + Roxio's UDF readable file system (\FileSystem\UdfReadr_xp) + + + + + Roxio's DVD file system (\FileSystem\DVDVRRdr_xp) + + + + + Tacit FileSystem (\Device\TCFSPSE) + + + + + Microsoft's File system recognizer (\FileSystem\Fs_rec) + + + + + Nero's InCD file system (\FileSystem\InCDfs) + + + + + Nero's InCD FAT file system (\FileSystem\InCDFat) + + + + + Microsoft's EXFat FILE SYSTEM (\FileSystem\exfat) + + + + + PolyServ's file system (\FileSystem\psfs) + + + + + IBM General Parallel File System (\FileSystem\gpfs) + + + + + Microsoft's Named Pipe file system(\FileSystem\npfs) + + + + + Microsoft's Mailslot file system (\FileSystem\msfs) + + + + + Microsoft's Cluster Shared Volume file system (\FileSystem\csvfs) + + + + + Microsoft's ReFS file system (\FileSystem\Refs or \FileSystem\Refsv1) + + + + + OpenAFS file system (\Device\AFSRedirector) + + + + + Composite Image file system (\FileSystem\cimfs) + + + + + Methods for accessing Filter Manager information. + + + + + Enumerate the list of filter drivers. + + The list of filter drivers. + + + + Enumerate the list of filter driver instances. + + The name of the filter driver. + The list of filter driver instances. + + + + Enumerate the list of filter driver instances for all filter drivers. + + The list of filter driver instances. + + + + Enumerate the list of filter drivers attached to a volume. + + The name of volume, e.g. C:\ + The list of filter volume instances. + + + + Enumerate the list of filter drivers attached for all volumes. + + The list of filter volume instances. + + + + Enumerate the list of filter volumes. + + The list of filter volumes + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + True to throw on error. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + Optional instance name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional altitude of the filter. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The created instance name. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + True to throw on error. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + Optional instance name. + The NT status code. + + + + Attach a filter to a volume. + + The filter name. + The volume name. + The NT status code. + + + + Class to represent a filter volume. + + + + + Is the filter detached from the volume. + + + + + Filter frame ID. + + + + + Filesystem type. + + + + + Filter volume name. + + + + + Class which represents a section from a loaded PE file. + + + + + The name of the section. + + + + + Buffer to the data. + + + + + Relative Virtual address of the data from the library base. + + + + + Image section characteristics. + + + + + Get the data as an array. + + The data as an array. If can't read the section returns an empty array. + + + + Characteristic flags for image section. + + + + + None. + + + + + Section is code. + + + + + Section is initialized data. + + + + + Section is uninitialized data. + + + + + Section is shared. + + + + + Section is executable. + + + + + Section is readable. + + + + + Section is writable. + + + + + Class to represent a resource in an image. + + + + + The name of the resource. + + + + + The type of the resource. + + + + + The size of the resource. + + + + + Get the resource as a byte array. + + The resource as a byte array. + + + + Image resource type. + + + + + The name of the resource as a string. + + + + + The well known type, is available (otherwise set to UNKNOWN) + + + + + Overridden ToString method. + + The name of the type. + + + + Known image resource types. + + + + + Interface for a symbol resolver. + + + + + Get list of loaded modules. + + The list of loaded modules + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get list of loaded modules and optionally refresh the list. + + True to refresh the current cached list of modules. + The list of loaded modules + + + + Get module at an address. + + The address for the module. + The module, or null if not found. + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get module at an address. + + The address for the module. + True to refresh the current cached list of modules. + The module, or null if not found. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + The string form of the address, e.g. modulename+0x100 + Note this will cache the results so subsequent calls won't necessarily see new modules. + + + + Get a string representation of a relative address to a module. + + The address to get the string for, + True to refresh the current cached list of modules. + The string form of the address, e.g. modulename+0x100 + + + + Get the address of a symbol. + + The name of the symbol, should include the module name, e.g. modulename!MySymbol. + The address of the symbol + + + + Get the symbol name for an address. + + The address of the symbol. + The symbol name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Get the symbol name for an address, with no fallback. + + The address of the symbol. + If true then generate a fake symbol. + If true then return only the name of the symbols (such as C++ symbol name) rather than full symbol. + The symbol name. If |generate_fake_symbol| is true and the symbol doesn't exist one is generated based on module name. + + + + Reload the list of modules for this symbol resolver. + + + + + Load a specific module into the symbol resolver. + + The path to the module. + The base address of the loaded module. + + + + Flags for loading a library. + + + + + None. + + + + + Don't resolve DLL references + + + + + Load library as a data file. + + + + + Load with an altered search path. + + + + + Ignore code authz level. + + + + + Load library as an image resource. + + + + + Load library as a data file exclusively. + + + + + Add the DLL's directory temporarily to the search list. + + + + + Search application directory for the DLL. + + + + + Search the user's directories for the DLL. + + + + + Search system32 for the DLL. + + + + + Search the default directories for the DLL. + + + + + Logon type + + + + + This is used to specify an undefined logon type + + + + + Interactively logged on (locally or remotely) + + + + + Accessing system via network + + + + + Started via a batch queue + + + + + Service started by service controller + + + + + Proxy logon + + + + + Unlock workstation + + + + + Network logon with cleartext credentials + + + + + Clone caller, new default credentials + + + + + Remove interactive. + + + + + Cached Interactive. + + + + + Cached Remote Interactive. + + + + + Cached unlock. + + + + + Specify what account rights to get. + + + + + Get all account rights. + + + + + Get all privilege account rights. + + + + + Get logon account rights. + + + + + Utilities for user logon. + + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + True to throw on error. + The logged on token. + + + + Logon user using Kerberos Ticket. + + The type of logon token. + The service ticket. + Optional TGT. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + True to throw on error. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The name of the auth package to user. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Logon user using S4U + + The username. + The user's realm. + The type of logon token. + The logged on token. + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get a logon session. + + The logon session ID. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon session LUIDs + + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + The list of logon sessions. + + + + Get account rights assigned to a SID. + + The SID to query. + True to throw on error. + The list of account rights. + + + + Get account rights assigned to a SID. + + The SID to query. + The list of account rights. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The name of the account right, such as SeImpersonatePrivilege. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The account right privilege to query. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + True to throw on error. + The list of SIDs assigned to the account right. + + + + Get SIDs associated with an account right. + + The logon account right to query. + The list of SIDs assigned to the account right. + + + + Get account rights. + + Specify the type of account rights to get. + Account rights. + + + + Get all account rights. + + All account rights. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + True to throw on error. + The NT status code. + + + + Add account rights to the user. + + The user SID to add. + The list of account rights. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account privileges. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + True to throw on error. + The NT status code. + + + + Add account rights as privileges. + + The user SID to add. + The list of account logon types. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Remove account rights from a user. + + The user SID to remove. + The list of privileges. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account privileges. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + True to throw on error. + The NT status code. + + + + Remove account rights from a user. + + The user SID to remove. + The list of account rights. + + + + Win32 memory utils. + + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Write memory to a process. + + The process to write to. + The base address in the process. + The data to write. + The number of bytes written to the location + Thrown on error. + + + + Class to represent a TCP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + Gets the remote endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the remote computer. + + + Gets the state of this Transmission Control Protocol (TCP) connection. + One of the enumeration values. + + + + Get local address. + + + + + Get local port. + + + + + Get remote address. + + + + + Get remote port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Class to represent a UDP listener with process ID. + + + + Gets the local endpoint of a Transmission Control Protocol (TCP) connection. + An instance that contains the IP address and port on the local computer. + + + + Get local address. + + + + + Get local port. + + + + + Gets the process ID of the listener on the local system. + + + + + Gets the time the socket was created. + + + + + Gets the owner of the module. This could be an executable path or a service name. + + + + + Gets if the UDP socket is bound to a specific port. + + + + + Utilities for Win32 network APIs. + + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. + + The address family to query. + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a list of TCP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of TCP listeners. + The built-in System.Net.NetworkInformation.SystemIPGlobalProperties.GetActiveTcpListeners doesn't expose the PID member so we have to reimplement it. + + + + Get a TCP listener for a TCP port. + + The address family of the IP address. + The TCP port. + The listener information, or null if not found. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + True to throw on error. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. + + The address family to query. + The list of UDP listeners. + + + + Get a list of UDP listeners with process IDs. Returns both IPv4 and IPv6 listeners. + + The list of UDP listeners. + + + + APPX Package Architecture. + + + + + X86 + + + + + ARM + + + + + X64 + + + + + Neutral + + + + + ARM64 + + + + + APPX Package Origin. + + + + + Unknown origin. + + + + + Unsigned. + + + + + Inbox. + + + + + Store. + + + + + Developer unsigned. + + + + + Developer signed. + + + + + Line-of-business. + + + + + Class which represents an AppContainer package identity. + + + + + Process architecture. + + + + + Package version. + + + + + Package family name. + + + + + Publisher (not always available). + + + + + Resource ID. + + + + + Published ID. + + + + + Full package name. + + + + + Package origin. + + + + + Package family name. + + + + + Package install path. + + + + + The list of application model IDs. + + + + + Get the GetStagedPackageOrigin method as a delegate. It's supposed to be exposed by kernel32, + but actually doesn't seem to be. + + + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a package full name. + + The package full name. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + True to throw on error. + The package identity. + + + + Create from a token. + + The AppContainer token. + Query for full information (needs to be installed for the current user). + The package identity. + + + + Class to represent a printer object. + + + + + Dispose the printer object. + + + + + Open a printer or server. + + The name of the printer or server. If this is null or empty then it's the local server. + The desired access on the printer. + True to throw on error. + The opened printer. + + + + Open a printer. + + The name of the printer. + The desired access on the printer. + The opened printer. + + + + Open a printer. + + The name of the printer. + The opened printer. + + + + Get security descriptor for the printer. + + True to throw on error. + The printer's security descriptor. + + + + Get security descriptor for the printer. + + The printer's security descriptor. + + + + Access rights for a print spooler object. + + + + + Utils for print spooler. + + + + + Name for the fake printer NT type. + + + + + Name for the fake print server NT type. + + + + + Name for the fake print server NT type. + + + + + Get the generic mapping for printer objects. + + The printer objects generic mapping. + + + + Get the generic mapping for job objects. + + The job objects generic mapping. + + + + Get the generic mapping for server objects. + + The server objects generic mapping. + + + + Get the appropriate NT type for the printer path. + + The printer path, e.g. \\server\printer. + The NT type. + + + + Class representing an RPC ALPC server. + + + + + The PID of the process which contains the ALPC server. + + + + + The name of the process which contains the ALPC server. + + + + + List of known endpoints potentially accessible via this RPC server. + + + + + The number of endpoints. + + + + + The name of the ALPC server. + + + + + The security descriptor of the ALPC server. + + + + + Get RPC ALPC servers for a specific process. + + The ID of the process. + The list of RPC ALPC servers. + If the process is suspended or frozen this call can hang. + + + + Get a list of all RPC ALPC servers. + + This works by discovering any server ALPC ports owned by the process and querying for interfaces. + This will ignore any frozen processes (primarily UWP) as they can't respond to the endpoint enumeration. + The list of RPC ALPC servers. + + + + Get the RPC ALPC server for an ALPC port object path. + + The object manager path to the ALPC port. + The ALPC RPC server. + Needs an API which is only available from Windows 10 19H1. + + + + Overridden ToString method. + + Formatted string. + + + + Generic RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The RPC server to bind to. + + + + Send and receive an RPC message. + + The procedure number. + Marshal NDR buffer for the call. + Unmarshal NDR buffer for the result. + + + + Class to represent an RPC endpoint. + + + + + The interface ID of the endpoint. + + + + + The interface version. + + + + + The object UUID. + + + + + Optional annotation. + + + + + RPC binding string. + + + + + Endpoint protocol sequence. + + + + + Endpoint network address. + + + + + Endpoint name. + + + + + Endpoint network options. + + + + + The endpoint path. + + + + + Indicates this endpoint is registered with the endpoint mapper. + + + + + Overridden ToString method. + + String form of the object. + + + + Get information about the server process. + + + + + + Static class to access information from the RPC mapper. + + + + + Query all endpoints registered on the local system. + + List of endpoints. + + + + Query all endpoints registered based on a binding string. + + The binding string for the server to search on. If null or empty will search localhost. + List of endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + The binding string for the server to search on. If null or empty will search localhost. + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint ignoring the version. + + Interface UUID to lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + Interface UUID to lookup. + Interface version lookup. + The list of registered RPC endpoints. + + + + Query for endpoints registered on the local system for an RPC endpoint via ALPC. + + The server interface. + The list of registered RPC endpoints. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The ALPC port to query. Can be a full path as long as it contains \RPC Control\ somewhere. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + True to throw on error. + The list of endpoints on the RPC binding. + + + + Query for endpoints for a RPC binding. + + The RPC binding to query, e.g. ncalrpc:[PORT] + The list of endpoints on the RPC binding. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The protocol sequence to lookup. + The network address for the lookup. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the endpoint. + + The string binding to map. + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + Interface UUID to lookup. + Interface version lookup. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Resolve the local binding string for this service from the local Endpoint Mapper and return the ALPC port path. + + The server interface. + The mapped endpoint. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + + + + Finds ALPC endpoints which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + A list of RPC endpoints which can bind the interface. + Throws on error. + + + + Finds an ALPC endpoint which allows for the server binding. This brute forces all ALPC ports to try and find + something which will accept the bind. + + This could hang if the ALPC port is owned by a suspended process. + Interface UUID to lookup. + Interface version lookup. + The first RPC endpoints which can bind the interface. Throws exception if nothing found. + Throws on error. + + + + Resolve the binding string for this service from the Endpoint Mapper. + + The binding string to map. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the the Endpoint Mapper. + + The protocol sequence to lookup. + The network address to lookup the endpoint. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + Resolve the binding string for this service from the local Endpoint Mapper. + + The protocol sequence to lookup. + Interface UUID to lookup. + Interface version lookup. + This only will return a valid value if the service is running and registered with the Endpoint Mapper. It can also hang. + The RPC binding string. Empty string if it doesn't exist or the lookup failed. + + + + A class to represent an RPC server. + + + + + Resolve the current running endpoint for this server. + + + + + + Format the RPC server as text. + + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + The formatted RPC server. + + + + Format the RPC server as text. + + True to remove comments from the output. + Formating using C++ pseduo syntax. + The formatted RPC server. + + + + Serialize the RPC server to a stream. + + The stream to hold the serialized server. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Serialize the RPC server to a byte array. + + The serialized data. + Only use the output of this method with the Deserialize method. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + The RPC server interface UUID. + + + + + The RPC server interface version. + + + + + The RPC transfer syntax GUID. + + + + + The RPC transfer syntax version. + + + + + The number of RPC procedures. + + + + + The list of RPC procedures. + + + + + The NDR RPC server. + + + + + List of parsed complext types. + + + + + Path to the PE file this server came from (if known) + + + + + Name of the the PE file this server came from (if known) + + + + + Offset into the PE file this server was parsed from. + + + + + Name of the service this server would run in (if known). + + + + + Display name of the service this server would run in (if known). + + + + + True if the service is currently running. + + + + + List of endpoints for this service if running. + + + + + Count of endpoints for this service if running. + + + + + This parsed interface represents a client. + + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + True to parse client RPC interfaces. + Ignore symbol resolving. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Parse all RPC servers from a PE file. + + The PE file to parse. + Path to a DBGHELP DLL to resolve symbols. + Symbol path for DBGHELP + Flags for the RPC parser. + This only works for PE files with the same bitness as the current process. + A list of parsed RPC server. + + + + Deserialize an RPC server instance from a stream. + + The stream to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Deserialize an RPC server instance from a byte array. + + The byte array to deserialize from. + The RPC server instance. + The data used by this method should only use the output from serialize. No guarantees of compatibility is made between + versions of the library or the specific format used. + + + + Get the default RPC server security descriptor. + + The default security descriptor. + + + + Flags for the RPC server parser. + + + + + None. + + + + + Parse client entries. + + + + + Ignore symbols when parsing. + + + + + Try and resolve structure names. Needs private symbols. + + + + + Enable a symbol server fallback. If the copy of dbghelp doesn't have a symsrv.dll + then download from a public symbol URL to a local cache directory during symbol + resolving. + + + + + Base class for a RPC client. + + + + + Constructor. + + The interface ID. + Version of the interface. + + + + Constructor. + + The interface ID as a string. + Major version of the interface. + Minor version of the interface. + + + + Send and receive an RPC message. + + The procedure number. + The NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Unmarshal NDR buffer for the result. + + + + Method to call to check if the transport supports synchronous pipes. + + + + + Method to call to check if the transport supports asynchronous pipes. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint that we connected to. + + + + + Get the protocol sequence that we connected to. + + + + + Get or set the current Object UUID used for calls. + + + + + The RPC interface ID. + + + + + The RPC interface version. + + + + + Get the client transport object. + + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The endpoint for RPC server. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The network address for the protocol sequence. + The transport security for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The security quality of service for the connection. + + + + Connect the client to a RPC endpoint. + + The protocol sequence for the transport. + The endpoint for the protocol sequence. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. + The security quality of service for the port. + + + + Connect the client to a RPC endpoint. + + The binding string for the RPC server. + The transport security for the connection. + + + + Connect the client to an ALPC RPC port. + + The path to the ALPC RPC port. If an empty string the endpoint will be looked up in the endpoint mapper. + + + + Connect the client to an ALPC RPC port. + + The ALPC endpoint will be looked up in the endpoint mapper. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Builder to create an RPC client from an RpcServer class. + + + + + Build a source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The C# source code file. + + + + Build a C# source file for the RPC client. + + The RPC server to base the client on. + The C# source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The code generation options, can be null. + The code dom provider, such as CSharpDomProvider + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + True to wrap complex decoders in a unique pointer. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + Name of the decoder class. Can be null or empty to use default. + Name of the encoder class. Can be null or empty to use default. + Name of the generated namespace. Null or empty specified no namespace. + The source code file. + + + + Build a source file for RPC complex types. + + The RPC complex types to build the encoders from. + The C# source code file. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + Code DOM provider to compile the assembly. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Compile an in-memory assembly for the RPC client. + + The RPC server to base the client on. + The compiled assembly. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + Code DOM provider to compile the assembly. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + True to ignore cached assemblies. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + Additional builder arguments. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Create an instance of an RPC client. + + The RPC server to base the client on. + The created RPC client. + This method will cache the results of the compilation against the RpcServer. + + + + Flags for the RPC client builder. + + + + + None. + + + + + Generate public properties on the client to create defined complex types. + + If not specified then constructors will be defined on the types themselves. + + + + Insert breakpoints into the start of every generated method. Also enables debugging. + + + + + Disable calculated correlation information. This will prevent automatic updating of array and + string lengths based on other parameters or fields. This might result in unexpected behavior or + call failures. This won't disable correlations for union types or constant correlations. + + + + + Don't emit any namespace, normally not specifying a namespace will auto-generate one. + + + + + Output FC_CHAR as if the original compiler had specified unsigned char types. Basically converts + System.SByte to System.Byte where needed which makes the methods easier to use. + + + + + Return ref/out parameters via a structure rather than requiring ref/out parameters in client + methods. + + + + + When using StructureReturn hide the original out/ref methods. + + + + + Generate encode/decode methods for complex types. + + + + + Exclude any text in the source code which can change between generations. + + + + + Wrap complex type decoders with a unique pointer. + + + + + Marshal pipe parameters using arrays. + + + + + Arguments for the RPC client builder. + + + + + Builder flags. + + + + + The namespace for the client class. + + + + + The class name of the client. + + + + + The class name of the complex type encoding class. + + + + + The class name of the complex type decoder class. + + + + + Enable debugging on built code. + + + + + GetHashCode implementation. + + The hash code. + + + + Equals implementation. + + The object to compare against. + True if the object is equal. + + + + Response data from an RPC client call. + + + + + The marshaled NDR data from the response. + + + + + Any object handles returned in the response. (only for ALPC). + + + + + Indicates the NDR data representation for the response. + + + + + Class to represent details about a server process. + + + + + The server process ID. + + + + + The server session ID. + + + + + The name of the process. + + + + + Get the process image path. + + + + + Overridden ToString method. + + + + + + Some addition internal utilities for RPC code. + + + + + Specify RPC trace level. + + Specify the RPC trace level. + This dumps NDR data. Verbose dumps the binary data. + + + + Specify RPC transport trace level. + + Specify the RPC transport trace level. + Verbose dumps the transport binary data. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to check for NULL. + + The type to check. + The object to check. + The name of the value to check. + The checked value. + + + + Helper to dereference a type. + + The type to dereference. + The value to dereference. + The dereferenced result. + + + + Helper to perform a plus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a minus unary operation. + + The value to apply the operator to. + The result. + + + + Helper to perform a complement unary operation. + + The value to apply the operator to. + The result. + + + + Perform a ternary operation. + + The condition to evaluate as != 0. + The result if true. + The result if false. + The result. + + + + Perform ADD. + + The left operand. + The right operand. + The result. + + + + Perform SUB. + + The left operand. + The right operand. + The result. + + + + Perform MUL. + + The left operand. + The right operand. + The result. + + + + Perform DIV. + + The left operand. + The right operand. + The result. + + + + Perform MOD. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise AND. + + The left operand. + The right operand. + The result. + + + + Perform Bitwise OR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise XOR. Needed as Code DOM doesn't support XOR. + + The left operand. + The right operand. + The result. + + + + Perform bitwise LEFTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform bitwise RIGHTSHIFT. + + The left operand. + The right operand. + The result. + + + + Perform logical AND. + + The left operand. + The right operand. + The result. + + + + Perform logical OR. + + The left operand. + The right operand. + The result. + + + + Perform EQUAL. + + The left operand. + The right operand. + The result. + + + + Perform NOTEQUAL. + + The left operand. + The right operand. + The result. + + + + Perform GREATER. + + The left operand. + The right operand. + The result. + + + + Perform GREATEREQUAL. + + The left operand. + The right operand. + The result. + + + + Perform LESS. + + The left operand. + The right operand. + The result. + + + + Perform LESSEQUAL. + + The left operand. + The right operand. + Returns left LESSEQUAL right. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The value + True if value != 0. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Convert value to a boolean. + + The nullable value + True if value has a value set. + + + + Compose a string binding from its parts. + + The object UUID. + The protocol sequence. + The network address. + The endpoint. + The options. + The composed binding string. + + + + Interface to implement an RPC client transport. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Disconnect the transport. + + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get whether the client has been authenticated. + + + + + Get the transport's authentication type. + + + + + Get the transport's authentication level. + + + + + Get information about the local server process, if known. + + + + + Get the current Call ID. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + RPC client transport over ALPC. + + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + + + + Constructor. + + The path to connect. The format depends on the transport. + The security quality of service for the connection. + Timeout for connection. + + + + Bind the RPC transport to an interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Get whether the client is connected or not. + + + + + Get the ALPC port path that we connected to. + + + + + Get the current Call ID. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get whether the transport supports synchronous pipes. + + + + + Flags to specify RPC authentication capabilities. + + + + + None. + + + + + Enable mutual authentication. + + + + + Enable a NULL session authentication. + + + + + Enable delegation of credentials if supported. + + + + + Authentication level for RPC transport. + + + + + Default. + + + + + None. + + + + + Connect only. + + + + + Call only. + + + + + Packet only. + + + + + Packet integrity. + + + + + Packer privacy and integrity. + + + + + RPC authentication type. + + + + + Default. Uses WinNT. + + + + + No authentication. + + + + + DCE private. + + + + + DCE public. + + + + + DEC public. + + + + + SPNEGO authentication. + + + + + WinNT authentication, i.e. NTLM. + + + + + Secure channel. + + + + + Kerberos. + + + + + DPA. + + + + + MSN. + + + + + Digest. + + + + + Kernel. + + + + + SPNEGO extender. + + + + + PKU2U + + + + + LiveSSP + + + + + LiveXP SSP. + + + + + CloudAP. + + + + + Netlogon. + + + + + MS Online. + + + + + Message Queue. + + + + + Interface to implement an RPC client transport factory. + + + + + Connect a new RPC client transport. + + The RPC endpoint. + The transport security for the connection. + The connected transport. + + + + Factory for RPC client transports. + + + + + Add a new transport factory. + + The protocol sequence to add. + The transport factory. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The security quality of service for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Connect a client transport from an endpoint. + + The RPC endpoint. + The transport security for the connection. + The connected client transport. + Thrown if protocol sequence unsupported. + Other exceptions depending on the connection. + + + + Base class for a DCE/RPC connected client transport. This implements the common functions + of the DCE/RPC specs for connected network based RPC transports. + + + + + Constructor. + + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the endpoint the client is connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the server process, if known. + + + + + Get whether the client has been authenticated. + + + + + Get the transports authentication type. + + + + + Get the transports authentication level. + + + + + Get the transport authentication context. + + + + + Indicates if this connection supported multiple security context. + + + + + Get the list of negotiated security context. + + + + + Get or set the current security context. + + + + + Get the current Call ID. + + + + + Get maximum receive fragment. + + + + + Get maximum send fragment. + + + + + Get association group ID. + + + + + Get whether the transport supports synchronous pipes. + + + + + Bind the RPC transport to a specified interface. + + The interface ID to bind to. + The interface version to bind to. + The transfer syntax to use. + The transfer syntax version to use. + + + + Add and authenticate a new security context. + + The transport security for the context. + The created security context. + + + + Send and receive an RPC message. + + The procedure number. + The object UUID for the call. + NDR data representation. + Marshal NDR buffer for the call. + List of handles marshaled into the buffer. + Client response from the send. + + + + Disconnect the transport. + + + + + Enable or disable bind time feature negotiation. You need to enable this to + use multiple security context. + + Should be set before connecting an RPC client. + + + + Dispose the transport. + + + + + Extended error information. + + + + + Computer name. + + + + + Process ID. + + + + + Timestamp. + + + + + Generating component. + + + + + Status code. + + + + + Detection location. + + + + + Flags. + + + + + Extra parameters. + + + + + Exception for RPC fault conditions. + + + + + Constructor. + + The RPC status code. + + + + Get extended error information. + + + + + RPC client transport over HyperV sockets. + + + + + Constructor. + + The HyperV socket endpoint to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + RPC client transport over named pipes. + + + + + Constructor. + + The NT pipe path to connect. e.g. \??\pipe\ABC. + The transport security for the connection. + + + + Dispose of the client. + + + + + Disconnect the client. + + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Class to implement a RPC client transport based on a stream. + + + + + Constructor. + + The stream to use to communicate with the transport. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Read the next fragment from the transport. + + The maximum receive fragment length. + The read fragment. + + + + Write the fragment to the transport. + + The fragment to write. + True if successfully wrote the fragment. + + + + Class to implement RPC over a stream based socket. + + + + + Constructor. + + The socket to use to communicate. + The initial maximum receive fragment length. + The initial maximum send fragment length. + The transport security for the connection. + The data representation. + + + + Disconnect the client. + + + + + Dispose of the client. + + + + + Get whether the client is connected or not. + + + + + Get the named pipe port path that we connected to. + + + + + RPC client transport over TCP/IP; + + + + + Get the server process information. + + The server process information. + + + + Constructor. + + The hostname to connect to. + The TCP port to connect to. + The transport security for the connection. + + + + Get the transport protocol sequence. + + + + + Get information about the local server process, if known. + + + + + Exception generated by the RPC transport. + + + + + Constructor. + + + + + Constructor. + + Exception message. + + + + Constructor. + + Exception message. + Inner exception. + + + + Class to represent the RPC transport security. + + + + + Security quality of service. + + + + + Authentication level. + + + + + Authentication type. + + + + + Authentication credentials. + + + + + The SPN for the authentication. + + + + + Authentication capabilities. + + + + + Constructor. + + Factory to create a non-standard authentication context. + You can use this version to create a mechanism to pass existing tokens such as pass-the-hash or sending arbitrary Kerberos tickets. + + + + Constructor. + + Security quality of service. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + True to throw on error. + The service principal name. + + + + Query the service principal name for the server. + + The binding string for the server. + The authentication service to query. + The service principal name. + + + + Class to represent an RPC transport security context. + + + + + The ID of the security context. + + + + + The RPC transport security settings. + + + + + The authentication context. + + + + + The negotiated authentication type. + + + + + The authentication level. + + + + + Dummy class to mark the old name as obsolete. + + + + + Detaches the current buffer and allocates a new one. + + The detached buffer. + The original buffer will become invalid after this call. + + + + Safe handle for a loaded library. + + + + + Constructor + + The handle to the library + True if the handle is owned by this object. + + + + Release handle. + + True if handle released. + + + + Get the address of an exported function, throw if the function doesn't exist. + + The name of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the name doesn't exist. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + True to throw on error. + Pointer to the exported function. + Thrown if the ordinal doesn't exist. + + + + Get the address of an exported function. + + The name of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get the address of an exported function from an ordinal. + + The ordinal of the exported function. + Pointer to the exported function, or IntPtr.Zero if it can't be found. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + True to throw on error. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. + The name of the function to lookup. + The delegate. + + + + Get a delegate which points to an unmanaged function. + + The delegate type. The name of the delegate is used to lookup the name of the function. + The delegate. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + + + + Parse a library's delayed import information. + + A dictionary containing the location of import information keyed against the IAT address. + + + + Get the image sections from a loaded library. + + The list of image sections. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + True to throw on error. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The type name of the resource. + The bytes for the resource. + + + + Load the resource's bytes from the module. + + The name of the resource. + The well known type of the resource. + The bytes for the resource. + + + + Get list of resource types from the loaded library. + + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The typename for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The well known type for the resources. + The list of resource types. + This always loads resource data into memory. + + + + Get list of resource types from the loaded library. + + True to load the resource data. + The list of resource types. + + + + Get list of resource types from the loaded library. + + The list of resource types. + This always loads resource data into memory. + + + + Load a string for the library's string resource table. + + The ID of the string. + True to throw on error. + The loaded string. + + + + Load a string for the library's string resource table. + + The ID of the string. + The loaded string. + + + + Increases the reference count and returns a new instance. + + + + + + Get path to loaded module. + + + + + Get the module name. + + + + + Whether this library is mapped as an image. + + + + + Whether this library is mapped as a datafile. + + + + + Get current mapped image base. + + + + + Get original image base address. + + + + + Get image entry point RVA. + + + + + Get image entry point address as mapped. + + + + + Get whether the image is 64 bit or not. + + + + + Get the image's DLL characteristics flags. + + + + + Get exports from the DLL. + + + + + Get imports from the DLL. + + + + + Return resolved API set imports for the DLL. + + + + + Get CodeView Debug Data from DLL. + + + + + Get image signing level. + + + + + Get embedded enclave configuration. + + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + True to throw on error. + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Additonal flags to pass to LoadLibraryEx + Handle to the loaded library. + + + + Load a library into memory. + + The path to the library. + Handle to the loaded library. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. + Thrown if the module can't be found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by name. + + The name of the module. + The handle to the loaded library. Returns Null if not found. + This will take a reference on the library, you should dispose the handle after use. + + + + Get the handle to an existing loading library by an address in the module. + + An address inside the module. + The handle to the loaded library, null if the address isn't inside a valid module. + This will take a reference on the library, you should dispose the handle after use. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The name of the module to pin. + + + + Pin the library into memory. This prevents FreeLibrary unloading the library until + the process exits. + + The address of the module to pin. + + + + NULL load library handle. + + + + + Represents an impersonation safe win32 exception, which resolves the win32 message when Message is called. + + + + + Constructor. + + + + + Constructor. + + Win32 error. + + + + The message for the exception. + + + + + Access rights for system audit policy. + + + + + System Audit Category. + + + + + System Audit Category. + + + + + The user for the per-user category. + + + + + System Audit Category base class. + + + + + The ID of the category. + + + + + The name of the category. + + + + + List of sub categories. + + + + + Convert to string. + + The name of the category. + + + + Set audit policy on all sub categories. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy on all sub categories. + + The flags to set. + The audit policy flags. + + + + Type of global SACL to query or set. + + + + + File type. + + + + + Key type. + + + + + Policy audit event type. + + + + + Audit policy flags. + + + + + Set unchanged. + + + + + Audit on success. + + + + + Audit on failure. + + + + + Audit nothing. + + + + + Per user policy flags. + + + + + Set unchanged. + + + + + Audit on success included. + + + + + Audit on success excluded. + + + + + Audit on failure included. + + + + + Audit on failure excluded. + + + + + Audit nothing. + + + + + Utilities for security auditing policy. + + + + + Name for the fake Audit NT type. + + + + + Get the generic mapping for directory services. + + The directory services generic mapping. + + + + Get a fake NtType for System Audit Policy. + + The fake Directory Services NtType + + + + Query the Auditing Security Descriptor. + + The security information to query. + True to throw on error. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security information to query. + The security descriptor. + + + + Query the Auditing Security Descriptor. + + The security descriptor. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the Auditing Security Descriptor. + + The security information to set. + The security descriptor to set. + The NT status code. + + + + Query the global SACL. + + The global SACL type. + True to throw on error. + The global SACL in a Security Descriptor. + + + + Query the global SACL. + + The global SACL type. + The global SACL in a Security Descriptor. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + True to throw on error. + The NT status code. + + + + Set the global SACL. + + The global SACL type. + The SACL to set in an Security Descriptor. + The NT status code. + + + + Get list of Audit Policy categories. + + True to throw on error. + The list of categories. + + + + Get list of Audit Policy categories. + + The list of categories. + + + + Get a single category. + + The category type. + The audit category. + + + + Get a single category. + + The category GUID. + The audit category. + + + + Get all per-user categories for denied users. + + True to throw on error. + The list of per-user categories. + + + + Get all per-user categories for denied users. + + The list of per-user categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + True to throw on error. + The list of categories. + + + + Get list of per-user Audit Policy categories. + + The user SID to query. + The list of categories. + + + + Get a single per-user category. + + The user SID to query. + The category type. + The audit category. + + + + Get a single per-user category. + + The user SID to query. + The category GUID. + The audit category. + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + Class representing an Audit Sub Category. + + + + + The category. + + + + + The user for the per-user category. + + + + + Class representing an Audit Sub Category. Base class. + + Enum type for the Policy flags. + + + + The ID of the sub category. + + + + + The name of the sub category. + + + + + The Current Audit Policy + + + + + Convert to string. + + The name of the subcategory. + + + + Query audit policy. + + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + True to throw on error. + The audit policy flags. + + + + Set audit policy. + + The flags to set. + The audit policy flags. + + + + Authentication token constructed from ASN1. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The ASN1 authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Base class for authentication credentials. + + + + + Security data representation. + + + + + Native representation. + + + + + Network representation. + + + + + Credital flags. + + + + + Inbound credentials. + + + + + Outbound credentials. + + + + + Both credentials direction. + + + + + Default. + + + + + Auto logon restricted. Don't use automatic credentials. + + + + + Only process policy. + + + + + Initialize context request flags. + + + + + Initialize context return flags. + + + + + Access context request flags. + + + + + Accept context return flags. + + + + + Security package capability flags. + + + + + Supports integrity on messages + + + + + Supports privacy (confidentiality) + + + + + Only security token needed + + + + + Datagram RPC support + + + + + Connection oriented RPC support + + + + + Full 3-leg required for re-auth. + + + + + Server side functionality not available + + + + + Supports extended error msgs + + + + + Supports impersonation + + + + + Accepts Win32 names + + + + + Supports stream semantics + + + + + Can be used by the negotiate package + + + + + GSS Compatibility Available + + + + + Supports common LsaLogonUser + + + + + Token Buffers are in ASCII + + + + + Package can fragment to fit + + + + + Package can perform mutual authentication + + + + + Package can delegate + + + + + Supports integrity readonly checksum buffers. + + + + + Package supports restricted callers + + + + + This package extends SPNEGO, there is at most one + + + + + This package is negotiated under the NegoExtender + + + + + This package receives all calls from appcontainer apps + + + + + this package receives calls from appcontainer apps + if the following checks succeed + 1. Caller has domain auth capability or + 2. Target is a proxy server or + 3. The caller has supplied creds + + + + + This package is running with Credential Guard enabled + + + + + this package supports reliable detection of loopback + 1.) The client and server see the same sequence of tokens + 2.) The server enforces a unique exchange for each + non-anonymous authentication. (Replay detection) + + + + + Impersonation context for a server authentication. + + + + + Base class which represents an authentication key. + + + + + An authentication package entry. + + + + + Authentication package name for MSV1.0 + + + + + Authentication package name for Kerberos. + + + + + Authentication package name for Negotiate. + + + + + Authentication package name for NTLM. + + + + + Authentication package name for Digest. + + + + + Authentication package name for SChannel. + + + + + Authentication package name for CredSSP. + + + + + Capabilities of the package. + + + + + Version of the package. + + + + + RPC DCE ID. + + + + + Max token size. + + + + + Name of the package. + + + + + Comment for the package. + + + + + Get authentication packages. + + The list of authentication packages. + + + + Get authentication package names. + + The list of authentication package names. + + + + Get an authentication package by name. + + The name of the package. + The authentication package. + + + + Base class to represent an authentication token. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Convert the authentication token to a byte array. + + The byte array. + + + + Get the length of the token in bytes. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Constructor. + + The authentication token data. + + + + Parse a structured authentication token. + + The authentication context. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Parse a structured authentication token. + + The package name to parse as. + True if the token is from a client. + The token to parse. + The parsed authentication token. If can't parse any other format returns + a raw AuthenticationToken. + + + + Class to represent a client authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attribute flags. + + + + + Current return attribute flags. + + + + + Current data representation. + + + + + Current target name. + + + + + Current channel binding. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get the last token status for the client context. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + Specify to default initialize the context. Must call Continue with an auth token to initialize. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + Optional channel binding token. + + + + Constructor. + + Credential handle. + Request attribute flags. + Target SPN (optional). + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Continue the authentication with the server token. + + The server token to continue authentication. + + + + Continue the authentication.. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The server token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Additional output buffers, does not need to include the token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication without any token. + + Input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the initialize call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a credential handle. + + + + + Name of the authentication package used. + + + + + Expiry of the credentials. + + + + + Constructor. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional authentication data. + + + + Create a new credential handle. + + User principal. + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Optional authentication ID for the user. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + Optional credentials. + The credential handle. + + + + Create a new credential handle. + + The package name. + Credential user flags. + The credential handle. + + + + Dispose. + + + + + Finalizer. + + + + + Credentials for the CredSSP package. + + This is only needed if you must have both schannel and user credentials. Otherwise use UserCredentials or SchannelCredentials. + + + + Constructor. + + The credentials for the Schannel connection. + The credentials for the user. + + + + Constructor. + + The credentials for the user. + + + + Authentication token for a digest token. + + + + + The digest token as a string. + + + + + Format the authentication token. + + + + + + An encrypted message. + + + + + The encrypted message. + + + + + The signature for the message. + + + + + Constructor. + + The encrypted message. + The signature for the message. + + + + Class to represent an exported security context. + + + + + The name of the package for this security context. + + + + + The serialized context. + + + + + The context's token. + + + + + Dispose the exported context. + + + + + A class which represents an GSS-API Token. + + + + + Interface for authentication contexts. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Expiry of the authentication. + + + + + Session key for the context. + + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Decrypt a message for this context. + + The messages to decrypt. + The signature for the messages. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Query the context's package info. + + The authentication package info, + + + + Get the name of the authentication package. + + + + + Continue the authentication with the token. + + The token to continue authentication. + + + + Continue the authentication.. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + + + + Continue the authentication. + + The token to continue authentication. + Additional input buffers for the continue, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Interface for a client authentication context. + + + + + Get the last token status for the client context. + + + + + Placeholder interface for a server authentication context. + + + + + Utilities for building Kerberos structures. + + + + + Class to represent a Kerberos AP Reply. + + + + + Encrypted mutual authentication data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Encrypted part for AP-REP messages. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Options for AP Request + + + + + None. + + + + + Use Session Key. + + + + + Mutual authentication required. + + + + + Class to represent a Kerberos AP Request. + + + + + AP Request Options. + + + + + The Kerberos Ticket. + + + + + Authenticator data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + A single kerberos key. + + + + + The Key encryption type. + + + + + The key. + + + + + The key name type. + + + + + The Realm for the key. + + + + + The name components for the key. + + + + + Principal name as a string. + + + + + Timestamp when key was created. + + + + + Key Version Number (KVNO). + + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + The Realm for the key. + The name components for the key. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Constructor. + + The Key encryption type. + The key as a hex string. + The key name type. + Principal for key, in form TYPE/name@realm. + Timestamp when key was created. + Key Version Number (KVNO). + + + + Derive a key from a password. + + Not all encryption types are supported. + The key encryption to use. + The password to derice from. + Iterations for the password derivation. + The key name type. + Principal for key, in form TYPE/name@realm. + Salt for the key. + Key Version Number (KVNO). + + + + + Authentication Token for Kerberos. + + + + + Protocol version. + + + + + Message type. + + + + + Parse bytes into a kerberos token. + + The kerberos token in bytes. + The Kerberos token. + + + + Try and parse data into an Kerberos authentication token. + + The data to parse. + The Kerberos authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Class to represent an unencrypted kerberos authenticator. + + + + + Authenticator version. + + + + + Client realm. + + + + + Client name. + + + + + Checksum value. + + + + + Client uS. + + + + + Client time. + + + + + Subkey. + + + + + Sequence number. + + + + + Authorization data. + + + + + Type of Authorization Data. + + + + + Class representing Kerberos authentication data. + + + + + Type of authentication data. + + + + + Data bytes. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Flags for the AD-AUTH-DATA-AP-OPTIONS authorization data. + + + + + Class to represent AD_ETYPE_NEGOTIATION type. + + + + + List of supported encryption types. + + + + + Class to represent a KERB_LOCAL authorization data value. + + + + + The security context identifier for the KERB_LOCAL value. + + + + + Class to represent AD_WIN2K_PAC type. + + + + + List of PAC entries. + + + + + Source of a set of claims. + + + + + From Active Directory. + + + + + From a certificate. + + + + + A single claim set. + + + + + The source of the claims array. + + + + + The list of claim attributes. + + + + + Class representing a Claims Set in the PAC. + + + + + List of claims arrays. + + + + + Class to represent PAC Client Info. + + + + + Client ID. + + + + + Name of client. + + + + + Class to represent PAC Device Info. + + + + + Sid of the Device. + + + + + Primary group SID. + + + + + List of account groups. + + + + + List of extra SIDs. + + + + + List of domain groups. + + + + + Type for the PAC Entry. + + + + + Single PAC Entry. + + + + + Type of PAC entry. + + + + + The PAC data. + + + + + User account control flags. + + + + + User flags for kerberos authentication. + + + + + Class to represent PAC Logon Information. + + + + + Logon time. + + + + + Logoff time. + + + + + Kick off time. + + + + + Time password last set. + + + + + Time password can change. + + + + + Time password must change. + + + + + Effective name. + + + + + Full name. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory path. + + + + + Home directory drive. + + + + + Logon count. + + + + + Bad password count. + + + + + User SID. + + + + + Primary group SID. + + + + + Group list. + + + + + User flags. + + + + + User session key. + + + + + Logon server name. + + + + + Logon domain name. + + + + + Logon domain sid. + + + + + Extra SIDs. + + + + + User account control flags. + + + + + Resource domain group SID. + + + + + Resource groups. + + + + + Class to represent a PAC signature. + + + + + Signature type. + + + + + Signature. + + + + + Read-only Domain Controller Identifier. + + + + + Flags for the UPN_DNS_INFO. + + + + + No flags. + + + + + The user has no UPN. + + + + + Class to represent UPN_DNS_INFO. + + + + + Flags. + + + + + The User Principal Name. + + + + + The DNS Domain Name. + + + + + Flags for KerberosAuthorizationDataRestrictionEntry + + + + + Full UAC token. + + + + + Limited UAC token. + + + + + Class to represent the KERB_AD_RESTRICTION_ENTRY AD type. + + + + + Flags. + + + + + Token IL. + + + + + Machine ID. + + + + + Class to represent the AD-AUTH-DATA-TARGET-NAME authorization data. + + + + + The target name. + + + + + Class to represent a Kerberos Checksum. + + + + + Type of kerberos checksum. + + + + + The checksum value. + + + + + Flags for GSSAPI Checksum. + + + + + A kerberos checksum in GSS API Format. + + + + + Channel binding hash. + + + + + Flags for checksum. + + + + + Delegation option identifier. + + + + + KRB_CRED structure when in delegation. + + + + + Additional extension data. + + + + + Kerberos Checksum Type. + + + + + Class representing a KRB-CRED structure. + + + + + List of tickets in this credential. + + + + + Encrypted part contains sesssion keys etc. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent Kerberos Encrypted Data. + + + + + Encryption type for the CipherText. + + + + + Key version number. + + + + + Cipher Text. + + + + + Kerberos Encryption Type. + + + + + Class to represent a Kerberos Error. + + + + + Client time. + + + + + Client micro-seconds. + + + + + Server time. + + + + + Server micro-seconds. + + + + + Error code. + + + + + Client realm. + + + + + Client name. + + + + + Server realm. + + + + + Server name, + + + + + Error text. + + + + + Error data. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new KRB-ERROR authentication token. + + Optional client time. + Server time. + Error code. + Optional client realm. + Optional client name. + Server realm + Server name. + Optional error text. + Optional error data. + The KRB-ERROR authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Kerberos Error Type. + + + + + Class to represent a cached external ticket. + + + + + Service name. + + + + + Target name. + + + + + Client name. + + + + + Domain name. + + + + + Target domain name. + + + + + Alt target domain name. + + + + + Session key for ticket. + + + + + Ticket flags. + + + + + Additional reserved flags. + + + + + Key expiration time. + + + + + Ticket start time. + + + + + Ticket end time. + + + + + Ticket renew time. + + + + + Time skew. + + + + + Ticket. + + + + + Type of Kerberos Host Address. + + + + + Class representing a Kerberos Host Address. + + + + + Type of host address. + + + + + Address bytes. + + + + + ToString Method. + + The formatted string. + + + + A set of Kerberos Keys. + + + + + Get keys which match the encryption type. + + The encryption type. + The list of keys which match the encryption type. + + + + Add a key to the key set. + + The key to add. + True if the key was added, false if the key already existed. + + + + Remove a key from the key set. + + The key to remove. + True if the key was removed. + + + + Find a key based on various parameters. + + The encryption type. + The name type. + The principal. + The key version. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The key set. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The key set. + Throw if invalid file. + + + + Constructor. + + + + + Constructor. + + The single kerberos key. + + + + Constructor. + + A list of kerberos keys. + + + + Key usage for kernel encryption. + + + + + Kerberos Message Type. + + + + + Kerberos Name Type. + + + + + Kerberos Pre-Authentication Data Types. + + + + + A Kerberos Principal Name. + + + + + The name type. + + + + + The names for the principal. + + + + + Full name. + + + + + ToString method. + + String of the object. + + + + Get principal name with a realm. + + The realm for the principal. + The principal. + + + + Constructor. + + The type of the principal name. + The list of names for the principal. + + + + Class to represent a User to User TGT Reply. + + + + + The Kerberos Ticket. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Create a new TGT-REP authentication token. + + The TGT ticket to embed in the token. + The + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a User to User TGT Request. + + + + + Realm. + + + + + Server name. + + + + + Format the Authentication Token. + + The Formatted Token. + + + + Create a new TGT-REQ authentication token. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Create a new TGT-REQ authentication token without the GSS-API wrapper. + + Optional realm string. + Optional server name. + The new TGT-REQ authentication token. + + + + Try and parse data into an ASN1 authentication token. + + The data to parse. + The Negotiate authentication token. + Parsed DER Values. + + + + Class to represent a Kerberos ticket. + + + + + Version number for the ticket. + + + + + Realm. + + + + + Server name. + + + + + Encrypted data for the ticket. + + + + + Get the principal for the ticket. + + + + + Indicates that the ticket has been decrypted. + + + + + Decrypt the kerberos ticket. + + The Kerberos key set containing the keys. + The key usage for the decryption. + The decrypted kerberos ticket. + + + + Format the ticket to a string. + + The ticket as a string. + + + + Convert the ticket to an array. + + The ticket as an array. + + + + Class to query the Kerberos Ticket Cache from LSASS. + + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + True to throw on error. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + True to only query for cached tickets. + The Kerberos Ticket. + + + + Get a Kerberos Ticket. + + The target service for the Ticket. + The Kerberos Ticket. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + True to throw on error. + The list of cached tickets. + + + + Query Kerberos Ticket cache. + + The Logon Session ID to query. + The list of cached tickets. + + + + Query Kerberos Ticket cache for the current logon session. + + The list of cached tickets. + + + + Flags for a Kerberos Ticket. + + + + + Class to represent a Decrypted Kerberos ticket. + + + + + Ticket flags. + + + + + Client Realm. + + + + + Client name. + + + + + Authentication time, + + + + + Start time. + + + + + End time. + + + + + Renew till time. + + + + + The kerberos session key. + + + + + The ticket transited type information. + + + + + List of host addresses for ticket. + + + + + List of authorization data. + + + + + The supported transited encoding types. + + + + + None. + + + + + X.500 Compress. + + + + + Class to represent a Kerberos Transiting Encoding. + + + + + Transited encoding type. + + + + + Transited encoding data. + + + + + Utilities for Kerberos authentication. + + + + + Read keys from a MIT KeyTab file. + + The file stream. + The list of keys. + Throw if invalid file. + + + + Read keys from a MIT KeyTab file. + + The file path. + The list of keys. + Throw if invalid file. + + + + Write keys to a MIT KeyTab file. + + The file stream. + List of key entries. + + + + Write keys to a MIT KeyTab file. + + The file path. + List of key entries. + + + + Generate an MIT KeyTab file. + + List of key entries. + The keytab file as bytes. + + + + Class to represent a Local Logon Session. + + + + + Logon/Authentication ID for session. + + + + + Username. + + + + + Logon domain. + + + + + Get the FQ User Name. + + + + + Authentication package. + + + + + Logon type. + + + + + Session ID. + + + + + User SID. + + + + + Logon Time. + + + + + Logon Server. + + + + + DNS Domain Name. + + + + + User Principal Name. + + + + + User Flags. + + + + + Last successful logon. + + + + + Last failed logon. + + + + + Count of failed logon attempts. + + + + + Logon script path. + + + + + Profile path. + + + + + Home directory. + + + + + Home directory drive. + + + + + Logoff time. + + + + + Kickoff Time. + + + + + Time password last set. + + + + + Password can change. + + + + + Password must change. + + + + + Get a logon session. + + The logon session ID. + True to thrown on error. + The logon session. + + + + Get the logon session LUIDs + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Get the logon sessions. + + True throw on error. + The list of logon sessions. Only returns ones you can access. + + + + Class to represent an LSA logon handle. + + + + + Connect to the LSA untrusted. + + True to throw on error. + The LSA logon handle. + + + + Connect to the LSA untrusted. + + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + True to throw on error. + The LSA logon handle. + + + + Connect to LSA and register as a logon process. + + The arbitrary name of the process. + The LSA logon handle. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + True to throw on error. + The LSA logon result. + + + + Logon a user. + + The type of logon. + The authentication package to use. + The name of the origin. + The token source context. + The authentication credentials buffer. + Additional local groups. + The LSA logon result. + + + + Dispose of the LSA logon handle. + + + + + Result from an LsaLogonUser call. + + + + + The user's token. + + + + + The user's profile information. Format depends on the authentication package. + + + + + The authentication ID of the logon session. + + + + + Paged pool quota. + + + + + Non paged pool quota. + + + + + Minimum working set size. + + + + + Maximum working set size. + + + + + Page file limit. + + + + + Process time limit. + + + + + Dispose the LSA logon result. + + + + + SPNEGO Authentication Token. + + + + + The negotiated authentication token. + + + + + Optional message integrity code. + + + + + Decrypt the Authentication Token using a keyset. + + The set of keys to decrypt the + The decrypted token, or the same token if nothing could be decrypted. + + + + Format the authentication token. + + The token as a formatted string. + + + + Parse bytes into a negotiate token. + + The negotiate token in bytes. + The Negotiate token. + + + + Try and parse data into an Negotiate authentication token. + + The data to parse. + The Negotiate authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Flags for negotiation context. + + + + + Class to represent the negTokenInit message in SPNEGO. + + + + + List of supported negotiation mechanisms. + + + + + Context flags. + + + + + State of the Negotiate state. + + + + + Negotiate completed. + + + + + Negotiate incomplete. + + + + + Negotiate rejected. + + + + + Request Message Integrity Code. + + + + + Class to represent the negTokenResp message in SPNEGO. + + + + + Supported mechanism for the token, optional. + + + + + Current state of the negotiation. + + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv1. + + + + + Domain name. + + + + + Workstation name. + + + + + Username. + + + + + NTLM version. + + + + + Encrypted session key. + + + + + LM Challenge Response. + + + + + LM Challenge Response. + + + + + Message integrity code. + + + + + Message integrity code offset into the token data. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM AUTHENTICATE token for NTLMv2. + + + + + NT Proof Response. + + + + + Challenge version. + + + + + Maximum challenge version. + + + + + Reserved field. + + + + + Reserved field. + + + + + Timestamp. + + + + + Client challenge. + + + + + Reserved field. + + + + + NTLM Target Information. + + + + + Flags for NTLM negotiation. + + + + + NTLM message type. + + + + + Base class to represent an NTLM authentication token. + + + + + Type of NTLM message. + + + + + NTLM negotitation flags. + + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Try and parse data into an NTLM authentication token. + + The data to parse. + The NTLM authentication token. + + + + The type of the AV_PAIR. + + + + + MS AV Flags. + + + + + An NTLM AV_PAIR. + + + + + The type of the AV Pair value. + + + + + An NTLM AV_PAIR with a string value. + + + + + The string value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a timestamp value; + + + + + The timestamp value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a bytes value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The value. + + + + + ToString method. + + Pair as a string. + + + + An NTLM AV_PAIR with a flags value. + + + + + The the Z4 data. + + + + + Custom data blob. + + + + + Machine ID. + + + + + ToString method. + + Pair as a string. + + + + Class to represent an NTLM CHALLENGE token. + + + + + Target name. + + + + + Server challenge. + + + + + Reserved. + + + + + NTLM version. + + + + + NTLM Target Information. + + + + + Format the authentication token. + + The formatted token. + + + + Class to represent an NTLM NEGOTIATE token. + + + + + Domain name. + + + + + Workstation name. + + + + + NTLM version. + + + + + Format the authentication token. + + The formatted token. + + + + Algorithm identifiers for the crypto APIs and Schannel. + + + + + Authentication token for Schannel and CredSSP. + + This is a simple parser for the TLS record format. + + + + List of TLS records. + + + + + Format the authentication token. + + The token as a formatted string. + + + + Try and parse data into an SChannel authentication token. + + The data to parse. + The SChannel authentication token. + True if this is a token from a client. + The token count number. + True if parsed successfully. + + + + Negotiated connection information for Schannel. + + + + + The protocol used by Schannel. + + + + + The negotitated cipher algorithm. + + + + + The negotiated cipher strength in bits. + + + + + The negotiated hash algorithm. + + + + + The negotiated hash string. + + + + + The negotiated key exchange algorithm. + + + + + The negotiated key exchange strength. + + + + + Credentials for the Schannel package. + + + + + Lifespan of a session in milliseconds. + + + + + Specify flags for credentials. + + + + + Specify the supported protocols. + + + + + Set the minimum cipher strength. + + + + + Set the maximum cipher strength. + + + + + Add a certificate the the credentials. This should contain a private key. + + The certificate to add. + + + + Add an algorithm type to the credentials. + + The algorithm type. + + + + Dispose the credentials. + + + + + Flags for the Schannel credentials. + + + + + Protocol type for Schannel. + + + + + Flags for message encryption. + + + + + None. + + + + + Wrap out of bound data. + + + + + Wrap but don't encrypt. + + + + + Class to represent a server authentication context. + + + + + The current authentication token. + + + + + Whether the authentication is done. + + + + + Current request attributes. + + + + + Current data representation. + + + + + Current channel bindings. + + + + + Current return attributes. + + + + + Current status flags. + + + + + Expiry of the authentication. + + + + + Get the client name supplied by the Client. + + + + + Get the Session Key for this context. + + + + + Get the maximum signature size of this context. + + + + + Get the size of the security trailer for this context. + + + + + Size of any header when using a stream protocol such as Schannel. + + + + + Size of any trailer when using a stream protocol such as Schannel. + + + + + Number of buffers needed when using a stream protocol such as Schannel. + + + + + Maximum message size when using a stream protocol such as Schannel. + + + + + Preferred block size when using a stream protocol such as Schannel. + + + + + Get the name of the authentication package. + + + + + Get connection information for the schannel connection. + + + + + Get the local certificate. Only used for Schannel related authentication. + + + + + Get the remote certificate. Only used for Schannel related authentication. + + + + + Get whether the authentication context is for loopback. + + + + + Get or set whether the context owns the credentials object or not. If true + then the credentials are disposed with the context. + + + + + Get an access token for the authenticated user. + + The user's access token. + + + + Impersonate the security context. + + The disposable context to revert the impersonation. + + + + Continue the authentication with the client token. + + The client token to continue authentication. + + + + Continue the authentication.. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + + + + Continue the authentication. + + The client token to continue authentication. + Specify additional input buffers, does not need to include the token. + Specify additional output buffers, does not need to include the token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + True to throw on error. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. + + Additional input buffers for the continue. Does not contain a token. + Specify additional output buffers, does not need to include the token. + This sends the input buffers directly to the initialize call, it does not contain any token. + + + + Continue the authentication. Will not pass any buffers to the accept call. + + + + + Make a signature for this context. + + The message buffers to sign. + The sequence number. + The signature blob. + + + + Make a signature for this context. + + The message to sign. + The sequence number. + The signature blob. + + + + Verify a signature for this context. + + The message to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Verify a signature for this context. + + The messages to verify. + The signature blob for the message. + The sequence number. + True if the signature is valid, otherwise false. + + + + Encrypt a message for this context. + + The message to encrypt. + Quality of protection flags. + The encrypted message. + The sequence number. + + + + Encrypt a message for this context. + + The messages to encrypt. + Quality of protection flags. + The signature for the messages. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + The sequence number. + + + + Encrypt a message for this context with no specific signature. + + The messages to encrypt. + Quality of protection flags. + The sequence number. + The messages are encrypted in place. You can add buffers with the ReadOnly flag to prevent them being encrypted. + If you need to return a signature then it must be specified in a buffer. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The signature for the messages. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + + + + Decrypt a message for this context. + + The messages to decrypt. + The sequence number. + The messages are decrypted in place. You can add buffers with the ReadOnly flag to prevent them being decrypted. + If you need to specify a signature you need to add a buffer. + + + + Decrypt a message for this context. + + The message to decrypt. + The sequence number. + The decrypted message. + + + + Query the context's package info. + + The authentication package info, + + + + Export and delete the current security context. + + The exported security context. + The security context will not longer be usable afterwards. + + + + Constructor. + + Credential handle. + Request attribute flags. + Optional channel binding token. + Data representation. + + + + Constructor. + + Credential handle. + Request attribute flags. + Data representation. + + + + Constructor. + + Credential handle. + + + + Dispose the client context. + + + + + Finalizer. + + + + + Class to represent a service principal name. + + + + + SPN service class. + + + + + SPN service name. + + + + + SPN instance name. + + + + + SPN instance port. + + + + + SPN referrer. + + + + + Constructor. + + The service class name. + The name of the instance. + + + + Parse an SPN string to a class. + + The SPN string. + The parsed class. + Thrown in invalid SPN. + + + + Try and parse an SPN string to a class. + + The SPN string. + The result class. + True if the SPN was parsed successfully. + Thrown in invalid SPN. + + + + Convert SPN to a string. + + The SPN string. + + + + Class to hold user credentials. + + + + + The user name. + + + + + The domain. + + + + + The password as a secure string. + + + + + Constructor. + + Username. + Domain name. + Password. + + + + Set the password as in plain text. + + The password in plain text. + + + + Constructor. + + Username. + Domain name. + Password. + + + + Constructor. + + Username. + Domain name. + + + + Constructor. + + Username. + + + + Constructor. + + + + + Dispose method. + + + + + Class to represent a single authenticode certificate entry. + + + + + The list of certificates in the entry. + + + + + Whethe the entry contains page hashes. + + + + + Utilities for authenticode. + + + + + Get certificates from a PE file. + + The PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file. + True the throw on error. + The list of authenticode certificate entries. + + + + Get certificates from a PE file. + + The path to the PE file, native path format. + The list of authenticode certificate entries. + + + + Gets wether the PE file has page hash entries. + + The path to the PE file, native path format. + True if the file contains page hashes. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + True to throw on error. + The ELAM information if present. + + + + Query ELAM information from a driver's resource section. + + The path to the file. + The ELAM information if present. + + + + Get the VSM enclave configuration. + + The path to the file. + True to throw on error. + The VSM enclave configuration. + + + + Get the VSM enclave configuration. + + The path to the file. + The VSM enclave configuration. + + + + ELAM information. + + + + + The hash of the certificate. + + + + + The hash algorithm. + + + + + List of optional EKUs. + + + + + Overridden ToString method. + + The ELAM information as a string. + + + + Class to represent a VSM enclave configuration. + + + + + Minimum required configuration size. + + + + + Policy flags. + + + + + List of enclave imports. + + + + + Family ID. + + + + + Image ID. + + + + + Image version. + + + + + Security version. + + + + + Size of the enclave. + + + + + Number of threads for the enclave. + + + + + Enclave flags. + + + + + Is the enclave debuggable. + + + + + Is this a primary image. + + + + + Path to the image file. + + + + + Name of the image file. + + + + + ToString method. + + The object as a string. + + + + Class to represent an enclave import. + + + + + Match type for the import. + + + + + Minimum security version. + + + + + Unique or author ID. + + + + + Family ID. + + + + + Image ID. + + + + + Import name. + + + + + ToString method. + + The name of the import. + + + + Image policy entry. + + + + + Type of entry. + + + + + Policy ID. + + + + + Value of entry. + + + + + Image policy ID. + + + + + Class to represnt image policy metadata. + + + + + Version of the metadata. + + + + + The ID of the trustlet. + + + + + The optional policies for the trustlet. + + + + + Overridden ToString method. + + The object as a string. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + True to throw on error. + The image policy metadata. + + + + Extract image policy metadata from an image file. + + The path to the image file. Should be a win32 path. + The image policy metadata. + + + + Access check result from AuthZ. + + + + + The Win32 error code from the access check. + + + + + Class to represent an AuthZ client context. + + + + + Get AuthZ user + + + + + Get AuthZ context groups. + + + + + Get AuthZ context restricted SIDs. + + + + + Get AuthZ context device groups. + + + + + Get AuthZ context capability SIDs. + + + + + Get AuthZ context's security attributes + + + + + Get AuthZ context's device claims. + + + + + Get AuthZ context's user claims. + + + + + Get list of privileges for the AuthZ context. + + The list of privileges + Thrown if can't query privileges + + + + Get AppContainer SID. + + + + + Indicates if this context is connected to a remote access server. + + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + True to throw on error + The NT status code. + + + + Set AppContainer Information to Context. + + The package SID. + List of capabilities. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + True to throw on error. + The NT status code. + + + + Modify groups in the context. + + The type of group to modify. + The list of groups to modify. + The list of operations. Should be same size of group list. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The attributes for the SIDs. + The operation for the SIDs. + + + + Modify groups in the context. + + The type of group to modify. + The list of SIDs to modify. + The operation for the SIDs. + + + + Add a SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a Device SID to the context. + + The SID to add. + + + + Add a list of SIDs to the context. + + The list of SIDS. + + + + Get list of groups for the AuthZ context. + + The group type. + True to throw on error. + The list of groups. + + + + Get list of groups for the AuthZ context. + + The group type. + The list of groups. + + + + Get the user from the AuthZ context. + + True to throw on error. + The user group information. + + + + Get the AppContainer SID from the AuthZ context. + + True to throw on error. + The AppContainer SID. + + + + Get AuthZ context's security attributes + + Specify the type of security attributes to query. + Throw on error. + The security attributes. + + + + Get token privileges. + + True to throw on error. + The list of privileges. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + True to throw on error. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Perform an Access Check. + + The security descriptor for the check. + Optional list of security descriptors to merge. + The desired access. + Optional Principal SID. + Optional list of object types. + NT Type for access checking. + The list of access check results. + The list of object types is restricted to 256 entries for remote access checks. + + + + Dispose client context. + + + + + Clone the current context. + + True to throw on error. + The new client context. + + + + Clone the current context. + + The new client context. + + + + Flags to initialize a client context from a SID. + + + + + None. + + + + + Skip gathering token groups. + + + + + Require S4U logon. + + + + + Computer token privileges. + + + + + Specify the type of SIDs. + + + + + Normal Group SIDs. + + + + + Restricted SIDs. + + + + + Device Group SIDs. + + + + + Capability SIDs. + + + + + Delegate to handle a callback ACE. + + The ACE to handle. + True if the ACE should be processed. + + + + Class to represent a AuthZ Resource Manager. + + + + + The name of the resource manager if any. + + + + + Indicates if this resource manager is connected to a remote access server. + + + + + Dispose the resource manager. + + + + + Create a client context from a Token. + + The token to create the context from. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The token to create the context from. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + True to throw on error. + The created client context. + + + + Create a client context from a Token. + + The sid to create the context from. + Flags for intialization. + The created client context. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + True to throw on error. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. + + The name of the resource manager, optional. + Optional flags for the resource manager. + Optional callback to handle callback ACEs. + The created AuthZ resource manager. + + + + Create a new AuthZ resource manager. Will not enable auditing. + + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The RPC string binding for the server. + The SPN for the server. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The address of the server. + The SPN for the server. + Specify the type of + True to throw on error. + The created AuthZ resource manager. + + + + Create a remote AuthZ resource manager from a raw binding string. + + The network address of the server. + The SPN for the server. + Specify the type of + The created AuthZ resource manager. + + + + Initialization flags for resource manager. + + + + + None + + + + + Disable auditing. + + + + + Initialize using impersonation token. + + + + + Disable central access policies. + + + + + Type of remote service to access. + + + + + Default, no evaluation of CAPs. + + + + + Evaluates CAPs. + + + + + Security Attribute type. + + + + + Token Security Attributes. + + + + + Device Claims. + + + + + User Claims. + + + + + SID operation for an AuthZ client context. + + + + + None. + + + + + Replace all SIDs. + + + + + Add SIDs. + + + + + Delete SIDs. + + + + + Replace SIDs. + + + + + Progress invoke setting for tree security. + + + + + The source of inheritance for a resource. + + + + + The depth between the resource and the parent. + + + + + The name of the ancestor. + + + + + The security descriptor if accessible. + + + + + The original ACE which was inherited. + + + + + The SID of the original ACE. + + + + + Access mask as a formatted string. + + + + + Generic access mask as a formatted string. + + + + + The type of the ACE. + + + + + The object type of the ACE. + + + + + The inherited object type. + + + + + Enumeration for object type. + + + + + Tree security mode. + + + + + Progress function for tree named security info. + + The name of the object. + The operation status. + The current invoke setting. + True if security is set. + The invoke setting. Return original invoke_setting if no change. + + + + Base security buffer storage. + + + + + Type of the security buffer. + + + + + Is the buffer read-only. + + + + + Is the buffer read-only with checksum. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Overridden ToString method. + + The buffer as a string. + + + + Class to represent a security buffer we expect to be allocated by the SSPI. + + + + + Constructor. + + The type of the buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer for a channel binding. + + + + + Constructor. + + The channel bindings token. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can be an input and output. + + If you create with the ReadOnly or ReadOnlyWithCheck types then the + array will not be updated. + + + + Constructor. + + The type of buffer. + The data for the input. + + + + Constructor. + + The type of buffer. + The data for the input. + The offset into the array. + Number of bytes in the input. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which can only be an output. + + + + + Constructor. + + The type of buffer. + The size of the output buffer. + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + A security buffer which takes a raw pointer. The lifetime of the pointer + should be managed manually by the caller. + + + + + Constructor. + + The type of buffer. + The raw pointer. + The size of the raw pointer. + + + + The size of the buffer. + + + + + The pointer for the buffer. The lifetime needs to be manually managed. + + + + + This will free pointer using the SSPI APIs. Used to release automatically allocated + buffers. If you control the value of the Pointer you don't need to release it. + + + + + Convert to buffer back to an array. + + The buffer as an array. + + + + Security buffer type. + + + + + Class to represent a credential manager credential. + + + + + Credential flags. + + + + + Credential type. + + + + + Target name for the credentials. + + + + + Comment for the credentials. + + + + + Time the credentials was last written. + + + + + Credential blob. + + + + + Credential as a string, if available. + + + + + Credential persistence. + + + + + Credential attributes. + + + + + Target alias. + + + + + Username. + + + + + Class to represent a credential attribute. + + + + + Attribute keyword. + + + + + Attribute flags. + + + + + Attribute value. + + + + + Overridden ToString method. + + + + + + Flags for a credential attribute. + + + + + No flags. + + + + + Flags for enumeration credentials. + + + + + None. + + + + + Get all credentials. + + + + + Flags for a credential. + + + + + Class to access credential manager APIs. + + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + True to throw on error. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + Flags for the enumeration. + The list of credentials. + + + + Get credentials for user from credential manager. + + A filter for the target name, for example DOMAIN*. If null or empty returns all credentials. + The list of credentials. + + + + Get all credentials for user from credential manager. + + The list of credentials. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + True to throw on error. + The read credential. + + + + Get a credential by name. + + The name of the credential. + The type of credential. + The read credential. + + + + Backup a user's credentials. + + The user's token. + The key for the data, typically a unicode password. Optional + True if the key is already encoded. + Caller needs SeTrustedCredmanAccessPrivilege enabled. + + + + Specify credential persistence. + + + + + Identifies the type of credentials. + + + + + Information class for a SAM domain object. + + + + + Logon32 provider + + + + + Default. + + + + + Windows NT 3.5. + + + + + Windows NT 4.0. + + + + + Windows NT 5.0. + + + + + Virtual provider. + + + + + Logon UserFlags. + + + + + Indicates the last client token status for the client context. + + + + + Yes it's the last token. + + + + + No it's not the last token. + + + + + It might be, who knows? + + + + + Status code for SSPI interface calls. + + + + + Class to represent an Account Right assigned to a user. + + + + + The name of the account right. + + + + + The display name, if known. + + + + + Get list of SIDS assigned to this access right. + + + + + ToString method. + + The name of the account right. + + + + List of account rights. Not the same as privileges. + + + + + Class to represent an LSA account object. + + + + + Get the account SID. + + + + + Get or set system access flags. + + + + + Get account privileges. + + + + + Get system access flags. + + True to throw on error. + The system access flags. + + + + Set system access flags. + + The flags to set. + True to throw on error. + The system access flags. + + + + Enumerate privileges for the account. + + True to throw on error. + The list of token privileges. + + + + Access rights for an LSA account. + + + + + Flags for looking up SIDs by name. + + + + + Flags for looking up SID names. + + + + + Base class for an LSA object. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Delete the object. + + True to throw on error. + The NT status code. + + + + Delete the object. + + + + + Get the system name for the policy. + + + + + Dispose the policy. + + + + + Class to represent the LSA policy. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + The list of looked up SID names. + + + + Lookup name for a SID. + + The SID to lookup. + + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + True to throw on error. + The list of looked up SID names. + + + + Lookup names for SIDs. + + The list of SIDs to lookup. + Lookup options flags. + The list of looked up SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + True to throw on error. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + Flags for the lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The names to lookup. + The list of SID names. + + + + Lookup names from the LSA policy. + + The name to lookup. + The looked up SID name. + + + + Enumerate accounts with a user right. + + The name of the user right. + True to throw on error. + The list of SIDs with the user right. + + + + Enumerate accounts with a user right. + + The name of the user right. + The list of SIDs with the user right. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + True to throw on error. + The list of assigned account rights. + + + + Enumerate account rights for a SID. + + The SID to enumerate for. + The list of assigned account rights. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + True to throw on error. + The NT status code. + + + + Add account rights to an account. + + The SID of the account. + The list of account rights to add. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + True to throw on error. + The NT status code. + + + + Remove account rights from an account. + + The SID of the account. + True to remove all rights. + The account rights to add. + + + + Retrieve LSA privilege data. + + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA privilege data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The name of the key. + The data to store. If you pass null then the value will be deleted. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The opened secret. + + + + Open an LSA secret object. + + The name of the secret. + The desired access for the secret. + The opened secret. + + + + Open an LSA secret object with maximum access. + + The name of the secret. + The opened secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + True to throw on error. + The created secret. + + + + Create an LSA secret object. + + The name of the secret. + The desired access for the secret. + The created secret. + + + + Create an LSA secret object with maximum access. + + The name of the secret. + The created secret. + + + + Delete an LSA secret object. + + The name of the secret. + True to throw on error. + The NT status code. + + + + Delete an LSA secret object. + + The name of the secret. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The opened account. + + + + Open an LSA account object. + + The SID of the account. + The desired access for the account. + The opened account. + + + + Open an LSA account object with maximum access. + + The SID of the account. + The opened account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + True to throw on error. + The created account. + + + + Create an LSA account object. + + The SID of the account. + The desired access for the account. + The created account. + + + + Create an LSA account object with maximum access. + + The SID of the account. + The created account. + + + + Delete an LSA account object. + + The SID of the account. + True to throw on error. + The NT status code. + + + + Delete an LSA account object. + + The SID of the account. + + + + Enumerate account SIDs in policy. + + True to throw on error. + The list of account SIDs. + + + + Enumerate account SIDs in policy. + + The list of account SIDs. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + True to throw on error. + The list of accessible accounts. + + + + Enumerate and open accessible account objects in policy. + + The desired access for the opened accounts. + + + + Enumerate and open accessible account objects in policy with maximum access. + + + + + Enumerate trusted domain information. + + True to throw on error. + The list of trusted domain information. + + + + Enumerate trusted domain information. + + The list of trusted domain information. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The SID of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + True to throw on error. + The trusted domain object. + + + + Open trusted domain object. + + The name of the trusted domain. + The desired access for the object. + The trusted domain object. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + True to throw on error. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The desired access for the opened trusted domains. + The list of accessible trusted domains. + + + + Enumerate and open accessible trusted domain objects in policy. + + The list of accessible trusted domains. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + True to throw on error. + The opened policy. + + + + Open an LSA policy. + + The system name for the LSA. + The desired access on the policy. + The opened policy. + + + + Open an LSA policy. + + The desired access on the policy. + The opened policy. + + + + Open an LSA policy with maximum allowed access. + + The opened policy. + + + + Access rights for the LSA policy. + + + + + Utilities for an LSA policy. + + + + + The name of the fake NT type for a LSA policy. + + + + + The name of the fake NT type for a LSA secret. + + + + + The name of the fake NT type for a LSA account. + + + + + The name of the fake NT type for a LSA trusted domain. + + + + + Generic generic mapping for LSA policy security. + + The generic mapping for the LSA policy. + + + + Generic generic mapping for LSA secret security. + + The generic mapping for the LSA secret. + + + + Generic generic mapping for LSA account security. + + The generic mapping for the LSA account. + + + + Generic generic mapping for LSA trusted domain security. + + The generic mapping for the LSA trusted domain. + + + + Class to represent an LSA secret. + + + + + Query the value of the secret. + + True to throw on error. + The value of the secret. + + + + Query the value of the secret. + + The value of the secret. + + + + Query the current value of the secret. + + True to throw on error. + The current value of the secret. + + + + Query the current value of the secret. + + The current value of the secret. + + + + Query the old value of the secret. + + True to throw on error. + The old value of the secret. + + + + Query the old value of the secret. + + The old value of the secret. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + True to throw on error. + The NT status code. + + + + Set the value of the secret. + + The current value to set. + The old value to set. + + + + Access rights for an LSA secret. + + + + + Class to represent an LSA secret value. + + + + + The current value of the secret. + + + + + The set time for the current value. + + + + + The old value of the secret. + + + + + The set time for the old value. + + + + + Flags for an account's system access. + + + + + Trust attribute flags for a trusted domain. + + + + + Direction of trust for a trusted domain. + + + + + Class to represent an LSA trusted domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Name of the domain. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Access rights for an LSA trusted domain. + + + + + Information for a trusted domain. + + + + + DNS name of domain. + + + + + Flat name (NETBIOS) of domain. + + + + + Domain SID. + + + + + Domain trust direction. + + + + + Domain trust type. + + + + + Domain trust attributes. + + + + + Trust type for a trusted domain. + + + + + Class to represent a SAM alias. + + + + + Get members of the alias. + + True to throw on error. + The list of alias members. + + + + Get members of the alias. + + The list of alias members. + + + + The alias name. + + + + + The SID of the alias. + + + + + Access rights for a SAM alias object. + + + + + Class to represent a SAM domain object. + + + + + The domain name. + + + + + The domain SID. + + + + + Get domain password information + + + + + Lookup names in a domain. + + The list of names to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup names in a domain. + + The list of names to lookup. + The list of looked up SID names. + + + + Lookup a name in a domain. + + The name to lookup. + True to throw on error. + The SID name. + + + + Lookup a name in a domain. + + The name to lookup. + The SID name. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + True to throw on error. + The list of looked up SID names. + + + + Lookup relative IDs in a domain. + + The list of relative IDs to lookup. + The list of looked up SID names. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + True to throw on error. + The SID name. + + + + Lookup a rid in a domain. + + The relative ID to lookup. + The SID name. + + + + Enumerate users in a domain. + + User account control flags. + True to throw on error. + The list of users. + + + + Enumerate users in a domain. + + User account control flags. + The list of users. + + + + Enumerate users in a domain. + + The list of users. + + + + Enumerate groups in a domain. + + True to throw on error. + The list of groups. + + + + Enumerate groups in a domain. + + The list of groups. + + + + Enumerate aliases in a domain. + + True to throw on error. + The list of aliases. + + + + Enumerate aliases in a domain. + + The list of aliases. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + True to throw on error. + The alias enumeration. + + + + Get alias membership for a set of SIDs. + + The SIDs to check. + The alias enumeration. + + + + Get alias membership for a SID. + + The SID to check. + The alias enumeration. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by relative ID. + + The user ID for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by SID. + + The sid for the user. + The desired access for the user object. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + True to throw on error. + The SAM user object. + + + + Open a user by name. + + The user name for the user. + The desired access for the user object. + The SAM user object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by relative ID. + + The ID for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by SID. + + The sid for the group. + The desired access for the group object. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Open a group by name. + + The name for the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + True to throw on error. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The desired access for the group object. + The SAM group object. + + + + Create a new group object. + + The name of the group. + The SAM group object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + True to throw on error. + The SAM user object. + + + + Create a new user in the SAM. + + The name of the user. + The type of account. + Desired access for new user. + The SAM user object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by relative ID. + + The ID for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by SID. + + The sid for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + True to throw on error. + The SAM alias object. + + + + Open an alias by name. + + The name for the alias. + The desired access for the alias object. + The SAM alias object. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + True to throw on error. + The list of accessible users. + + + + Enumerate and open accessible user objects. + + User account control flags. + The desired access for the opened users. + The list of accessible users. + + + + Enumerate and open accessible user objects with maximum access. + + The list of accessible users. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + True to throw on error. + The list of accessible groups. + + + + Enumerate and open accessible group objects. + + The desired access for the opened groups. + The list of accessible groups. + + + + Enumerate and open accessible group objects with maximum access. + + The list of accessible groups. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + True to throw on error. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects. + + The desired access for the opened aliases. + The list of accessible aliases. + + + + Enumerate and open accessible alias objects with maximum access. + + The list of accessible aliases. + + + + Convert a RID to a SID for the current object. + + The relative ID. + True to throw on error. + The converted SID. + + + + Convert a RID to a SID for the current object. + + The relative ID. + The converted SID. + + + + Get password information. + + True to throw on error. + + + + + Access rights for a SAM domain object. + + + + + The domain password policy. + + + + + Minimum password length. + + + + + Password history length. + + + + + Password properties flags. + + + + + Maximum password age. + + + + + Minimum password age. + + + + + Flags for password properties. + + + + + Class to represent a SAM group. + + + + + Get members of the group. + + True to throw on error. + The list of group members. + + + + Get members of the group. + + The list of group members. + + + + Query group attribute flags. + + True to throw on error. + The group attribute flags. + + + + Set the group attribute flags. + + The attributes to set. + True to throw on error. + The NT status code. + + + + Delete the group object. + + True to throw on error. + The NT status code. + + + + Delete the group object. + + + + + The group name. + + + + + The SID of the group. + + + + + Get or set the group attribute flags. + + + + + Access rights for the SAM group. + + + + + Membership entry for a group. + + + + + The group relative ID. + + + + + The attributes for the group. + + + + + Base class for a SAM object. + + + + + The name of the server that we've connected to. + + + + + Get the NT type for the object. + + + + + Get the object name for the object. + + + + + Get whether the object is a container. + + + + + Get the object's security descriptor. + + + + + Is an access mask granted to the object. + + The access to check. + True if all access is granted. + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + The NT status code. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Dispose the policy. + + + + + Represents information for a SAM relative value. + + + + + The name of the domain. + + + + + The RID of the domain. + + + + + Class to represent a connection to a SAM server. + + + + + Enumerate domains in the SAM. + + True to throw on error. + The list of domains. + + + + Enumerate domains in the SAM. + + The list of domains. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + True to throw on error. + The domain SID. + + + + Lookup the domain SID for a domain name. + + The name of the domain. + The domain SID. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The domain SID. + The desired access for the object. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Open a SAM domain object. + + The name of the domain. + The desired access for the object. + The SAM domain object. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + True to throw on error. + The list of accessible domains. + + + + Enumerate and open accessible domain objects. + + The desired access for the opened domains. + The list of accessible domains. + + + + Opens the builtin domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the builtin domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + True to throw on error. + The SAM domain object. + + + + Opens the user domain on the server. + + The desired access for the object. + The SAM domain object. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + True to throw on error. + The server connection. + + + + Connect to a SAM server. + + The name of the server. Set to null for local connection. + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server. + + The desired access on the SAM server. + The server connection. + + + + Connect to a SAM server with maximum access. + + The server connection. + + + + Access rights for the SAM server. + + + + + Class to represent a SAM user. + + + + + Get full name for the user. + + True to throw on error. + The full name of the user. + + + + Get home directory for the user. + + True to throw on error. + The home directory of the user. + + + + Get primary group ID for the user. + + True to throw on error. + The primary group ID of the user. + + + + Get user account control flags for the user. + + True to throw on error. + The user account control flags of the user. + + + + Change a user's password. + + The old password. + The new password. + True to throw on error. + The NT status code. + + + + Change a user's password. + + The old password. + The new password. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + True to throw on error. + The NT status code. + + + + Set a user's password. + + The password to set. + Whether the password has expired. + + + + The user name. + + + + + The SID of the user. + + + + + Get full name for the user. + + + + + Get home directory for the user. + + + + + Get user account control flags for the user. + + + + + Is the account disabled? + + + + + Get the primary group SID. + + + + + Access rights for a SAM user object. + + + + + Type of user account to create. + + + + + A user account. + + + + + A workstation trust account. + + + + + A server trust account. + + + + + A temporary duplicate account. + + + + + Inter domain trust account. + + + + + User account control flags. + + + + + Security utilities which call the Win32 APIs. + + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + The security operation to perform on the tree. + Progress function. + True to throw on error. + The NT status code. + + + + Set security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + The Win32 Error Code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + True to throw on error. + The NT status code. + + + + Set security using an object handle. + + The handle of the object. + The type of object. + The security information to set. + The security descriptor to set. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + True to keep explicit ACEs. + Specify to indicate when to execute progress function. + Progress function. + + + + Reset security using a named object. + + The name of the object. + The type of named object. + The security information to set. + The security descriptor to set. + Specify to indicate when to execute progress function. + True to keep explicit ACEs. + Progress function. + True to throw on error. + The NT status code. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + True to throw on error. + The list of inheritance sources. + + + + Get the source of inherited ACEs. + + The name of the resource. + The type of the resource. + Whether the resource is a container. + Optional list of object types. + The security descriptor for the resource. + True to check the SACL otherwise checks the DACL. + Generic mapping for the resource. + Query security descriptors for sources. + The list of inheritance sources. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a named resource. + + The name of the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a resource. + + The handle to the resource. + The type of the resource. + The security information to get. + The security descriptor. + + + + Get the NT type for a SE Object Type. + + The type of the resource. + The NT type if known, otherwise null. + + + + Lookup a privilege display name. + + The system name to do the lookup on. + The privilege name. + The display name. Empty string on error. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. The SID must be in the NT authority. + The account name for the SID. Can be null for a domain SID. + The SID to add. + True to throw on error. + The NT status result. + + + + Add a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The SID to add. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + True to throw on error. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The domain name for the SID. + The account name for the SID. Can be null for a domain SID. + The NT status result. + + + + Remove a SID to name mapping with LSA. + + The SID to remove. + The NT status result. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + True to throw on error. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + The logged on token. + + + + Logon a user with a username and password. + + The username. + The user's domain. + The user's password. + The type of logon token. + The Logon provider. + Additional groups to add. Needs SeTcbPrivilege. + True to throw on error. + The logged on token. + + + + Lookup a SID's internet name. + + The SID to lookup. + True to throw on error. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Lookup a SID's internet name. + + The SID to lookup. + The name of the sid as an internet account. + This still might return the normal NT4 style account name if the user is not an internet user. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The private data as bytes. + + + + Retrieve LSA private data. + + The system containing the LSA instance. + The name of the key. + The private data as bytes. + + + + Retrieve LSA private data. + + The name of the key. + The private data as bytes. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + True to throw on error. + The NT status code. + + + + Store LSA private data. + + The system containing the LSA instance. + The name of the key. + The data to store. + + + + Store LSA private data. + + The name of the key. + The data to store. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + True to throw on error. + The NT status code. + + + + Delete LSA private data. + + The system containing the LSA instance. + The name of the key. + + + + Delete LSA private data. + + The name of the key. + + + + Virtual Key enumeration. + + + + + Left mouse button + + + + + Right mouse button + + + + + Control-break processing + + + + + Middle mouse button (three-button mouse) + + + + + Windows 2000/XP: X1 mouse button + + + + + Windows 2000/XP: X2 mouse button + + + + + BACKSPACE key + + + + + TAB key + + + + + CLEAR key + + + + + ENTER key + + + + + SHIFT key + + + + + CTRL key + + + + + ALT key + + + + + PAUSE key + + + + + CAPS LOCK key + + + + + Input Method Editor (IME) Kana mode + + + + + IME Hangul mode + + + + + IME Junja mode + + + + + IME final mode + + + + + IME Hanja mode + + + + + IME Kanji mode + + + + + ESC key + + + + + IME convert + + + + + IME nonconvert + + + + + IME accept + + + + + IME mode change request + + + + + SPACEBAR + + + + + PAGE UP key + + + + + PAGE DOWN key + + + + + END key + + + + + HOME key + + + + + LEFT ARROW key + + + + + UP ARROW key + + + + + RIGHT ARROW key + + + + + DOWN ARROW key + + + + + SELECT key + + + + + PRINT key + + + + + EXECUTE key + + + + + PRINT SCREEN key + + + + + INS key + + + + + DEL key + + + + + HELP key + + + + + 0 key + + + + + 1 key + + + + + 2 key + + + + + 3 key + + + + + 4 key + + + + + 5 key + + + + + 6 key + + + + + 7 key + + + + + 8 key + + + + + 9 key + + + + + A key + + + + + B key + + + + + C key + + + + + D key + + + + + E key + + + + + F key + + + + + G key + + + + + H key + + + + + I key + + + + + J key + + + + + K key + + + + + L key + + + + + M key + + + + + N key + + + + + O key + + + + + P key + + + + + Q key + + + + + R key + + + + + S key + + + + + T key + + + + + U key + + + + + V key + + + + + W key + + + + + X key + + + + + Y key + + + + + Z key + + + + + Left Windows key (Microsoft Natural keyboard) + + + + + Right Windows key (Natural keyboard) + + + + + Applications key (Natural keyboard) + + + + + Computer Sleep key + + + + + Numeric keypad 0 key + + + + + Numeric keypad 1 key + + + + + Numeric keypad 2 key + + + + + Numeric keypad 3 key + + + + + Numeric keypad 4 key + + + + + Numeric keypad 5 key + + + + + Numeric keypad 6 key + + + + + Numeric keypad 7 key + + + + + Numeric keypad 8 key + + + + + Numeric keypad 9 key + + + + + Multiply key + + + + + Add key + + + + + Separator key + + + + + Subtract key + + + + + Decimal key + + + + + Divide key + + + + + F1 key + + + + + F2 key + + + + + F3 key + + + + + F4 key + + + + + F5 key + + + + + F6 key + + + + + F7 key + + + + + F8 key + + + + + F9 key + + + + + F10 key + + + + + F11 key + + + + + F12 key + + + + + F13 key + + + + + F14 key + + + + + F15 key + + + + + F16 key + + + + + F17 key + + + + + F18 key + + + + + F19 key + + + + + F20 key + + + + + F21 key + + + + + F22 key, (PPC only) Key used to lock device. + + + + + F23 key + + + + + F24 key + + + + + NUM LOCK key + + + + + SCROLL LOCK key + + + + + Left SHIFT key + + + + + Right SHIFT key + + + + + Left CONTROL key + + + + + Right CONTROL key + + + + + Left MENU key + + + + + Right MENU key + + + + + Windows 2000/XP: Browser Back key + + + + + Windows 2000/XP: Browser Forward key + + + + + Windows 2000/XP: Browser Refresh key + + + + + Windows 2000/XP: Browser Stop key + + + + + Windows 2000/XP: Browser Search key + + + + + Windows 2000/XP: Browser Favorites key + + + + + Windows 2000/XP: Browser Start and Home key + + + + + Windows 2000/XP: Volume Mute key + + + + + Windows 2000/XP: Volume Down key + + + + + Windows 2000/XP: Volume Up key + + + + + Windows 2000/XP: Next Track key + + + + + Windows 2000/XP: Previous Track key + + + + + Windows 2000/XP: Stop Media key + + + + + Windows 2000/XP: Play/Pause Media key + + + + + Windows 2000/XP: Start Mail key + + + + + Windows 2000/XP: Select Media key + + + + + Windows 2000/XP: Start Application 1 key + + + + + Windows 2000/XP: Start Application 2 key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: For any country/region, the '+' key + + + + + Windows 2000/XP: For any country/region, the ',' key + + + + + Windows 2000/XP: For any country/region, the '-' key + + + + + Windows 2000/XP: For any country/region, the '.' key + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Used for miscellaneous characters; it can vary by keyboard. + + + + + Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard + + + + + Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key + + + + + Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. + The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, + see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP + + + + + Attn key + + + + + CrSel key + + + + + ExSel key + + + + + Erase EOF key + + + + + Play key + + + + + Zoom key + + + + + Reserved + + + + + PA1 key + + + + + Clear key + + + + + Class representing the information about a service. + + + + + The name of the service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID setting. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + The service type. + + + + + Service start type. + + + + + Error control. + + + + + Binary path name. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + Display name. + + + + + Service start name. For user mode services this is the username, for drivers it's the driver name. + + + + + Indicates this service is set to delayed automatic start. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Image path for the service. + + + + + Get name of the target image, either the ServiceDll or ImagePath. + + + + + Service DLL if a shared process server. + + + + + The name of the machine this service was found on. + + + + + Indicates if this service process is grouped with others. + + + + + Class to represent custom data for a service trigger. + + + + + The type of data. + + + + + The raw custom data. + + + + + The custom data as a string. + + + + + The custom data as an array of strings (only useful for String type). + + + + + Overidden ToString method. + + The data as a string. + + + + Trigger information for a service. + + + + + The type of service trigger. + + + + + The service trigger action. + + + + + The sub-type GUID. + + + + + The description of the sub type. + + + + + Custom data. + + + + + Overridden ToString method. + + The trigger as a string. + + + + Trigger the service. + + + + + Service trigger type. + + + + + Represents an action that the service control manager can perform. + + + + + The action to be performed. + + + + + The time to wait before performing the specified action, in milliseconds. + + + + The action to be performed. + The time to wait before performing the specified action, in milliseconds. + + + + Utilities for accessing services. + + + + + The name of the fake NT type for a service. + + + + + The name of the fake NT type for the SCM. + + + + + Get the generic mapping for the SCM. + + The SCM generic mapping. + + + + Get the generic mapping for a service. + + The service generic mapping. + + + + Get the security descriptor of the SCM. + + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + The name of a target computer. Can be null or empty to specify local machine. + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + True to throw on error. + The SCM security descriptor. + + + + Get the security descriptor of the SCM. + + Parts of the security descriptor to return. + The SCM security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + True to throw on error. + The security descriptor. + + + + Get the security descriptor for a service. + + The name of the service. + Parts of the security descriptor to return. + The security descriptor. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The parts of the security descriptor to set. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + True to throw on error. + The NT status code. + + + + Set the SCM security descriptor. + + The security descriptor to set. + The parts of the security descriptor to set. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The service information. + + + + Get the information about a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The service information. + + + + Get the information about a service. + + The name of the service. + True to throw on error. + The service information. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The security descriptor to set. + The security information to set. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + True to throw on error. + The NT status. + + + + Set the security descriptor for a service. + + The name of the service. + The security descriptor to set. + The security information to set. + + + + Get the information about a service. + + The name of the service. + The service information. + + + + Get the information about all services. + + The name of a target computer. Can be null or empty to specify local machine. + The types of services to return. + The list of service information. + + + + Get the information about all services. + + The types of services to return. + The list of service information. + + + + Get the PID of a running service. + + The name of the service. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get the PIDs of a list of running service. + + The names of the services. + Returns the PID of the running service, or 0 if not running. + Thrown on error. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + True to throw on error. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The name of a target computer. Can be null or empty to specify local machine. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + True to throw on error. + This will return active and non-active services as well as drivers. + + + + Get a running service by name. + + The name of the service. + The running service. + This will return active and non-active services as well as drivers. + + + + Get a list of all registered services. + + The name of a target computer. Can be null or empty to specify local machine. + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get a list of all registered services. + + Specify state of services to get. + Specify the type filter for services. + A list of registered services. + + + + Get flags for all user service types. + + The flags for user service types. + + + + Get flags for all kernel driver types. + + The flags for kernel driver types. + + + + Get a list of all registered services. + + A list of registered services. + + + + Get a list of all active running services with their process IDs. + + A list of all active running services with process IDs. + + + + Get a list of all drivers. + + A list of all drivers. + + + + Get a list of all active running drivers. + + A list of all active running drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a list of all services and drivers. + + A list of all services and drivers. + + + + Get a fake NtType for a service. + + Service returns the service type, SCM returns SCM type. + The fake service NtType. Returns null if not a recognized type. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The registered service information. + + + + Create a new service. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + The registered service information. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The NT status. + + + + Delete a service. + + The name of the service. + True to throw on error. + The NT status. + + + + Delete a service. + + The name of the service. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + True to throw on error. + The NT status code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Send a control code to a service. + + The name of the service. + The control code to send. If >= 128 will be sent as a custom control code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + Load group order. + The tag ID. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + True to throw on error. + The NT status code. + + + + Change service configuration. + + The name of the service. + The display name for the service. + The service type. + The service start type. + Error control. + Path to the service executable. + The tag ID. + Load group order. + List of service dependencies. + The username for the service. + Password for the username if needed. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Optional arguments to pass to the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + True to throw on error. + The status code for the service. + + + + Start a service by name. + + The name of the service. + Optional arguments to pass to the service. + The status code for the service. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The SID type to set. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The SID type to set. + + + + Set a service's delayed auto-start. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + If true, the service is started after other auto-start services are started plus a short delay. Otherwise, the service is started during system boot. + True to throw on error. + The NT status code. + + + + + + + + + + + + + + + Set a service's failure recover actions. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + Actions to be performed on service failure. +
If this value is null, is ignored. +
If this value is empty, the reset period and array of failure actions are deleted. + The time after which to reset the failure count to zero if there are no failures, in seconds. Specify -1 to indicate that this value should never be reset. + The command line of the process for the CreateProcess function to execute in response to the command run service controller action. +
This process runs under the same account as the service. +
If this value is null, the command is unchanged. +
If the value is an empty string (""), the command is deleted and no program is run when the service fails. + The message to be broadcast to server users before rebooting in response to the reboot action service controller action. +
If this value is null, the reboot message is unchanged. +
If the value is an empty string (""), the reboot message is deleted and no message is broadcast. +
This member can specify a localized string using the following format: @[path]dllname,-strID +
The string with identifier strID is loaded from dllname; path is optional. + True to throw on error. + The NT status code. +
+ + + + + + + + + + + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The required privileges. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + True to throw on error. + The NT status code. + + + + Set a service's required privileges. + + The name of the service. + The required privileges. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's launch protected type. + + The name of a target computer. Can be null or empty to specify local machine. + The name of the service. + The protected type. + + + + Set a service's required privileges. + + The name of the service. + The protected type. + True to throw on error. + The NT status code. + + + + Set a service's SID type. + + The name of the service. + The protected type. + + + + A service trigger for an ETW event. + + + + + The security descriptor for the ETW event. Needs administrator privileges. + + + + + Trigger the service. + + + + + Service trigger for firewall port interface. + + + + + The port for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + The protocol for the firewall service trigger. + + + + + Service trigger for a named pipe. + + + + + The path to the named pipe. + + + + + Service trigger for an RPC interface. + + + + + List of interface ID for the RPC server. + + + + + Class to represent a handle to the SCM. + + + + + Active services database. + + + + + Failed services database. + + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + True to throw on error. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The database name. Specify SERVICES_ACTIVE_DATABASE or SERVICES_FAILED_DATABASE. + If null then SERVICES_ACTIVE_DATABASE is used. + The desired access for the SCM connection. + The SCM instance. + + + + Open an instance of the SCM. + + The machine name for the SCM. + The desired access for the SCM connection. + The SCM instance. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + True throw on error. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Get the Win32 services for the SCM. + + The state of the services to return. + The types of services to return. + The list of services. + SCM must have been opened with EnumerateService access. + + + + Dispose the object. + + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + True to throw on error. + The security descriptor + + + + Get the security descriptor specifying which parts to retrieve + + What parts of the security descriptor to retrieve + The security descriptor + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + True to throw on error. + + + + Set the object's security descriptor + + The security descriptor to set. + What parts of the security descriptor to set + + + + Service trigger for a WNF event. + + + + + The WNF name. + + + + + Represents a loaded module from the symbol resolver. + + + + + The name of the module. + + + + + The base address of the module. + + + + + The image size of the module. + + + + + Get the path to the loaded PDB file is known. + + + + + True indicates this module only has export symbols. + + + + + Query names of types for this module. + + The list of type names. + + + + Query types in a module. + + The list of types. + + + + Get a type by name. + + The name of the type. + + + + + Query types by name + + A mask string for the type name. e.g. mod!ABC* + The list of types. + + + + Returns the name of the module. + + The name of the module. + + + + Static class for creating symbolic resolvers. + + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + Flags for the symbol resolver. + A text writer for output when specifying the TraceSymbolLoading flag. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. + + The process in which the symbols should be resolved. + The path to dbghelp.dll, ideally should use the one which comes with Debugging Tools for Windows. + The symbol path. + The instance of a symbol resolver. Should be disposed when finished. + + + + Create a new instance of a symbol resolver. Uses the system dbghelp library and symbol path + from _NT_SYMBOL_PATH environment variable. + + The process in which the symbols should be resolved. + The instance of a symbol resolver. Should be disposed when finished. + + + + Enumeration for safer level. + + + + + Constrained. + + + + + Fully trusted. + + + + + Normal user. + + + + + Untrusted. + + + + + Class to access tokens through various mechanisms. + + + + + Logon a user using S4U + + The username. + The user's realm. + + The logged on token. + + + + Get the anonymous token. + + The access rights for the opened token. + The anonymous token. + + + + Get the anonymous token. + + The anonymous token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + The logged on token. + + + + Logon a user. + + The username. + The user's domain. + The user's password. + The logon token's type. + Optional list of additonal groups to add. + The Logon provider. + True to throw on error. + The logged on token. + + + + Open the current clipboard token. + + + + + + + + Get the token from the clipboard. + + The access rights for the opened token. + The clipboard token. + + + + Get the token from the clipboard. + + The clipboard token. + + + + Derive a package sid from a name. + + The name of the package. + True to throw on error. + The derived Sid + + + + Derive a package sid from a name. + + The name of the package. + The derived Sid + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + True to throw on error. + The derived Sid. + + + + Derive a restricted package sid from an existing pacakge sid. + + The base package sid. + The restricted name for the sid. + The derived Sid. + + + + Derive a restricted package sid from an existing package sid. + + The base package name. + The restricted name for the sid. + The derived Sid. + + + + Get the package SID from a name. + + The name of the package, can be either an SDDL SID or a package name. + The derived SID. + + + + Get a safer token. + + The base token. + The safer level to use. + True to make the token inert. + The safer token. + + + + Get session token for a session ID. + + The session ID. + The session token. + + + + Get tokens for all logged on sessions. + + Needs SeTcbPrivilege to work. + The list of session tokens. + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + True to throw on error. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The token to base the new token on. Can be null. + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Create an AppContainer token using the CreateAppContainerToken API. + + The AppContainer package SID. + List of capabilities. + The appcontainer token. + This exported function was only introduced in RS3 + + + + Win32 Error Codes. + + + + + Flags for DefineDosDevice + + + + + None + + + + + Specify a raw target path + + + + + Remove existing definition + + + + + Only remove exact matches to the target + + + + + Don't broadcast changes to the system + + + + + Disposition values for CreateFile. + + + + + Create a new file. Fail if it exists. + + + + + Always create a new file, overwrite if it exists. + + + + + Open a file, fail if it doesn't exist. + + + + + Open a file, create if it doesn't exist. + + + + + Truncate existing file. + + + + + Flags for GetWin32PathName. + + + + + No flags. + + + + + GUID format. + + + + + NT format. + + + + + No specific format. + + + + + Opened file name. + + + + + Class representing a win32 process. + + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + True to throw on error. + The created win32 process. + + + + Create process with a token from a user logon. + + The user's credentials. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The process configuration. + The created win32 process. + + + + Create process with a token from a user logon. + + The username. + The user's domain. + The user's password. + Logon flags. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Create process with a token. + + The token to create the process with. + The process configuration. + The created win32 process. + + + + Create process. + + The process configuration. + The created win32 process. + + + + Create process. + + Optional parent process. + The path to the executable. + The process command line. + Process creation flags. + The desktop name. + The created win32 process. + + + + Dispose the process. + + + + + Resume the entire process. + + + + + Suspend the entire process. + + + + + Terminate the process + + The exit code for the termination + + + + The handle to the process. + + + + + The handle to the initial thread. + + + + + The process ID of the process. + + + + + The thread ID of the initial thread. + + + + + True to terminate process when disposed. + + + + + Get the process' exit status. + + + + + Get the process' exit status as an NtStatus code. + + + + + Explicit conversion operator to an NtThread object. + + The win32 process + + + + Explicit conversion operator to an NtProcess object. + + The win32 process + + + + Specify the CreateProcess API to use with a Token. + + + + + Use CreateProcessAsUser, if that fails use CreateProcessWithToken. + + + + + Use only CreateProcessAsUser. + + + + + User only CreateProcessWithToken. + + + + + Win32 process creation configuration. + + + + + Specify security descriptor of process. + + + + + Specify process handle is inheritable. + + + + + Specify security descriptor of thread. + + + + + Specify thread handle is inheritable. + + + + + Specify to inherit handles. + + + + + Specify parent process. + + + + + Specify path to application executable. + + + + + Specify command line. + + + + + Specify creation flags. + + + + + Specify environment block. + + + + + Specify current directory. + + + + + Specify desktop name. + + + + + Specify window title. + + + + + True to terminate the process when it's disposed. + + + + + Specify the mitigation options. + + + + + Specify the mitigation options 2. + + + + + Specify win32k filter flags. + + + + + Specify win32k filter level. + + + + + Specify PP level. + + + + + Specify list of handles to inherit. + + + + + Specify the appcontainer Sid. + + + + + Specify the appcontainer capabilities. + + + + + Specify LPAC. + + + + + Restrict the process from creating child processes. + + + + + Override child process creation restriction. + + + + + Set child process mitigation flags. + + + + + Specify new process policy when creating a desktop bridge application. + + + + + Specify a token to use for the new process. + + + + + Specify a stdin handle for the new process (you must inherit the handle). + + + + + Specify a stdout handle for the new process (you must inherit the handle). + + + + + Specify a stderror handle for the new process (you must inherit the handle). + + + + + Specify the package name to use. + + + + + Specify handle to pseudo console. + + + + + Specify Base Named Objects isolation prefix. + + + + + Specify the safe open prompt original claim. + + + + + When specifying the debug flags use this debug object instead of the current thread's object. + + + + + When specified do not fallback to using CreateProcessWithToken if CreateProcessWithUser fails. + + + + + Specify additional extended flags. + + + + + Specify list of handles to inherit. + + + + + Specify a service window station and desktop. + + + + + Specify authentication credentials for CreateProcessWithLogon. + + + + + Specify logon flags for the Credentials or when calling CreateProcessWithToken. + + + + + Specify the type of API to call when specifying a token. + + + + + Specify component filter flags. + + + + + Add an object's handle to the list of inherited handles. + + The object to add. + The raw handle value. + Note that this doesn't maintain a reference to the object. It should be kept + alive until the process has been created. + + + + Add an AppContainer capability by name. + + The name of the capability. + + + + Add an AppContainer capability by name. + + The capability SID. + + + + Set AppContainer SID from a package name. + + The package name. + + + + Constructor. + + + + + Flags for create process. + + + + + No flags. + + + + + Debug process. + + + + + Debug only this process. + + + + + Create suspended. + + + + + Detach process. + + + + + Create a new console. + + + + + Normal priority class. + + + + + Idle priority class. + + + + + High priority class. + + + + + Realtime priority class. + + + + + Create a new process group. + + + + + Create from a unicode environment. + + + + + Create a separate WOW VDM. + + + + + Share the WOW VDM. + + + + + Force DOS process. + + + + + Below normal priority class. + + + + + Above normal priority class. + + + + + Inherit parent affinity. + + + + + Inherit caller priority (deprecated) + + + + + Create a protected process. + + + + + Specify extended startup information is present. + + + + + Process mode background begin. + + + + + Process mode background end. + + + + + Create a secure process. + + + + + Breakaway from a job object. + + + + + Preserve code authz level. + + + + + Default error mode. + + + + + No window. + + + + + Profile user. + + + + + Profile kernel. + + + + + Profile server. + + + + + Ignore system default. + + + + + Flags for CreateProcessWithLogon + + + + + No flags. + + + + + With a profile. + + + + + Using network credentials. + + + + + Win32k filter flags. + + + + + No flags. + + + + + Enable filter. + + + + + Audit filter. + + + + + Flags for create thread. + + + + + No flags. + + + + + Create suspended. + + + + + Stack size is a reservation. + + + + + Specify PPL level. + + + + + None + + + + + Safe level as parent. + + + + + Tcb PPL + + + + + Windows PP + + + + + Windows PPL + + + + + Antimalware PPL + + + + + LSA PPL + + + + + Tcb PP + + + + + Code Generation PPL + + + + + Authenticode PP + + + + + App PPL + + + + + Extended process flags. + + + + + No flags. + + + + + Log elevation failure. + + + + + Ignore elevation requirements. + + + + + Force job breakaway (needs TCB privilege). + + + + + Process mitigation option flags. + + + + + Process mitigation option 2 flags. + + + + + Class representing a service instance. + + + + + The name of the service. + + + + + The description of the service. + + + + + Type of service. + + + + + Image path for the service. + + + + + Command line for the service. + + + + + Service DLL if a shared process server. + + + + + Current service status. + + + + + What controls are accepted by the service. + + + + + Whether the service can be stopped. + + + + + The Win32 exit code. + + + + + The service specific exit code, if Win32ExitCode is Win32Error.ERROR_SERVICE_SPECIFIC_ERROR. + + + + + The checkpoint while starting. + + + + + Waiting hint time. + + + + + Service flags. + + + + + Process ID of the running service. + + + + + The security descriptor of the service. + + + + + The list of triggers for the service. + + + + + The service SID type. + + + + + The service launch protected setting. + + + + + The service required privileges. + + + + + Service start type. + + + + + Whether the service is a delayed auto start service. + + + + + Error control. + + + + + Load order group. + + + + + Tag ID for load order. + + + + + Dependencies. + + + + + The user name this service runs under. + + + + + Type of service host when using Win32Share. + + + + + Service main function when using Win32Share. + + + + + Indicates if this service process is grouped with others. + + + + + The name of the machine this service was found on. + + + + + Overridden ToString method. + + The name of the service. + + + + Utilities for Win32 APIs. + + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + A dictionary mapping a mask value to a name. + + + + Get a mask dictionary for a type. + + The enumerated type to query for names. + The valid access. + Specify to get the SDK name instead of a formatting enumerated name. + A dictionary mapping a mask value to a name. + + + + Display the edit security dialog. + + Parent window handle. + NT object to display the security. + The name of the object to display. + True to force the UI to read only. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + The NT type of the object. + + + + Display the edit security dialog. + + Parent window handle. + The name of the object to display. + The security descriptor to display. + An enumerated type for the access mask. + Generic mapping for the access rights. + Valid access mask for the access rights. + + + + Define a new DOS device. + + The dos device flags. + The device name to define. + The target path. + + + + Get Windows INVALID_HANDLE_VALUE. + + + + + Parse a command line into arguments. + + The parsed command line. + The list of arguments. + + + + Get the image path from a command line. + + The command line to parse. + The image path, returns the original command line if can't find a valid image path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + True to throw on error. + The win32 path. + + + + Get Win32 path name for a file. + + The file to get the path from. + Flags for the path to return. + The win32 path. + + + + Format a message. + + The module containing the message. + The ID of the message. + The message. Empty string on error. + + + + Format a message. + + The ID of the message. + The message. Empty string on error. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Optional security descriptor. + True to set the handle as inheritable. + Creation disposition. + Flags and attributes. + Optional template file. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + True to throw on error. + The opened file handle. + + + + Open a file with the Win32 CreateFile API. + + The filename to open. + The desired access. + The share mode. + Creation disposition. + Flags and attributes. + The opened file handle. + + + + Send key down events. + + The key codes to send. + + + + Send key down events. + + The key codes to send. + + + + Send key down then up events. + + The key codes to send. + This will send all keys down first, then all up. + + + + This creates a Window Station using the User32 API. + + The name of the Window Station. + The Window Station. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + True to throw on error. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + The thread security descriptor. + Whether the handle should be inherited. + The size of the stack. 0 for default. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Create a remote thread. + + The process to create the thread in. + Start address for the thread. + Parameter to pass to the thread. + The flags for the thread creation. + The created thread. + Thrown on error. + + + + Get a list of all console sessions. + + True to throw on error. + The list of console sessions. + + + + Get a list of all console sessions. + + The list of console sessions. + + + + Write debug string to output. + + The debug string to write. + +
+