Location: Symbol Reference > Classes
JWSCL Documentation
ContentsIndexHome
PreviousUpNext
Classes

The following table lists classes in this documentation.

 
Name 
Description 
 
 
 
 
 
EJwsclAccessTypeException is raised if the desired access mask is not included in the token access mask! 
 
 
 
 
 
 
 
EJwsclAdjustPrivilegeException is raised if the privileges of a token could not be changed 
 
 
 
 
 
ECloseDesktopException is raised if there was an error during closing a desktop. Possible cases are :
  1. Desktop handle is not valid
  2. not enough rights
 
 
 
 
 
 
ECreateDesktopException is raised if there was an error during creating a new desktop. Possible cases are :
  1. Desktop already exists
  2. Not enough rights
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EDesktopException is the general exception that is raised if an error occurred during desktop manipulation. 
 
 
 
EJwsclDuplicateListEntryException is raised if a SID was already added to a list 
 
EJwsclDuplicateTokenException is raised if a call to DuplicateTokenEx failed 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EHashMismatch is raised in case of unequal hash data 
 
EJwsclIndexOutOfBoundsException is raised if an given index is not within the bounds of a list 
 
 
 
EJwsclInitWellKnownException is raised if JwInitWellKnownSIDs was not called. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJwsclInvalidIndexPrivilegeException is raised if the given index is out of bounds of the privileges list 
 
 
 
EJwsclInvalidKnownSIDException is raised if TJwSecurityId.CreateWellKnownSid fails 
 
 
 
 
 
 
 
EJwsclInvalidOwnerException is raised if the given owner is invalid say nil. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJwsclInvalidSIDException is raised if a SID has an invalid structure 
 
EJwsclDuplicateListEntryException is raised if a SID was already added to a list 
 
 
 
EJwsclInvalidTokenHandle is raised if the handle of the token is invalid 
 
 
 
 
 
 
 
 
 
 
 
EJwsclNILParameterException is raised if a given parameter is nil which is invalid. 
 
EJwsclNilPointer A given parameter or variable is nil but must not be nil. 
 
 
 
EJwsclNotEnoughMemory is raised if a allocation function could not allocate a buffer in memory because of not enough memory 
 
EJwsclNoThreadTokenAvailable is raised if the requested impersonated token could not be retrieved 
 
EJwsclNotImplementedException is raised if the called method is not implemented yet. 
 
EOpenDesktopException is raised if there was an error during opening a desktop. Possible cases are :
  1. Desktop does not exists
 
 
EJwsclOpenProcessTokenException is raised if the process token could not be opened 
 
EJwsclOpenThreadTokenException is raised if the thread token could not be opened 
 
 
 
 
 
 
 
EJwsclPrivilegeCheckException is raised if a given privilege was not found in the list of privileges of the token 
 
EJwsclPrivilegeException is raised if an errors occurs that includes a problem with a privilege 
 
EJwsclPrivilegeNotFoundException is raised if a given privilege was not found 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJwsclSecurityException is the main exception class that is used if an error occurs in any Security Library unit. 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJwsclSharedTokenException is raised regarding a token handle that is shared. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Terminal Server Connection Exception 
 
general exception for terminal server methods 
 
 
 
 
 
general exception for terminal session methods 
 
 
 
EJwsclTokenImpersonationException is raised if the token could not be converted to an impersonated token. 
 
EJwsclTokenInformationException is raised if token information could not be retrieved. 
 
EJwsclTokenPrimaryException is raised if the requested primary token could not be retrieved. For more information see LastError
 
EJwsclUnimplemented The called function isn't implemented yet. 
 
 
 
EJwsclUnsupportedException This exception is raised if an exception could not be interpreted as an JWSCL exception. 
 
2B2288BC-7905-46F2-0019-A0183067E63D] EJwsclUnsupportedWindowsVersionException is raised if the called function is not supported under the running windows version 
 
EJwsclVistaFeaturesDisabled is raised if the JWSCL library was compiled with the compiler directive VISTA deactivated. To use vista features you must activate the directive in file includesJwscl.inc and make sure that you also compiled JwaWindows with at least WINVISTA or WIN2008 to enable Vista features. 
 
EJwsclWinCallFailedException is raised if a call to a windows API function failed. For more information see the LastError property 
 
 
 
 
 
 
 
TJwAuditAccessControlEntry provides function for a system control entry. The flags property is ignored. 
 
TJwAuditAccessControlEntryCallback defines a callback audit access control element. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx method TJwAuthContext.AccessCheck
 
