TNTFSSecurity

From Ultibo.org
Jump to: navigation, search

Return to Unit NTFSClass


Description


To be documented

Class definitions



TNTFSSecurity = class(TDiskSecurity)

Note: Data of attribute $SECURITY_DESCRIPTOR and stream $SDS in file $Secure
Note: This is the same structure that is used for all security in Windows (File/Kernel/Registry etc). See TSecurityDescriptor and associated values in Security unit for more information.
 
constructor Create(ALocalLock:TMutexHandle);  
constructor CreateFromSecurity(ALocalLock:TMutexHandle; ASecurity:TDiskSecurity); override;  
constructor CreateFromDescriptor(ALocalLock:TMutexHandle; ADescriptor:Pointer); override;  
destructor Destroy; override;  
private
FVolumeVersion:Word;  
 
FRevision:Byte; Revision
FControl:Word; Control Flags
FSacl:PACL; SACL
FDacl:PACL; DACL
FOwner:PSID; Owner SID
FGroup:PSID; Group SID
 
procedure SetSacl(ASacl:PACL);  
procedure SetDacl(ADacl:PACL);  
procedure SetOwner(AOwner:PSID);  
procedure SetGroup(AGroup:PSID);  
procedure SetSaclSize(ASize:Word);  
procedure SetDaclSize(ASize:Word);  
procedure SetOwnerSize(ASize:Word);  
procedure SetGroupSize(ASize:Word);  
public
property VolumeVersion:Word read FVolumeVersion;  
 
property Revision:Byte read FRevision write FRevision;  
property Control:Word read FControl write FControl;  
property Sacl:PACL read FSacl write SetSacl;  
property Dacl:PACL read FDacl write SetDacl;  
property Owner:PSID read FOwner write SetOwner;  
property Group:PSID read FGroup write SetGroup;  
 
function SaclSize:Word;  
function DaclSize:Word;  
function OwnerSize:Word;  
function GroupSize:Word;  
function SaclOffset:LongWord; Offset to SACL
function DaclOffset:LongWord; Offset to DACL
function OwnerOffset:LongWord; Offset to Owner SID
function GroupOffset:LongWord; Offset to Group SID
 
function SaclOffsetEx(ALocal:Boolean):LongWord; Offset to SACL
function DaclOffsetEx(ALocal:Boolean):LongWord; Offset to DACL
function OwnerOffsetEx(ALocal:Boolean):LongWord; Offset to Owner SID
function GroupOffsetEx(ALocal:Boolean):LongWord; Offset to Group SID
 
function SecuritySize:LongWord; override;  
function SecurityHash:LongWord;  
 
function SecurityDescriptor:Pointer; override;  
function SecurityDescriptorEx(ALocal:Boolean):Pointer; override;  
function InheritedDescriptor:Pointer; override;  
function MergedDescriptor(AChild:Pointer):Pointer; override;  
function ReleaseDescriptor(ADescriptor:Pointer; AInherited,AMerged:Boolean):Boolean; override;  
 
function CopyToSecurity(ASecurity:TDiskSecurity):Boolean; override;  
 
function CopyToDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean; override;  
function CopyToDescriptorEx(ADescriptor:Pointer; ASize:LongWord; ALocal:Boolean):Boolean; override;  
function CopyFromDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean; override;  
 
function ReadSecurity(ABuffer:Pointer; var AOffset,ASize:LongWord; AVersion:Word):Boolean;  
function WriteSecurity(ABuffer:Pointer; var AOffset,ASize:LongWord; AVersion:Word):Boolean;  
function WriteSecurityEx(ABuffer:Pointer; var AOffset,ASize:LongWord; ALocal:Boolean; AVersion:Word):Boolean;  


Function declarations



constructor TNTFSSecurity.Create(ALocalLock:TMutexHandle);
Description: To be documented
Note None documented


constructor TNTFSSecurity.CreateFromSecurity(ALocalLock:TMutexHandle; ASecurity:TDiskSecurity);
Description: To be documented
Note None documented


constructor TNTFSSecurity.CreateFromDescriptor(ALocalLock:TMutexHandle; ADescriptor:Pointer);
Description: To be documented
Note None documented