TJwAuditAccessControlEntryCallbackObject defines a callback audit access control element with object properties. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx method TJwAuthContext.AccessCheck.
Object ACEs uses the following properties
For some Windows internal reasons this type of ACE is ignored in TJwAuthContext.AccessCheck
 
TJwAuditAccessControlEntryObject defines a audit access control element with object properties. Object ACEs uses the following properties
 
TJwAuthContext defines an instance that provides methods for an authentication context. This context does not need a token to do an access check. 
 
TJwAuthenticationInfo wraps an array of authentication information to be used by TJwComProcessSecurity.Initialize 
 
TJwAuthResourceManager contains structures that mangage resources of a security context like callback functions. 
 
TJwAuthZAccessReply contains information about a call to TJwAuthContext.AccessCheck 
 
TJwAuthZAccessRequest provides simple access to a request that is submitted to TJwAuthContext.AccessCheck 
 
This is class TJwAutoLock. 
 
TJwAutoPointer implements tool functions for creating new and wrapping existing pointers and classes for auto destruction. 
 
TJwAutoPointerImpl implements the auto pointer interface IJwAutoPointer
 
TJwComClientSecurity provides methods to set or get a proxy blanket on an interface. 
 
TJwComCustomSecurity is the base class for the JWSCL COM security implementation. Do not use it directly instead you can inherit from it to get access to the implementation. 
 
TJwComProcessSecurity provides wrapper methods for CoInitializeSecurity. They can be used by a COM server or client. Some of them are only for either servers or clients.
For an application that is COM server and client, use the Initialize method with parameter SecurityData : PJwSecurityInitializationData
 
TJwComRegistrySecurity provides functionality to retrieve COM related security information from registry.
It allows to read machine wide security information.
COM applications can read and write security related information with it. 
 
The class TJwComServerSecurity provides functionality for a server to query client information, to impersonate and to do access checks. 
 
TJwComWinNTIdentity wraps the WinAPI structure SEC_WINNT_AUTH_IDENTITY_EXW (Delphi TSecWinNTAuthIdentityExW ). 
 
TJwCredentialsPrompt provides methods and properties to create a credential command prompt under Windows XP. 
 
TJwCredentialsTools provides static methods to maniplute credential values. 
 
TJwCryptKey encapsulates CAPI keys. Keys for symmetric and asymmetric algorithms are supported. They can be used for hash computing. Keys can be created by retrieving the user keys of a CSP, randomly generating a new key, deriving from base data and importing from a data blob. 
 
Provides access to cryptographic service providers 
 
Base class of every mapped stream. Inherits from Classes.TStream
Important
DO NOT CREATE OBJECT INSTANCES OF THIS CLASS! Use one of the other stream classes instead. 
 
TJwDAccessControlList provides methods for an discretionary access control list.
For more information on the methods see TJwSecurityAccessControlList
 
TJwDiscretionaryAccessControlEntry defines a discretionary access control entry. Use TJwDiscretionaryAccessControlEntryAllow or TJwDiscretionaryAccessControlEntryDeny for creating ACEs. 
 
TJwDiscretionaryAccessControlEntryAllow is a class that defines a positve/allow access control entry. 
 
TJwDiscretionaryAccessControlEntryCallbackAllow defines a callback allow access control element. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx method TJwAuthContext.AccessCheck
 
TJwDiscretionaryAccessControlEntryCallbackDeny defines a callback deny access control element. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx method TJwAuthContext.AccessCheck
 
TJwDiscretionaryAccessControlEntryCallbackObjectAllow defines a callback allow access control element with object properties. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx.pas method TJwAuthContext.AccessCheck.
Object ACEs uses the following properties

For some Windows internal reasons this type of ACE is ignored in TJwAuthContext.AccessCheck
 
TJwDiscretionaryAccessControlEntryCallbackObjectDeny defines a callback deny access control element with object properties. Every time a function that scans an ACL with a callback element generates a callback event which decides whether this ACE can be used in the process. Callback elements are used in unit JwsclAuthCtx method TJwAuthContext.AccessCheck.
Object ACEs uses the following properties
)
For some Windows internal reasons this type of ACE is ignored in TJwAuthContext.AccessCheck
 
TJwDiscretionaryAccessControlEntryDeny is a class that defines a negative/deny access control entry. 
 
TJwDiscretionaryAccessControlEntryObjectAllow defines a allow access control element with object properties. Object ACEs uses the following properties
 
 
TJwDiscretionaryAccessControlEntryObjectDeny defines a deny access control element with object properties. Object ACEs uses the following properties
 