destructor TNTFSSecurity.Destroy;
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetSacl(ASacl:PACL);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetDacl(ADacl:PACL);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetOwner(AOwner:PSID);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetGroup(AGroup:PSID);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetSaclSize(ASize:Word);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetDaclSize(ASize:Word);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetOwnerSize(ASize:Word);
Description: To be documented
Note None documented


procedure TNTFSSecurity.SetGroupSize(ASize:Word);
Description: To be documented
Note None documented


function TNTFSSecurity.SaclSize:Word;
Description: To be documented
Note None documented


function TNTFSSecurity.DaclSize:Word;
Description: To be documented
Note None documented


function TNTFSSecurity.OwnerSize:Word;
Description: To be documented
Note None documented


function TNTFSSecurity.GroupSize:Word;
Description: To be documented
Note None documented


function TNTFSSecurity.SaclOffset:LongWord;
Description: To be documented
Note Order is always Sacl, Dacl, Owner, Group (Disk Format)


function TNTFSSecurity.DaclOffset:LongWord;
Description: To be documented
Note Order is always Sacl, Dacl, Owner, Group (Disk Format)


function TNTFSSecurity.OwnerOffset:LongWord;
Description: To be documented
Note Order is always Sacl, Dacl, Owner, Group (Disk Format)


function TNTFSSecurity.GroupOffset:LongWord;
Description: To be documented
Note Order is always Sacl, Dacl, Owner, Group (Disk Format)


function TNTFSSecurity.SaclOffsetEx(ALocal:Boolean):LongWord;
Description: Offset to SACL
Note Order is always Owner, Group, Dacl, Sacl (API Format)

Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.DaclOffsetEx(ALocal:Boolean):LongWord;
Description: Offset to DACL
Note Order is always Owner, Group, Dacl, Sacl (API Format)

Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.OwnerOffsetEx(ALocal:Boolean):LongWord;
Description: Offset to Owner SID
Note Order is always Owner, Group, Dacl, Sacl (API Format)

Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.GroupOffsetEx(ALocal:Boolean):LongWord;
Description: Offset to Group SID
Note Order is always Owner, Group, Dacl, Sacl (API Format)

Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.SecuritySize:LongWord;
Description: To be documented
Note None documented


function TNTFSSecurity.SecurityHash:LongWord;
Description: To be documented
Note None documented


function TNTFSSecurity.SecurityDescriptor:Pointer;
Description: To be documented
Note None documented


function TNTFSSecurity.SecurityDescriptorEx(ALocal:Boolean):Pointer;
Description: To be documented
Note Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.InheritedDescriptor:Pointer;
Description: To be documented
Note None documented


function TNTFSSecurity.MergedDescriptor(AChild:Pointer):Pointer;
Description: To be documented
Note None documented


function TNTFSSecurity.ReleaseDescriptor(ADescriptor:Pointer; AInherited,AMerged:Boolean):Boolean;
Description: To be documented
Note None documented


function TNTFSSecurity.CopyToSecurity(ASecurity:TDiskSecurity):Boolean;
Description: To be documented
Note None documented


function TNTFSSecurity.CopyToDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean;
Description: To be documented
Note None documented


function TNTFSSecurity.CopyToDescriptorEx(ADescriptor:Pointer; ASize:LongWord; ALocal:Boolean):Boolean;
Description: To be documented
Note Local indicates the Descriptor should be in Disk Format (not API Format)


function TNTFSSecurity.CopyFromDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean;
Description: To be documented
Note None documented


function TNTFSSecurity.ReadSecurity(ABuffer:Pointer; var AOffset,ASize:LongWord; AVersion:Word):Boolean;
Description: Read the security descriptor from the supplied buffer at the supplied offset
Note None documented


function TNTFSSecurity.WriteSecurity(ABuffer:Pointer; var AOffset,ASize:LongWord; AVersion:Word):Boolean;
Description: Write the security descriptor to the supplied buffer at the supplied offset
Note None documented


function TNTFSSecurity.WriteSecurityEx(ABuffer:Pointer; var AOffset,ASize:LongWord; ALocal:Boolean; AVersion:Word):Boolean;
Description: Write the security descriptor to the supplied buffer at the supplied offset
Note Local indicates the Descriptor should be in Disk Format (not API Format)


Return to Unit Reference