TJwElevationClassFactory provides a registration for a typed com object. It also creates the necessary registry entries. 
 
TJwEncryptData provides access to encryption functions. 
 
TJwEncryptionApi defines methods to give direct access to Crypt API functions - with more simple call conventions 
 
TJwEncryptMemory provides functions to encrypt memory directly. 
 
TJwEnumMap provides class methods to convert windows api constants to delphi enumeration types and vice versa. There is no need to create an instance of it. 
 
TJwEurekaLogNotify defines a class with event methods that are used with the TEurekaLog component. 
 
This is a FileStream based on Memory Mapped Files 
 
This is class TJwFileVersion. 
 
TJwGroupAccount is not implemented yet 
 
TJwGroupAccounts is not implemented yet 
 
TJwHash is a class to compute hashes. Both keyless and keyed algorithms are supported. Hashes can also be used to sign data. 
 
TJwImpersonation provides methods to impersonate a logged on client. Do not use this class instead use JwImpersonateLoggedOnUser, JwImpersonateLoggedOnUser or JwImpersonateLoggedOnUser
 
TJwInheritTypeList is a class that administers a list of SI_INHERIT_TYPE structures. The structure is used to provide information how access control entries can be inherited to its children.
Simply use the property InheritTypeList to add or remove inheritance information.
InheritTypeList.Add(GUID_NULL, [afContainerInheritAce, afObjectInheritAce], 'This object, inherited objects and containers'); 
 
TJwIntegrityLevelSID provides methods to use fine grained integrity levels.
This class is subject to change and to be investigated and therefore should not be used!! 
 
TJwInternalJobObjectIOCompletitionThread is for internal use only. 
 
TJwIntTupleList defines an integer tuple list. Despite its name the list manages index with pointers (integer,pointer). 
 
This is a stream class for simple IPC via Mapped-Memory-Streams 
 
TJwJobObject is the main job class. It encapsulates a job object and provides methods and properties to maintain it. There are also events that are fired on special job messages.
All processes of a session must have the same token session id, otherwise the assignment fails. 
 
TJwJobObjectSessionList manages a list of job objects threadsafe. Since every process in a job must be in the same session, the list manages one job object per session.
This solution is only available in Windows Vista and later. 
 
TJwLibraryUtilities contains methods related to libraries. 
 
This is class TJwLogClientImpl. 
 
This is class TJwLogServerImpl. 
 
TJwLogWriter defines a default and base class for xml write operations and other util functions. Overwrite this class and specify its class type to CreateLogServer for changed behavior. 
 
TJwLsaLogonSession provides function for enumerating principal logon sessions and its data. 
 
TJwLsaLogonSessionData contains readonly information about a logon session. 
 
TJwLsaPolicy manages policies 
 
This is class TJwNetServer. 
 
A null mapping defines a map from generic access rights to 0. 
 
TJwPrivilege contains information about a token privilege 
 
TJwPrivilegeSet is a set of Privileges (defined by TJwPrivilege) There are two types of instances of TJwPrivilegeSet.
  1. TJwPrivilegeSet with an assigned token
  2. TJwPrivilegeSet without an assigned token.
It is not possible to change from one to the other case.
  1. If the token is assigned, you can enable or disable privileges. However
you cannot change privileges arbitrarily.
  1. If the privleges set is not assigned to a token, you can add or remove privileges arbitrarily.
However you cannot enable or disable privileges.
The description of these function shows what happens in one of these cases. 
 
This class is used by TJwWTSProcessList to provide extended enumeration of processes using Delphi 2005 and newer "for in" syntax. 
 
TJwRandomDataGenerator provides access to functions to create random data. 
 
TJwSAccessControlList provides methods for an audit access control list. For more information on the methods see TJwSecurityAccessControlList
 
TJwsclFirewall implements methods and properties to access, administer, set and get the Microsoft Windows Firewall. 
 
TJwSecureBaseClass is a base class and provides abstract methods to get and set security infomration on objects (like files, mutexes, ...).
To use security information with general objects use the class TJwSecureGeneralObject
 
TJwSecureFileObject provides access to security relevant information for files and folders. The words file and folders are combined into file object. It is used equally for both files and folders. 
 
TJwSecureGeneralObject gives access to general security methods to set or get security relevant data from objects.
Do not make instance of this class but use instead the static methods. 
 
TJwSecureRegistryKey provides access to registry key security information 
 
TJwSecurityAccessControlEntry contains data that describes how an object is accessed. The class provides methods to access these properties.
To create an instance you can use the public constructors. However some constructors are protected and only visible in sub classes:

The ACE can be added to a list (called ACL - access control list). 
 
TJwSecurityAccessControlList provides methods for an access control list. Do not make instances of this class. Instead use
TJwSAccessControlList for audit control lists TJwDAccessControlList for Discretionary control lists 
 
TJwSecurityDescriptor contains information about a security descriptor. It does not hold a pointer to a security descriptor. It is created on demand. 
 
TJwSecurityDescriptorDialog is a easy to use class to show a security ACL editor. It is generic, so many types of secure objects can be shown (not only files). 
 
TJwSecurityDesktop is the main class that provides methods to create, open and manipulate desktops. Be aware of following things:
  1. nearly every function can create an exception.
If you don't check for them it can happen that a switch back to default desktop does not work. This especially happens if Delphi is active and shows the exception source on the default desktop.
  1. This instance does not dynamically react on changes done by direct WinAPI calls.
 
 
This is class TJwSecurityDesktopMapping. 
 
TJwSecurityDesktops is a administrative class that contains a list of desktops and methods to manipulate desktops. All TJwSecurityDesktop instances that are created and assigned to this class are automatically freed if this instance is freed. 
 
TJwSecurityEventMapping defines a generic mapping for file access rights 
 
TJwSecurityFileFolderMapping defines a generic mapping for file access rights 
 
TJwSecurityFileMapMapping defines a generic mapping for file access rights 
 
TJwSecurityFileMapping defines a generic mapping for file access rights 
 
TJwSecurityGenericMapping defines a general access mapping. To create your own access map, derive a class from TJwSecurityGenericMapping and override the class method GetMapping
 
The security identifier (SID) structure is a variable-length structure used to uniquely identify users or groups.
TJwSecurityId encapsulates a SID structures and provides functions to create, read and convert SID data. Once an instance is created the SID data cannot be changed. Therefore there is no Assign function to copy data.
MSDN on http://msdn2.microsoft.com/en-us/library/aa379594.aspx http://msdn2.microsoft.com/en-us/library/aa379597.aspx 
 
TJwSecurityIdList is a class that contains a list of SIDs instances. The SID instances can be freed automatically at the end of the list instance. 
 
TJwSecurityJobMapping defines a generic mapping for file access rights 
 
TJwSecurityKnownSID is used by JWSCL to distinguish predefined SID classes that should not be freed by JWSCL. e.g. JwLocalServiceSID 
 
TJwSecurityLsa is the main entry class for LSA calls. 
 
TJwSecurityMutexMapping defines a generic mapping for file access rights 
 
TJwSecurityPipeMapping defines a generic mapping for file access rights 
 
TJwSecurityPrinterMapping defines a generic mapping for file access rights 
 
TJwSecurityProcessMapping defines a generic mapping for file access rights 
 
TJwSecurityRegistryMapping defines a generic mapping for file access rights 
 
TJwSecuritySemaphoreMapping defines a generic mapping for file access rights 
 
TJwSecurityServiceManagerMapping defines a generic mapping for file access rights 
 
TJwSecurityServiceMapping defines a generic mapping for file access rights 
 
TJwSecurityShareMapping defines a generic mapping for file access rights 
 
TJwSecurityThreadMapping defines a generic mapping for file access rights 
 
TJwSecurityThreadUserSID is a class that describes the current user that is running the current thread or process. Because the user must not be neccessary the current logged on user it is called that way. Use the var JwSecurityProcessUserSID to get its date. But don't free it. 
 
TJwSecurityTimerMapping defines a generic mapping for file access rights 
 
TJwSecurityToken administers a token (impersonated or primary) All token information are retrieved dynamically. The token handle is closed on instance destroying if Shared is set to false.
A token is a security card that gives the logged on user the right to do things (like start processes a.s.o). Without a token the user would have to prove his/her security state to the system every time.
The system creates a process token for the process that it can use to get its security constraints. A process token is also called primary token. The process can create threads and decrement their security... more 
 
TJwSecurityTokenMapping defines a generic mapping for file access rights 
 
TJwSecurityTokenStatistics is a class that holds information about a token. For a detailed description see msdn : http://msdn2.microsoft.com/en-us/library/aa379632.aspx 
 
This is class TJwSecurityUserMapping. 
 
TJwSecurityWindowStation provides access to window station api. 
 
TJwSecurityWindowStations provides access to window stations 
 
TJwSecurityWinStationMapping provides methods that map generic access rights to specific access rights for a WindowStation, converts single access rights to a string or create a SI_ACCESS structure for usage in a security descriptor editor (TJwSecurityDescriptorDialog in JwsclSecurityDialogs.pas
 
TJwServerAccessControl provides an implementation of IAccessControl, IPersist and IPersistStream
 
TJwServerInfo retrieves Windows Version information on a remote or local client. 
 
This class is used by TJwWTSSessionList to provide extended enumeration of session using Delphi 2005 and newer "for in" syntax. 
 
TJwSidInfoDataObject is used in TJwSecurityDescriptorDialog.LookUpSids to provide information about the sids for the system. 
 
TJwSimpleDescriptor implements a simplier version of a security descriptor. It only supports :
  • discretionary access control list
  • owner
  • allow access control entries
  • deny access control entries
  • access rights
  • static security attributes (managed by class)
The class does not support:
  • inheritance
  • group
  • access control entry flags
 
 
TJwSystemMandatoryAccessControlEntry defines a mandatory label ACE in a SACL. 
 
TJwTagThread is used by
  • TreeFileObjectSetNamedSecurityInfo
 
 
AbstractTJwTerminalServer is the central object of JwsclTerminalServer and holds the session- and processlist.
TJwTerminalServer offers connection to a Terminal Server which you can specify with the Server property. Key functions of TJwTerminalServer are:
TJwSessionList which can be accessed by the Sessions property. TJwProcessList which can be accessed by the Processes property. Terminal Server.
TJwTerminalServer also offers Events to monitor Terminal Server activity such as OnSessionConnect, OnSessionCreate... more 
 
TJwTerminalServerList is a List of TJwTerminalServer Objects.
Each item in the list points to a TJwTerminalServer object that can be queried and manipulated. The list can be filled by adding TJwTerminalServer instances. 
 
TJwThread defines a thread base class which offers a name for the thread. Override Execute and call it at first to have any effect. 
 
TJwUserAccount is not implemented yet 
 
TJwUserAccounts is not implemented yet 
 
This is a stream class for general data handling 
 
TJwWindowsVersion provides methods to detect the windows version and product type. All methods are class methods so there is no need for an instance of TJwWindowsVersion
 
TJwWTSEnumServersThread is a Thread that enumerates all Terminal Server in the specified domain.
The Enumeration is done from a thread because it can take some time to enumerate all server, especially over a slow WAN connection.
The thread is created by calling the EnumerateServers procedure from a TJwTerminalServer instance. Although allowed you normally don't create a TJwWTSEnumServersThread manually.
Enumerated servers are returned by firing the OnServerEnumerated Event from the parent TJwTerminalServer instance.
A TJwWTSEnumServersThread is owned by a TJwTerminalServer instance. 
 
The TJwWTSEventThread Thread waits for Terminal Server Events and notifies the caller by firing Events.
It's not necessary to manually create an TJwWTSEventThread Thread because TJwTerminalServer does this automatically after a successfull call to the EnumerateSessions function.
TJwWTSEventThread is Owned by a TJwTerminalServer instance 
 
TJwWTSProcess is the class that encapsulates a process that is running on a Terminal Server.
A process is uniquely identified by the Process Id (PID) in combination with it's Creation Time (the OS reused PID's).
A TJwWTSProcess is owned by a TJwWTSProcessList
 
TJwWTSProcessList is a List of all Processes running on the Terminal Server and their properties
Each item in the list points to a TJwWTSProcess object that can be queried and manipulated. The list is filled by calling the EnumerateProcesses function of the owning TJwTerminalServer instance. 
 
TJwWTSSession is a Class that encapsulates a Terminal Server session and it's properties
A session is uniquely identified with a SessionID, this is a number between 0 and 65535.
A TJwWTSSession is owned by a JTwWTSSessionList. 
 
TJwWTSSessionList is a List of all Sessions running on the Terminal Server and their properties
Each item in the list points to a TJwWTSSession object that can be queried and manipulated. The list is filled by calling the EnumerateSessions function of the owning TJwTerminalServer instance. 
 
TJwWTSSessionShadow class gives access to the ShadowState and Shadowmode of a session. 
 
This is class TJwWTSSessionStatistics. 
Copyright (c) 2010. All rights reserved.
This help was created by Doc-O-Matic sponsored by toolsfactory software inc.
What do you think about this topic? Send feedback!