|
|
Line 3,435: |
Line 3,435: |
| | | |
| | | |
− | '''File system driver''' | + | '''FileSystem specific classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>TFileSysDriver = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create;</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FCache:THashCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FImages:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDrives:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolumes:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDevices:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPartitions:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FControllers:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizers:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRedirectors:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFileSystems:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRawHandles:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FEnumHandles:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFileHandles:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFindHandles:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FCurrentIndex:LongWord;</code>
| + | |
− | | TLS Index for storing current drive
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAllowFloppy:Boolean;</code>
| + | |
− | | Allow Scanning of Floppy Devices
| + | |
− | |-
| + | |
− | | <code>FAllowDrives:Boolean;</code>
| + | |
− | | Allow Disk Drives to represent Volumes by drive letter
| + | |
− | |-
| + | |
− | | <code>FOemConvert:Boolean;</code>
| + | |
− | | Convert OEM character strings to ANSI
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntryTimer:TEntryTimer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDefaultRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCurrent:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrent(ACurrent:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindMatchingFile(ADrive:TDiskDrive; AVolume:TDiskVolume; var ASearchRec:TSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Cache:THashCache read FCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property AllowFloppy:Boolean read FAllowFloppy write FAllowFloppy;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowDrives:Boolean read FAllowDrives write FAllowDrives;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property OemConvert:Boolean read FOemConvert write FOemConvert;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenCache(ACacheSize,ACacheKeys,APageSize:LongWord; ACacheMode:TCacheMode):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushCache(AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DiscardCache(AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCacheStatistics(var AStatistics:TCacheStatistics):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByNo(const APath:String; ACatalogNo:LongWord; ALock:Boolean; AState:LongWord):TDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByName(const APath,AName:String; ALock:Boolean; AState:LongWord):TDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByNext(const APath:String; APrevious:TDiskCatalog; ALock,AUnlock:Boolean; AState:LongWord):TDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddImage(AImage:TDiskImage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveImage(AImage:TDiskImage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckImage(AImage:TDiskImage; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetImageByNo(AImageNo:Integer; ALock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetImageByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetImageByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetImageByController(AController:TDiskController; ALock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetImagesByController(AController:TDiskController; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetImageByNext(APrevious:TDiskImage; ALock,AUnlock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextImageNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxImageNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddDrive(ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveDrive(ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckDrive(ADrive:TDiskDrive; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveByNo(ADriveNo:Integer; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByParent(const AParent:String; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByVolume(AVolume:TDiskVolume; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDrivesByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDrivesByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveByNext(APrevious:TDiskDrive; ALock,AUnlock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextDriveNo(AMediaType:TMediaType):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxDriveNo(AMediaType:TMediaType):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddVolume(AVolume:TDiskVolume):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveVolume(AVolume:TDiskVolume):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckVolume(AVolume:TDiskVolume; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByNo(AVolumeNo:Integer; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByParent(const AParent:String; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumesByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumesByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeByNext(APrevious:TDiskVolume; ALock,AUnlock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextVolumeNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxVolumeNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddDevice(ADevice:TDiskDevice):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveDevice(ADevice:TDiskDevice):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByNo(ADeviceNo:Integer; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByImage(AImage:TDiskImage; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByStorage(AStorage:PStorageDevice; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByController(AController:TDiskController; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDevicesByController(AController:TDiskController; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByIdentifier(AController:TDiskController; const AIdentifier:String; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceByNext(APrevious:TDiskDevice; ALock,AUnlock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextDeviceNo(AMediaType:TMediaType):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxDeviceNo(AMediaType:TMediaType):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddPartition(APartition:TDiskPartition):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemovePartition(APartition:TDiskPartition):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByNo(ADevice:TDiskDevice; APartitionNo:Integer; AExtended,ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByName(ADevice:TDiskDevice; const AName:String; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByPath(const APath:String; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByEntryNo(ADevice:TDiskDevice; APartition:TDiskPartition; AEntryNo:Integer; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionsByDevice(ADevice:TDiskDevice; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionsByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionByNext(APrevious:TDiskPartition; ALock,AUnlock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextPartitionNo(ADevice:TDiskDevice; AExtended:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxPartitionNo(ADevice:TDiskDevice; AExtended:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddController(AController:TDiskController):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveController(AController:TDiskController):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckController(AController:TDiskController; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetControllerByNo(AControllerNo:Integer; ALock:Boolean; AState:LongWord):TDiskController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetControllerByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetControllerByNext(APrevious:TDiskController; ALock,AUnlock:Boolean; AState:LongWord):TDiskController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextControllerNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxControllerNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddRecognizer(ARecognizer:TRecognizer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveRecognizer(ARecognizer:TRecognizer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckRecognizer(ARecognizer:TRecognizer; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByImage(AImage:TDiskImage; ALock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByVolume(AVolume:TDiskVolume; ALock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByPartition(APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByPartitionId(APartitionId:Byte; ALock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByBootSector(ABootSector:PBootSector; const AStartSector,ASectorCount:Int64; ALock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizerByNext(APrevious:TRecognizer; ALock,AUnlock:Boolean; AState:LongWord):TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddRedirector(ARedirector:TRedirector):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveRedirector(ARedirector:TRedirector):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckRedirector(ARedirector:TRedirector; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRedirectorByPath(const APath:String; ALock:Boolean; AState:LongWord):TRedirector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRedirectorByDrive(ADrive:TDiskDrive; ALock:Boolean; AState:LongWord):TRedirector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRedirectorByNext(APrevious:TRedirector; ALock,AUnlock:Boolean; AState:LongWord):TRedirector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddFileSystem(AFileSystem:TFileSystem):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveFileSystem(AFileSystem:TFileSystem):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckFileSystem(AFileSystem:TFileSystem; ALock:Boolean; AState:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemByDrive(ADrive:TDiskDrive; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemByVolume(AVolume:TDiskVolume; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemByRootName(const AName:String; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemByRootPath(const APath:String; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemByNext(APrevious:TFileSystem; ALock,AUnlock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocatePartitions:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocateVolumes:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocateDrives:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenRawHandle(ADevice:TDiskDevice; APartition:TDiskPartition; AVolume:TDiskVolume; ADrive:TDiskDrive; AMode:Integer; ALock:Boolean; AState:LongWord):TRawHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseRawHandle(AHandle:TRawHandle):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRawHandleByNext(APrevious:TRawHandle; ALock,AUnlock:Boolean; AState:LongWord):TRawHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReleaseRawHandles(ADevice:TDiskDevice; APartition:TDiskPartition; AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenEnumHandle(AFileSystem:TFileSystem; ALock:Boolean; AState:LongWord):TEnumHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseEnumHandle(AHandle:TEnumHandle):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEnumHandleByNext(APrevious:TEnumHandle; ALock,AUnlock:Boolean; AState:LongWord):TEnumHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UpdateEnumHandles(ADevice:TDiskDevice; APartition:TDiskPartition; ADrive:TDiskDrive; AVolume:TDiskVolume; AImage:TDiskImage; ACatalog:TDiskCatalog):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseEnumHandles(AFileSystem:TFileSystem):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenFileHandle(AVolume:TDiskVolume; ADrive:TDiskDrive; AParent,AEntry:TDiskEntry; AMode:Integer; ALock:Boolean; AState:LongWord):TFileHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseFileHandle(AHandle:TFileHandle):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileHandleByNext(APrevious:TFileHandle; ALock,AUnlock:Boolean; AState:LongWord):TFileHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckFileHandles(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseFileHandles(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountFileHandles(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenFindHandle(AVolume:TDiskVolume; ADrive:TDiskDrive; AParent:TDiskEntry; const AMask:String; AAttr,AFlags:LongWord; ALock:Boolean; AState:LongWord):TFindHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseFindHandle(AHandle:TFindHandle):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFindHandleByNext(APrevious:TFindHandle; ALock,AUnlock:Boolean; AState:LongWord):TFindHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UpdateFindHandles(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseFindHandles(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountFindHandles(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function InsertDevice(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectDevice(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenDevice(const AName:String; AMode:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure CloseDevice(AHandle:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadDevice(AHandle:Integer; var ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteDevice(AHandle:Integer; const ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EraseDevice(AHandle:Integer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekDevice(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstDevice(var ASearchRec:TDiskSearchRec; AVerbose:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextDevice(var ASearchRec:TDiskSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindDeviceClose(var ASearchRec:TDiskSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreatePartition(const ADevice,AParent:String; APartitionId:Byte; ACount:LongWord; AActive:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeletePartition(const APath:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ModifyPartition(const APath:String; APartitionId:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ActivatePartition(const APath:String; AActive:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkPartition(const APath:String; const AStart,ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandPartition(const APath:String; const AStart,ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenPartition(const APath:String; AMode:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure ClosePartition(AHandle:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadPartition(AHandle:Integer; var ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WritePartition(AHandle:Integer; const ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekPartition(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstPartition(const ADevice:String; var ASearchRec:TPartitionSearchRec; AVerbose:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextPartition(var ASearchRec:TPartitionSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindPartitionClose(var ASearchRec:TPartitionSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateVolume(const AParent:String; ADriveNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteVolume(Const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MountVolume(const AName:String; ADriveNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountVolume(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FormatVolume(const AName:String; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DefragmentVolume(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ConvertVolume(const AName:String; AFileSysType:TFileSysType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RepairVolume(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyVolume(const AName,ADest:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkVolume(const AName:String; const AStart,ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandVolume(const AName:String; const AStart,ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenVolume(const AName:String; AMode:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure CloseVolume(AHandle:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadVolume(AHandle:Integer; var ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteVolume(AHandle:Integer; const ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekVolume(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstVolume(var ASearchRec:TVolumeSearchRec; AVerbose:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextVolume(var ASearchRec:TVolumeSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindVolumeClose(var ASearchRec:TVolumeSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateDrive(const AName,AParent:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteDrive(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FormatDrive(const AName:String; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenDrive(const AName:String; AMode:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure CloseDrive(AHandle:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadDrive(AHandle:Integer; var ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteDrive(AHandle:Integer; const ABuffer; ACount:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekDrive(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstDrive(var ASearchRec:TDriveSearchRec; AVerbose:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextDrive(var ASearchRec:TDriveSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindDriveClose(var ASearchRec:TDriveSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountImage(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountImage(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertImage(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectImage(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ConvertImage(AImageNo:Integer; AImageType:TImageType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyImage(AImageNo,ADestNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkImage(AImageNo:Integer; const ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandImage(AImageNo:Integer; const ASize:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateImage(AImageNo:Integer; const AName:String; AImageType:TImageType; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function OpenImage(AImageNo:Integer;const AName:String; AImageType:TImageType; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseImage(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSnapshot(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSnapshot(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MergeSnapshot(AImageNo:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstImage(var ASearchRec:TImageSearchRec; AVerbose:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextImage(var ASearchRec:TImageSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindImageClose(var ASearchRec:TImageSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateCatalog(const APath,AName:String; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteCatalog(const APath:String; ACatalogNo:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstCatalog(const APath:String; var ASearchRec:TCatalogSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextCatalog(var ASearchRec:TCatalogSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindCatalogClose(var ASearchRec:TCatalogSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean; </code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ScheduleEntry(AEntry:TDiskEntry; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnscheduleEntry(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathDrive(const APath:String):Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveType(ADrive:Byte):TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveData(ADrive:Byte):TDriveData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveAttr(ADrive:Byte):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveLabel(ADrive:Byte):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveLabel(ADrive:Byte; const ALabel:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveSerial(ADrive:Byte):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveSerial(ADrive:Byte; ASerial:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function IsDriveValid(ADrive:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetValidDrives:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetValidDriveNames:TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetValidDriveStrings:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFreeSpace(ADrive:Byte):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFreeSpaceEx(ADrive:Byte):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveTotalSpace(ADrive:Byte):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveTotalSpaceEx(ADrive:Byte):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveInformation(const APath:String; var AClusterSize:LongWord; var ATotalClusterCount,AFreeClusterCount:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCurrentDrive:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrentDrive(const ADrive:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathVolume(const APath:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeType(const AVolume:String):TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeData(const AVolume:String):TDriveData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeAttr(const AVolume:String):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeLabel(const AVolume:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetVolumeLabel(const AVolume:String; const ALabel:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeSerial(const AVolume:String):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetVolumeSerial(const AVolume:String; ASerial:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function IsVolumeValid(const AVolume:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetValidVolumeNames:TStringList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFreeSpace(const AVolume:String):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFreeSpaceEx(const AVolume:String):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeTotalSpace(const AVolume:String):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeTotalSpaceEx(const AVolume:String):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileOpen(const AFileName:String; AMode:Integer):THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileCreate(const AFileName:String; AMode:Integer = fmOpenReadWrite or fmShareExclusive):THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteFile(const AFileName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FileClose(AHandle:Integer);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameFile(const AOldName,ANewName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSeek(AHandle:THandle; AOffset,AOrigin:LongInt):LongInt;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileFlush(AHandle:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileTruncate(AHandle:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetEndOfFile(AHandle:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function EndOfFile(AHandle:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FilePos(AHandle:THandle):LongInt;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSize(AHandle:THandle):LongInt;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileAge(const AFileName:String):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileExists(const AFileName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileGetAttr(const AFileName:String):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileGetDate(AHandle:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetAttr(const AFileName:String; AAttr:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetDate(AHandle:Integer; AAge:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileRead(AHandle:THandle; var ABuffer; ACount:LongInt):LongInt;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileWrite(AHandle:THandle; const ABuffer; ACount:LongInt):LongInt;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateDir(const ADirName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveDir(const ADirName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameDir(const AOldName,ANewName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCurrentDir:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCurrentDirEx(ADrive:Byte):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrentDir(const ADirName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DirectoryExists(const ADirName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure ForceDirectories(ADirName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure DeleteTree(const ADirName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirst(const APath:String; AAttr:Integer; var ASearchRec:TSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNext(var ASearchRec:TSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindClose(var ASearchRec:TSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstStream(const AFileName:String; var ASearchRec:TStreamSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextStream(var ASearchRec:TStreamSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindStreamClose(var ASearchRec:TStreamSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstFileName(const AFileName:String; var ASearchRec:TLinkSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextFileName(var ASearchRec:TLinkSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindFileNameClose(var ASearchRec:TLinkSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateHardLink(const ALinkName,AFileName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteHardLink(const ALinkName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountPointExists(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateMountPoint(const APathName,AVolumeName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteMountPoint(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function JunctionPointExists(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateJunctionPoint(const APathName,AFolderName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteJunctionPoint(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SymbolicLinkExists(const ALinkName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateSymbolicLink(const ALinkName,ATargetName:String; ADirectory:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateSymbolicLinkEx(const ALinkName,AShortName,ATargetName:String; ADirectory:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSymbolicLink(const ALinkName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetMountPointTarget(const APathName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetJunctionPointTarget(const APathName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSymbolicLinkTarget(const ALinkName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetFileShortName(const AFileName,AShortName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileShortNameEx(AHandle:Integer; const AShortName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileSecurity(const AFileName:String; ADescriptor:Pointer; var ASize:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileSecurity(const AFileName:String; ADescriptor:Pointer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileCopy(const ASourceFile,ADestFile:String; AFailIfExists:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileCopyEx(const ASourceFile,ADestFile:String; AFailIfExists:Boolean; AUseSourceDate:Boolean; ADestDate:Integer; AUseSourceAttr:Boolean; ADestAttr:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileMove(const ASourceFile,ADestFile:String; AFailIfExists:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileMoveEx(const ASourceFile,ADestFile:String; AFailIfExists:Boolean; AUseSourceDate:Boolean; ADestDate:Integer; AUseSourceAttr:Boolean; ADestAttr:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathName(const AFileName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetShortName(const AFileName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLongName(const AFileName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTrueName(const AFileName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddSlash(const AFilePath:String; ALeading,ATrailing:Boolean):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSlash(const AFilePath:String; ALeading,ATrailing:Boolean):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileCreateEx(const AFileName,AShortName:String; AMode:Integer = fmOpenReadWrite or fmShareExclusive):THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateDirEx(const ADirName,AShortName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileSeekEx(AHandle:THandle; const AOffset:Int64; AOrigin:LongInt):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function EndOfFileEx(AHandle:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FilePosEx(AHandle:THandle):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSizeEx(AHandle:THandle):Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileAgeEx(const AFileName:String):TFileTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileGetAttrEx(AHandle:Integer):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileGetDateEx(AHandle:Integer):TFileTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetDateEx(AHandle:Integer ;AAge:TFileTime):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileTime(AHandle:Integer; ACreateTime,AAccessTime,AWriteTime:PFileTime):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileTime(AHandle:Integer; ACreateTime,AAccessTime,AWriteTime:PFileTime):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindOne(const APath:String; var ASearchRec:TFileSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindAll(const APath:String; var ASearchRec:TFileSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstEx(const APath:String; var ASearchRec:TFileSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextEx(var ASearchRec:TFileSearchRec):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindCloseEx(var ASearchRec:TFileSearchRec);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DefineDosDevice(const ADeviceName,ATargetPath:String; AFlags:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDiskType(const ARootPath:String):LongWord;</code>
| + | |
− | | Equivalent to Win32 GetDriveType
| + | |
− | |-
| + | |
− | | <code>function GetDiskFreeSpace(const ARootPath:String; var ASectorsPerCluster,ABytesPerSector,ANumberOfFreeClusters,ATotalNumberOfClusters:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDiskFreeSpaceEx(const APathName:String; var AFreeBytesAvailableToCaller,ATotalNumberOfBytes,ATotalNumberOfFreeBytes:QWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLogicalDrives:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLogicalDriveStrings:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeInformation(const ARootPath:String; var AVolumeName:String; var AVolumeSerialNumber,AMaximumComponentLength,AFileSystemFlags:LongWord; var ASystemName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function QueryDosDevice(const ARootPath:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetVolumeLabel</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AreFileApisANSI:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseFile(AHandle:THandle):Boolean;</code>
| + | |
− | | Equivalent to Win32 CloseHandle
| + | |
− | |-
| + | |
− | | <code>function CopyFile(const AExistingName,ANewName:String; AFailIfExists:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateFile(const AFileName:String; AAccessMode,AShareMode,ACreateFlags,AFileAttributes:LongWord):THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteFile</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindCloseFile(AHandle:THandle):Boolean;</code>
| + | |
− | | Equivalent to Win32 FindClose
| + | |
− | |-
| + | |
− | | <code>function FindFirstFile(const AFileName:String; var AFindData:TWin32FindData):THandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextFile(AHandle:THandle; var AFindData:TWin32FindData):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushFileBuffers(AHandle:THandle):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBinaryType</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileAttributes(const AFileName:String):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileInformationByHandle(AHandle:THandle; var AFileInformation:TByHandleFileInformation):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSize(AHandle:THandle; var AFileSizeHigh:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSizeEx</code>
| + | |
− | | Same as FileSizeEx
| + | |
− | |-
| + | |
− | | <code>function GetFileTime</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function GetFileType</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFullPathName(const AFileName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetShortPathName(const ALongPath:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTempDrive</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTempFileName</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTempPath</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LockFile</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LockFileEx</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MoveFile(const AExistingName,ANewName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MoveFileEx</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadFile(AHandle:THandle; var ABuffer; ABytesToRead:LongWord; var ABytesRead:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadFileEx</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SearchPath</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetEndOfFile</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function SetFileApisToANSI:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileApisToOEM:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileAttributes(const AFileName:String; AFileAttributes:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFilePointer(AHandle:THandle; ADistanceToMove:LongInt; var ADistanceToMoveHigh:LongInt; AMoveMethod:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFilePointerEx(AHandle:THandle; const ADistanceToMove:Int64; var ANewFilePointer:Int64; AMoveMethod:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileTime</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function SetHandleCount</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockFile</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockFileEx</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteFile(AHandle:THandle; const ABuffer; ABytesToWrite:LongWord; var ABytesWritten:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteFileEx </code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLongPathName(const AShortPath:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileShortName</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateDirectory(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateDirectoryEx</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCurrentDirectory:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveDirectory(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrentDirectory(const APathName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstStream </code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindNextStream</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateHardlink</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindFirstFileName</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindNextFileName</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetVolumeMountPoint</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteVolumeMountPoint</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindFirstVolumeMountPoint</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextVolumeMountPoint</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindVolumeMountPointClose</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSymbolicLink</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstVolume</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindNextVolume</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function FindVolumeClose</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileSecurity</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function SetFileSecurity</code>
| + | |
− | | Already Defined
| + | |
− | |-
| + | |
− | | <code>function GetNamedSecurityInfo</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetNamedSecurityInfo</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDeviceFromRaw(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDeviceFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPartitionFromRaw(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFromPath(const APath:String; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFromRaw(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFromFile(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeFromFind(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveFromPath(const APath:String; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFromRaw(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFromFile(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFromFind(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetImageFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCatalogFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemFromPath(const APath:String; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemFromEnum(AHandle:Integer; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemFromFile(AHandle:Integer; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSystemFromFind(AHandle:Integer; ALock:Boolean; AState:LongWord):TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRawFromHandle(AHandle:Integer; ALock:Boolean; AState:LongWord):TRawHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEnumFromHandle(AHandle:Integer; ALock:Boolean; AState:LongWord):TEnumHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileFromHandle(AHandle:Integer; ALock:Boolean; AState:LongWord):TFileHandle;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function GetFindFromHandle(AHandle:Integer; ALock:Boolean; AState:LongWord):TFindHandle;</code> | + | | [[TFileSysDriver|<code>TFileSysDriver = class(TObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system list'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFileSysList = class(TLinkedObjList)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create;</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure ClearList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function WriterConvert:Boolean;</code> | + | | [[TFileSysList|<code>TFileSysList = class(TLinkedObjList)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system list extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFileSysListEx = class(TLinkedObjList)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ALock:TSynchronizerHandle);</code> | + | | [[TFileSysListEx|<code>TFileSysListEx = class(TLinkedObjList)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure ClearList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system tree'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFileSysTree = class(TLinkedObjTree)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TFileSysTree|<code>TFileSysTree = class(TLinkedObjTree)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure ClearList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk drive'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskDrive = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; AVolume:TDiskVolume; ADriveNo:Integer);</code> | + | | [[TDiskDrive|<code>TDiskDrive = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDriveNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDriveType:TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFileSystem:TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRemovable:Boolean;</code>
| + | |
− | | Drive is removable - Set by DriveInit
| + | |
− | |-
| + | |
− | | <code>FRecognizable:Boolean;</code>
| + | |
− | | Drive allows Recognize Drive
| + | |
− | |-
| + | |
− | | <code>FRecognized:Boolean;</code>
| + | |
− | | Recognized Drive - Set by Recognizer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | | Sector Size of Drive or Device
| + | |
− | |-
| + | |
− | | <code>FStartSector:Int64;</code>
| + | |
− | | Start Sector on Drive or Device
| + | |
− | |-
| + | |
− | | <code>FSectorCount:LongWord;</code>
| + | |
− | | Total Sectors in Drive
| + | |
− | |-
| + | |
− | | <code>FSectorShiftCount:Word;</code>
| + | |
− | | Sectors to Bytes Shift Count
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRoot:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetParent:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetMaxFile:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxPath:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSystemName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeGUID:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeSerial:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveType:TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSysType:TFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFileSystem(AFileSystem:TFileSystem);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRemovable:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognizable:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRecognized:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSectorSize:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetStartSector:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorShiftCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartition:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Root:String read GetRoot;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Parent:String read GetParent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Volume:TDiskVolume read FVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DriveNo:Integer read FDriveNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property MaxFile:Integer read GetMaxFile;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxPath:Integer read GetMaxPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read GetAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemName:String read GetSystemName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeName:String read GetVolumeName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeGUID:String read GetVolumeGUID;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSerial:LongWord read GetVolumeSerial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DriveType:TDriveType read GetDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileSysType:TFileSysType read GetFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FileSystem:TFileSystem read FFileSystem write SetFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Removable:Boolean read GetRemovable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognizable:Boolean read GetRecognizable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognized:Boolean read GetRecognized write FRecognized;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read GetSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartSector:Int64 read GetStartSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:LongWord read GetSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorShiftCount:Word read GetSectorShiftCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Device:TDiskDevice read GetDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Partition:TDiskPartition read GetPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DriveInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Raw handle'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TRawHandle = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TRawHandle|<code>TRawHandle = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Device:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Partition:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Volume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Drive:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>OpenMode:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>ShareMode:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Size:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Position:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Handle:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Enumerate handle'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TEnumHandle = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TEnumHandle|<code>TEnumHandle = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>FileSystem:TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Handle:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>CurrentDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentPartition:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentDrive:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentVolume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentImage:TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentCatalog:TDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''File handle'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFileHandle = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TFileHandle|<code>TFileHandle = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Volume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Drive:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>OpenMode:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>ShareMode:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Position:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Handle:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>DataValue:LongWord;</code>
| + | |
− | | Available to FileSystem for private use
| + | |
− | |-
| + | |
− | | <code>DataOffset:LongWord;</code>
| + | |
− | | Available to FileSystem for private use
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ParentEntry:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>HandleEntry:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Find handle'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFindHandle = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TFindHandle|<code>TFindHandle = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>Volume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Drive:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>Any:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Mask:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Attr:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Flags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>Handle:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>ParentEntry:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>CurrentEntry:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskController = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TDiskController|<code>TDiskController = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FControllerNo:Integer;</code>
| + | |
− | | \Controller0, \Controller1 etc - See Notes
| + | |
− | |-
| + | |
− | | <code>FDescription:String;</code>
| + | |
− | | Description of Controller - eg "Standard ATA Controller"
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDescription:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFixedDiskCount:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFloppyDiskCount:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:Word; var LBA:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PCHStoLBA(ADevice:TDiskDevice; Cylinder,Head,Sector:LongWord; var LBA:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LBAtoLCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LBAtoPCHS(ADevice:TDiskDevice; LBA:LongWord; var Cylinder,Head,Sector:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LCHStoPCHS(ADevice:TDiskDevice; LCylinder,LHead,LSector:Word; var PCylinder,PHead,PSector:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PCHStoLCHS(ADevice:TDiskDevice; PCylinder,PHead,PSector:LongWord; var LCylinder,LHead,LSector:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ControllerNo:Integer read FControllerNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Description:String read GetDescription;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Read(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Erase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Reset(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Information(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function VendorId(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceId(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Manufacturer(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Product(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SerialNumber(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function HostBus(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function BusNumber(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceNumber(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FunctionNumber(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function BaseAddress(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InterfaceType(ADevice:TDiskDevice):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Slave(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalUnitNo(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FireWireGUID(ADevice:TDiskDevice):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WorldWideNo(ADevice:TDiskDevice):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PhysicalPort(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ControlPort(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function IRQ(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PIO(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DMA(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LBA(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Version(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaType(ADevice:TDiskDevice):TMediaType; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FloppyType(ADevice:TDiskDevice):TFloppyType; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ready(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Locked(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Lockable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ejectable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Readable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Writeable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Eraseable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Removable(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ChangeLine(ADevice:TDiskDevice):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PhysicalCylinders(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalHeads(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalSectors(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LogicalCylinders(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalHeads(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalSectors(ADevice:TDiskDevice):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SectorSize(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SectorCount(ADevice:TDiskDevice):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SectorShiftCount(ADevice:TDiskDevice):Word; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk device'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskDevice = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; AController:TDiskController; AImage:TDiskImage; AStorage:PStorageDevice; ADeviceNo:Integer; const AIdentifier:String);</code> | + | | [[TDiskDevice|<code>TDiskDevice = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FController:TDiskController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FImage:TDiskImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStorage:PStorageDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDeviceNo:Integer;</code>
| + | |
− | | 00h, 01h, 80h, 81h etc - See Notes
| + | |
− | |-
| + | |
− | | <code>FIdentifier:String;</code>
| + | |
− | | Controller Specific Identifier
| + | |
− | |-
| + | |
− | | <code>FInformation:String;</code>
| + | |
− | | Description of Device - eg "Standard ATA Disk"
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FVendorId:Word;</code>
| + | |
− | | PCI or USB Vendor Id
| + | |
− | |-
| + | |
− | | <code>FDeviceId:Word;</code>
| + | |
− | | PCI or USB Device Id
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FManufacturer:String;</code>
| + | |
− | | Device Manufacturer name
| + | |
− | |-
| + | |
− | | <code>FProduct:String;</code>
| + | |
− | | Device Product name
| + | |
− | |-
| + | |
− | | <code>FSerialNumber:String;</code>
| + | |
− | | Device Serial Number
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHostBus:String;</code>
| + | |
− | | PCI, ISA etc
| + | |
− | |-
| + | |
− | | <code>FBusNumber:Word;</code>
| + | |
− | | PCI Bus No
| + | |
− | |-
| + | |
− | | <code>FDeviceNumber:Word;</code>
| + | |
− | | PCI Device No
| + | |
− | |-
| + | |
− | | <code>FFunctionNumber:Word;</code>
| + | |
− | | PCI Function No
| + | |
− | |-
| + | |
− | | <code>FBaseAddress:Word;</code>
| + | |
− | | ISA Base Address
| + | |
− | |-
| + | |
− | | <code>FInterfaceType:String;</code>
| + | |
− | | ATA, ATAPI, SCSI, USB, 1394, FIBRE
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSlave:Boolean;</code>
| + | |
− | | Device is Slave
| + | |
− | |-
| + | |
− | | <code>FLogicalUnitNo:LongWord;</code>
| + | |
− | | LUN No eg SCSI, ATAPI or USB
| + | |
− | |-
| + | |
− | | <code>FFireWireGUID:Int64;</code>
| + | |
− | | FireWire GUID No
| + | |
− | |-
| + | |
− | | <code>FWorldWideNo:Int64;</code>
| + | |
− | | Fibre Channel WWN
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPhysicalPort:Word;</code>
| + | |
− | | Physical IO Port
| + | |
− | |-
| + | |
− | | <code>FControlPort:Word;</code>
| + | |
− | | Drive Control Port
| + | |
− | |-
| + | |
− | | <code>FIRQ:LongWord;</code>
| + | |
− | | IRQ No
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPIO:Boolean;</code>
| + | |
− | | PIO Transfer Enabled
| + | |
− | |-
| + | |
− | | <code>FDMA:Boolean;</code>
| + | |
− | | DMA Transfer Enabled
| + | |
− | |-
| + | |
− | | <code>FLBA:Boolean;</code>
| + | |
− | | Supports LBA (eg Int13 Extensions)
| + | |
− | |-
| + | |
− | | <code>FVersion:LongWord;</code>
| + | |
− | | Version Information (eg Int13 Extensions Version 01h,20h,21h,30h)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FMediaType:TMediaType;</code>
| + | |
− | | Media Type eg Fixed, Removable, Floppy
| + | |
− | |-
| + | |
− | | <code>FFloppyType:TFloppyType;</code>
| + | |
− | | Floppy Type eg 360K, 1.44M, ATAPI
| + | |
− | |-
| + | |
− | | <code>FReady:Boolean;</code>
| + | |
− | | Media is Inserted in Drive
| + | |
− | |-
| + | |
− | | <code>FLocked:Boolean;</code>
| + | |
− | | Media is Locked in Drive
| + | |
− | |-
| + | |
− | | <code>FLockable:Boolean;</code>
| + | |
− | | Media is Lockable
| + | |
− | |-
| + | |
− | | <code>FEjectable:Boolean;</code>
| + | |
− | | Media is Ejectable
| + | |
− | |-
| + | |
− | | <code>FReadable:Boolean;</code>
| + | |
− | | Media is Readable
| + | |
− | |-
| + | |
− | | <code>FWriteable:Boolean;</code>
| + | |
− | | Media is Writeable
| + | |
− | |-
| + | |
− | | <code>FEraseable:Boolean;</code>
| + | |
− | | Media is Eraseable
| + | |
− | |-
| + | |
− | | <code>FRemovable:Boolean;</code>
| + | |
− | | Media is Removable
| + | |
− | |-
| + | |
− | | <code>FChangeLine:Boolean;</code>
| + | |
− | | Supports ChangeLine detection
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPhysicalCylinders:LongWord;</code>
| + | |
− | | Physical Cylinders on Drive
| + | |
− | |-
| + | |
− | | <code>FPhysicalHeads:LongWord;</code>
| + | |
− | | Physical Heads on Drive
| + | |
− | |-
| + | |
− | | <code>FPhysicalSectors:LongWord;</code>
| + | |
− | | Physical Sectors per Track
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLogicalCylinders:LongWord;</code>
| + | |
− | | Logical Cylinders on Drive
| + | |
− | |-
| + | |
− | | <code>FLogicalHeads:LongWord;</code>
| + | |
− | | Logical Heads on Drive
| + | |
− | |-
| + | |
− | | <code>FLogicalSectors:LongWord;</code>
| + | |
− | | Logical Sectors per Track
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | | Bytes Per Sector
| + | |
− | |-
| + | |
− | | <code>FSectorCount:Int64;</code>
| + | |
− | | Total Sectors
| + | |
− | |-
| + | |
− | | <code>FSectorShiftCount:Word;</code>
| + | |
− | | Sectors to Bytes Shift Count
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPageCount:Word;</code>
| + | |
− | | Cache Page Count for this Device
| + | |
− | |-
| + | |
− | | <code>FPageShift:Word;</code>
| + | |
− | | Cache Page Shift for this Device
| + | |
− | |-
| + | |
− | | <code>FPageMask:LongWord;</code>
| + | |
− | | Cache Page Mask for this Device
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetInformation:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetManufacturer:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetProduct:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSerialNumber:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetHostBus:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetInterfaceType:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFreeSectors:Int64;</code>
| + | |
− | | Unused Sectors on Device
| + | |
− | |-
| + | |
− | | <code>function GetAvailableSectors:Int64;</code>
| + | |
− | | Largest block of Unused Sectors
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAvailableBlock(var AStart,ACount:Int64):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDiskSignature:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDiskSignature(ADiskSignature:LongWord); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Controller:TDiskController read FController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Image:TDiskImage read FImage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Storage:PStorageDevice read FStorage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DeviceNo:Integer read FDeviceNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Identifier:String read GetIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Information:String read GetInformation;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property VendorId:Word read FVendorId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DeviceId:Word read FDeviceId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Manufacturer:String read GetManufacturer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Product:String read GetProduct;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SerialNumber:String read GetSerialNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HostBus:String read GetHostBus;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BusNumber:Word read FBusNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DeviceNumber:Word read FDeviceNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FunctionNumber:Word read FFunctionNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BaseAddress:Word read FBaseAddress;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property InterfaceType:String read GetInterfaceType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Slave:Boolean read FSlave;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogicalUnitNo:LongWord read FLogicalUnitNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FireWireGUID:Int64 read FFireWireGUID;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WorldWideNo:Int64 read FWorldWideNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PhysicalPort:Word read FPhysicalPort;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ControlPort:Word read FControlPort;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property IRQ:LongWord read FIRQ;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PIO:Boolean read FPIO;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DMA:Boolean read FDMA;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LBA:Boolean read FLBA;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Version:LongWord read FVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property MediaType:TMediaType read FMediaType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FloppyType:TFloppyType read FFloppyType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Ready:Boolean read FReady;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Locked:Boolean read FLocked;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Lockable:Boolean read FLockable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Ejectable:Boolean read FEjectable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Readable:Boolean read FReadable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Writeable:Boolean read FWriteable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Eraseable:Boolean read FEraseable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Removable:Boolean read FRemovable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ChangeLine:Boolean read FChangeLine;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PhysicalCylinders:LongWord read FPhysicalCylinders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PhysicalHeads:LongWord read FPhysicalHeads;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PhysicalSectors:LongWord read FPhysicalSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property LogicalCylinders:LongWord read FLogicalCylinders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogicalHeads:LongWord read FLogicalHeads;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogicalSectors:LongWord read FLogicalSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read FSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:Int64 read FSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorShiftCount:Word read FSectorShiftCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PageCount:Word read FPageCount write FPageCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageShift:Word read FPageShift write FPageShift;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageMask:LongWord read FPageMask write FPageMask;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FreeSectors:Int64 read GetFreeSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AvailableSectors:Int64 read GetAvailableSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DiskSignature:LongWord read GetDiskSignature write SetDiskSignature;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DeviceInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocatePartitions:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocateVolumes:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateVolume:TDiskVolume; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreatePartition(AParent:TDiskPartition; APartitionId:Byte; ACount:LongWord; AActive:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeletePartition(APartition:TDiskPartition):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ModifyPartition(APartition:TDiskPartition; APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ActivatePartition(APartition:TDiskPartition; AActive:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkPartition(APartition:TDiskPartition; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandPartition(APartition:TDiskPartition; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Reset:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function InsertDevice:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectDevice:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenDevice(AMode:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure CloseDevice(AHandle:Integer); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadDevice(AHandle:Integer; var ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteDevice(AHandle:Integer; const ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EraseDevice(AHandle:Integer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekDevice(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk partition'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskPartition = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ADevice:TDiskDevice; APartition:TDiskPartition; APartitionNo:Integer);</code> | + | | [[TDiskPartition|<code>TDiskPartition = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPartition:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPartitionNo:Integer;</code>
| + | |
− | | \Partition1, \Partition2 etc - See Notes
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntryNo:Integer;</code>
| + | |
− | | 0,1,2,3
| + | |
− | |-
| + | |
− | | <code>FPartitionId:Byte;</code>
| + | |
− | | Partition Type from Table
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBeginHead:Word;</code>
| + | |
− | | Logical Starting Head (not Physical)
| + | |
− | |-
| + | |
− | | <code>FBeginSector:Word;</code>
| + | |
− | | Logical Starting Sector (not Physical)
| + | |
− | |-
| + | |
− | | <code>FBeginCylinder:Word;</code>
| + | |
− | | Logical Starting Cylinder (not Physical)
| + | |
− | |-
| + | |
− | | <code>FEndHead:Word;</code>
| + | |
− | | Logical Ending Head (not Physical)
| + | |
− | |-
| + | |
− | | <code>FEndSector:Word;</code>
| + | |
− | | Logical Ending Sector (not Physical)
| + | |
− | |-
| + | |
− | | <code>FEndCylinder:Word;</code>
| + | |
− | | Logical Ending Cylinder (not Physical)
| + | |
− | |-
| + | |
− | | <code>FSectorOffset:LongWord;</code>
| + | |
− | | Offset in Sectors from Location of Table to StartSector
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FActive:Boolean;</code>
| + | |
− | | Active Partition Indicator ($80)
| + | |
− | |-
| + | |
− | | <code>FExtended:Boolean;</code>
| + | |
− | | Extended Partition Type (no Volume) - Set by Recognizer
| + | |
− | |-
| + | |
− | | <code>FRecognizable:Boolean;</code>
| + | |
− | | Partition allows Recognize Partition
| + | |
− | |-
| + | |
− | | <code>FRecognized:Boolean;</code>
| + | |
− | | Recognized Partition Id - Set by Recognizer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FNonVolume:Boolean;</code>
| + | |
− | | Non Volume Partition (eg Linux Swap) - Set by Recognizer
| + | |
− | |-
| + | |
− | | <code>FMultiVolume:Boolean;</code>
| + | |
− | | Multiple Volume Partition (eg Netware) - Set by Recognizer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FStartSector:Int64;</code>
| + | |
− | | Absolute Start Sector on Device
| + | |
− | |-
| + | |
− | | <code>FSectorCount:LongWord;</code>
| + | |
− | | Total Sectors in Partition
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPath:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetParent:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLogical:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPrimary:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetExtended(AExtended:Boolean);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFreeSectors:LongWord;</code>
| + | |
− | | Unused Sectors in Partition
| + | |
− | |-
| + | |
− | | <code>function GetAvailableSectors:LongWord;</code>
| + | |
− | | Largest block of Unused Sectors
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetAvailableBlock(var AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRoot:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetParentStart:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPartitionRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetPartitionRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Path:String read GetPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Parent:String read GetParent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Device:TDiskDevice read FDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Partition:TDiskPartition read FPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PartitionNo:Integer read FPartitionNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property EntryNo:Integer read FEntryNo write FEntryNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PartitionId:Byte read FPartitionId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property BeginHead:Word read FBeginHead;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BeginSector:Word read FBeginSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BeginCylinder:Word read FBeginCylinder;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EndHead:Word read FEndHead;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EndSector:Word read FEndSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EndCylinder:Word read FEndCylinder;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorOffset:LongWord read FSectorOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Active:Boolean read FActive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Logical:Boolean read GetLogical;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Primary:Boolean read GetPrimary;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Extended:Boolean read FExtended write SetExtended;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognizable:Boolean read FRecognizable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognized:Boolean read FRecognized write FRecognized;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property NonVolume:Boolean read FNonVolume write FNonVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MultiVolume:Boolean read FMultiVolume write FMultiVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property StartSector:Int64 read FStartSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:LongWord read FSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FreeSectors:LongWord read GetFreeSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AvailableSectors:LongWord read GetAvailableSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Root:TDiskPartition read GetRoot;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ParentStart:LongWord read GetParentStart;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PartitionInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocatePartitions:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocateVolumes:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateVolume:TDiskVolume; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenPartition(AMode:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure ClosePartition(AHandle:Integer); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadPartition(AHandle:Integer; var ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WritePartition(AHandle:Integer; const ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekPartition(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk volume'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskVolume = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ADevice:TDiskDevice; APartition:TDiskPartition; AVolumeNo:Integer);</code> | + | | [[TDiskVolume|<code>TDiskVolume = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPartition:TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FVolumeNo:Integer;</code>
| + | |
− | | \Volume1 , \Volume2, etc - See Notes
| + | |
− | |-
| + | |
− | | <code>FSegmentNo:Integer;</code>
| + | |
− | | Segment0, Segment1 etc - for Multiple Segment volumes (eg Netware)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDriveType:TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFileSystem:TFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRemovable:Boolean;</code>
| + | |
− | | Volume is Removable - Set by VolumeInit
| + | |
− | |-
| + | |
− | | <code>FRecognizable:Boolean;</code>
| + | |
− | | Volume allows Recognize Volume
| + | |
− | |-
| + | |
− | | <code>FRecognized:Boolean;</code>
| + | |
− | | Recognized Volume - Set by Recognizer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | | Sector Size of Device
| + | |
− | |-
| + | |
− | | <code>FStartSector:Int64;</code>
| + | |
− | | Absolute Start Sector on Device
| + | |
− | |-
| + | |
− | | <code>FSectorCount:LongWord;</code>
| + | |
− | | Total Sectors in Volume
| + | |
− | |-
| + | |
− | | <code>FSectorShiftCount:Word;</code>
| + | |
− | | Sectors to Bytes Shift Count
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetParent:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetMaxFile:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxPath:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSystemName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeGUID:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeSerial:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileSysType:TFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetFileSystem(AFileSystem:TFileSystem);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSectorSize:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetStartSector:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorShiftCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaTypeToDriveType(AMediaType:TMediaType):TDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Parent:String read GetParent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Device:TDiskDevice read FDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Partition:TDiskPartition read FPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeNo:Integer read FVolumeNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SegmentNo:Integer read FSegmentNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property MaxFile:Integer read GetMaxFile;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxPath:Integer read GetMaxPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read GetAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemName:String read GetSystemName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeName:String read GetVolumeName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeGUID:String read GetVolumeGUID;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSerial:LongWord read GetVolumeSerial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DriveType:TDriveType read FDriveType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileSysType:TFileSysType read GetFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FileSystem:TFileSystem read FFileSystem write SetFileSystem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Removable:Boolean read FRemovable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognizable:Boolean read FRecognizable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Recognized:Boolean read FRecognized write FRecognized;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read GetSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartSector:Int64 read GetStartSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:LongWord read GetSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorShiftCount:Word read GetSectorShiftCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function VolumeInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateDrive(ADriveNo:Integer):TDiskDrive; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteDrive(ADrive:TDiskDrive):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountVolume(ADriveNo:Integer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountVolume:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FormatVolume(AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DefragmentVolume:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ConvertVolume(AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RepairVolume:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyVolume(ADest:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkVolume(const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandVolume(const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenVolume(AMode:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure CloseVolume(AHandle:Integer); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadVolume(AHandle:Integer; var ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteVolume(AHandle:Integer; const ABuffer; ACount:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekVolume(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk image'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskImage = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; AController:TDiskController; const AName:String; AImageNo:Integer);</code> | + | | [[TDiskImage|<code>TDiskImage = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FController:TDiskController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FImageNo:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLocked:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FChanged:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FImageType:TImageType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMediaType:TMediaType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFloppyType:TFloppyType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FCylinders:LongWord;</code>
| + | |
− | | Physical Cylinders on Drive
| + | |
− | |-
| + | |
− | | <code>FHeads:LongWord;</code>
| + | |
− | | Physical Heads on Drive
| + | |
− | |-
| + | |
− | | <code>FSectors:LongWord;</code>
| + | |
− | | Physical Sectors per Track
| + | |
− | |-
| + | |
− | | <code>FLogicalShiftCount:Word;</code>
| + | |
− | | Physical to Logical Shift Count
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | | Bytes Per Sector
| + | |
− | |-
| + | |
− | | <code>FSectorCount:Int64;</code>
| + | |
− | | Total Sectors
| + | |
− | |-
| + | |
− | | <code>FSectorShiftCount:Word;</code>
| + | |
− | | Sectors to Bytes Shift Count
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPartitionId:Byte;</code>
| + | |
− | | Partition Type for Table
| + | |
− | |-
| + | |
− | | <code>FFileSysType:TFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetReady:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetReadable:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetWriteable:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEraseable:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCylinders:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetHeads:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectors:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLogicalShiftCount:Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSectorSize:Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount:Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorShiftCount:Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPartitionId:Byte; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetDevice(ADevice:TDiskDevice);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Controller:TDiskController read FController;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ImageNo:Integer read FImageNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Ready:Boolean read GetReady;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Locked:Boolean read FLocked;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Changed:Boolean read FChanged;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Readable:Boolean read GetReadable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Writeable:Boolean read GetWriteable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Eraseable:Boolean read GetEraseable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read FAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ImageType:TImageType read FImageType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MediaType:TMediaType read FMediaType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FloppyType:TFloppyType read FFloppyType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Cylinders:LongWord read FCylinders;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Heads:LongWord read FHeads;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Sectors:LongWord read FSectors;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogicalShiftCount:Word read FLogicalShiftCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read FSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:Int64 read FSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorShiftCount:Word read FSectorShiftCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PartitionId:Byte read FPartitionId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileSysType:TFileSysType read FFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Device:TDiskDevice read FDevice write SetDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterOwner:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ImageInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Read(ASector:LongWord; ACount:Word; var ABuffer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(ASector:LongWord; ACount:Word; const ABuffer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Allocated(ASector:LongWord; ACount:Word):Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountImage:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountImage:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertImage:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectImage:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ConvertImage(AImageType:TImageType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyImage(ADest:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ShrinkImage(const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandImage(const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateImage(AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function OpenImage(AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseImage:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ResizeImage(const ASectorCount:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSnapshot:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSnapshot:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MergeSnapshot:Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Recognizer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TRecognizer = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FAllowDrive:Boolean;</code>
| + | |
− | | Enable mounting with an attached Drive
| + | |
− | |-
| + | |
− | | <code>FAllowDefault:Boolean;</code>
| + | |
− | | Enable mounting of unrecognized media (Unpartitioned Media Only)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDirtyCheck:Boolean;</code>
| + | |
− | | Enable checking Volume when dirty flag set on mount
| + | |
− | |-
| + | |
− | | <code>FQuickCheck:Boolean;</code>
| + | |
− | | Enable quick check only when checking dirty Volume
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPartitioner:TDiskPartitioner;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFormatter:TDiskFormatter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDefragger:TDiskDefragger;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FConverter:TDiskConverter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRepairer:TDiskRepairer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FResizer:TDiskResizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCopier:TDiskCopier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FImager:TDiskImager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property AllowDrive:Boolean read FAllowDrive write FAllowDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AllowDefault:Boolean read FAllowDefault write FAllowDefault;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DirtyCheck:Boolean read FDirtyCheck write FDirtyCheck;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property QuickCheck:Boolean read FQuickCheck write FQuickCheck;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Partitioner:TDiskPartitioner read FPartitioner write FPartitioner;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Formatter:TDiskFormatter read FFormatter write FFormatter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Defragger:TDiskDefragger read FDefragger write FDefragger;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Converter:TDiskConverter read FConverter write FConverter;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Repairer:TDiskRepairer read FRepairer write FRepairer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Resizer:TDiskResizer read FResizer write FResizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Copier:TDiskCopier read FCopier write FCopier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Imager:TDiskImager read FImager write FImager;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizePartitionId(APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RecognizeBootSector(ABootSector:PBootSector; const AStartSector,ASectorCount:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizePartition(APartition:TDiskPartition):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RecognizeVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MountVolume(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizeImage(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MountImage(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountImage(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertImage(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function EjectImage(AImage:TDiskImage):Boolean; virtual;</code> | + | | [[TRecognizer|<code>TRecognizer = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Redirector'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TRedirector = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDrives:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RedirectPath(const APath:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RedirectDrive(ADrive:TDiskDrive):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AttachPath(const APath:String; ADrive:TDiskDrive):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function DetachDrive(ADrive:TDiskDrive):Boolean; virtual;</code> | + | | [[TRedirector|<code>TRedirector = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk partitioner'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskPartitioner = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FInitChar:Byte;</code>
| + | |
− | | Character to initialize sectors when adding partitions
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckLogical(ADevice:TDiskDevice; AParent:TDiskPartition; APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckExtended(ADevice:TDiskDevice; AParent:TDiskPartition; APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetLogicalChild(ADevice:TDiskDevice; APartition:TDiskPartition; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetExtendedSibling(ADevice:TDiskDevice; AParent:TDiskPartition; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetExtendedParent(ADevice:TDiskDevice; AParent:TDiskPartition; AStart:LongWord; ALock:Boolean; AState:LongWord):TDiskPartition;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetEndCHS(ADevice:TDiskDevice; AStart,ACount:LongWord; var ACylinder,AHead,ASector:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetStartCHS(ADevice:TDiskDevice; AStart,ACount:LongWord; var ACylinder,AHead,ASector:Word):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount(ADevice:TDiskDevice; AStart,ACount:LongWord):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetStartSector(ADevice:TDiskDevice; AExtended,ALogical:Boolean; AStart:LongWord; var ACount:LongWord):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorOffset(ADevice:TDiskDevice; AParent:TDiskPartition; AExtended:Boolean; AStart:LongWord):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPartitionId(ADevice:TDiskDevice; AParent:TDiskPartition; AStart,ACount:LongWord; APartitionId:Byte):Byte; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function InitPartition(ADevice:TDiskDevice; AParent:TDiskPartition; AStart,ACount:LongWord; APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreatePartitionRecord(ADevice:TDiskDevice; ARecord:PPartitionRecord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreatePartitionEntry(ADevice:TDiskDevice; AStart,ACount,AOffset:LongWord; APartitionId:Byte; AActive:Boolean; var AEntry:TPartitionEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FillSectors(ADevice:TDiskDevice; APartition:TDiskPartition; ASector,ACount:LongWord; AValue:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadSectors(ADevice:TDiskDevice; APartition:TDiskPartition; ASector,ACount:LongWord; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSectors(ADevice:TDiskDevice; APartition:TDiskPartition; ASector,ACount:LongWord; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property InitChar:Byte read FInitChar write FInitChar;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptPartition(ADevice:TDiskDevice; APartition,AParent:TDiskPartition; APartitionId:Byte):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreatePartition(ADevice:TDiskDevice; AParent:TDiskPartition; APartitionId:Byte; ACount:LongWord; AActive:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeletePartition(APartition:TDiskPartition):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ModifyPartition(APartition:TDiskPartition; APartitionId:Byte; AOverride:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function ActivatePartition(APartition:TDiskPartition; AActive:Boolean):Boolean; virtual;</code> | + | | [[TDiskPartitioner|<code>TDiskPartitioner = class(TObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk formatter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskFormatter = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskFormatter|<code>TDiskFormatter = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FillSectors(AVolume:TDiskVolume; ADrive:TDiskDrive; ASector,ACount:LongWord; AValue:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadSectors(AVolume:TDiskVolume; ADrive:TDiskDrive; ASector,ACount:LongWord; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSectors(AVolume:TDiskVolume; ADrive:TDiskDrive; ASector,ACount:LongWord; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FormatVolume(AVolume:TDiskVolume; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk defragger'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskDefragger = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskDefragger|<code>TDiskDefragger = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DefragmentVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk converter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskConverter = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskConverter|<code>TDiskConverter = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ConvertVolume(AVolume:TDiskVolume; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptImage(AImage:TDiskImage; AImageType:TImageType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ConvertImage(AImage:TDiskImage; AImageType:TImageType):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk repairer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskRepairer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskRepairer|<code>TDiskRepairer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RepairVolume(AVolume:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk resizer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskResizer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskResizer|<code>TDiskResizer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ShrinkVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptPartition(APartition:TDiskPartition; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ShrinkPartition(APartition:TDiskPartition; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandPartition(APartition:TDiskPartition; const AStart,ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptImage(AImage:TDiskImage; const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ShrinkImage(AImage:TDiskImage; const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandImage(AImage:TDiskImage; const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk copier'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskCopier = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskCopier|<code>TDiskCopier = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume,ADest:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CopyVolume(AVolume,ADest:TDiskVolume):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptImage(AImage,ADest:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CopyImage(AImage,ADest:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''Disk imager'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskImager = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDiskImager|<code>TDiskImager = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRecognizer:TRecognizer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptImage(AImage:TDiskImage; const AName:String; AImageType:TImageType; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateImage(AImage:TDiskImage; const AName:String; AImageType:TImageType; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function OpenImage(AImage:TDiskImage; const AName:String; AImageType:TImageType; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64; ACylinders,AHeads,ASectors:LongWord; APartitionId:Byte):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseImage(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcceptSnapshot(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSnapshot(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSnapshot(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MergeSnapshot(AImage:TDiskImage):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFileSystem = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; AVolume:TDiskVolume; ADrive:TDiskDrive);</code> | + | | [[TFileSystem|<code>TFileSystem = class(TListObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolume:TDiskVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDrive:TDiskDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPathChar:String;</code>
| + | |
− | | Path separator character
| + | |
− | |-
| + | |
− | | <code>FNameChar:String;</code>
| + | |
− | | Name separator character
| + | |
− | |-
| + | |
− | | <code>FFileChar:String;</code>
| + | |
− | | File separator character
| + | |
− | |-
| + | |
− | | <code>FRootChar:String;</code>
| + | |
− | | Root specifier character (eg C:)
| + | |
− | |-
| + | |
− | | <code>FRootName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FRootPath:String;</code>
| + | |
− | | Root Path must be prefixed with \\.
| + | |
− | |-
| + | |
− | | <code>FMaxFile:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaxPath:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaxAltFile:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaxAltPath:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaxAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMaskAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMountPointTag:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSymbolicLinkTag:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSystemName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolumeName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolumeGUID:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolumeSerial:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFileSysType:TFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStartSector:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSectorCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRoot:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FCurrentIndex:LongWord;</code>
| + | |
− | | TLS Index for storing current directory
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FChunks:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FTables:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FBlocks:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FEntries:TFileSysTree;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogs:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAcls:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FChunkLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskChunk objects
| + | |
− | |-
| + | |
− | | <code>FTableLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskTable objects
| + | |
− | |-
| + | |
− | | <code>FBlockLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskBlock objects
| + | |
− | |-
| + | |
− | | <code>FEntryLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskEntry objects
| + | |
− | |-
| + | |
− | | <code>FCatalogLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskCatalog objects
| + | |
− | |-
| + | |
− | | <code>FSecurityLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskSecurity objects
| + | |
− | |-
| + | |
− | | <code>FAclLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskAcl objects
| + | |
− | |-
| + | |
− | | <code>FAceLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all DiskAce objects
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FMarkDirty:Boolean;</code>
| + | |
− | | Mark the volume as dirty when dismounting (Either by request or due to error)
| + | |
− | |-
| + | |
− | | <code>FMarkClean:Boolean;</code>
| + | |
− | | Mark the volume as clean when dismounting (Only by request)
| + | |
− | |-
| + | |
− | | <code>FMarkError:Boolean;</code>
| + | |
− | | Error was encounted on volume, mark as dirty when dismounting
| + | |
− | |-
| + | |
− | | <code>FLogDirty:Boolean;</code>
| + | |
− | | LogFile was dirty when mounted (if supported by filesystem)
| + | |
− | |-
| + | |
− | | <code>FMountDirty:Boolean;</code>
| + | |
− | | Volume was dirty when mounted, leave marked as dirty when dismounting
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOemConvert:Boolean;</code>
| + | |
− | | Default to True overidden by descendants if not supported
| + | |
− | |-
| + | |
− | | <code>FNumericTail:Boolean;</code>
| + | |
− | | Default to True overidden by descendants if not supported
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReadOnly:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if True
| + | |
− | |-
| + | |
− | | <code>FLongNames:Boolean;</code>
| + | |
− | | Default to True overidden by descendants if not supported
| + | |
− | |-
| + | |
− | | <code>FDataStreams:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FReparsePoints:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FCaseSensitive:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FCasePreserved:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FUnicodeNames:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FPersistentAcls:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FFileCompression:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FVolumeQuotas:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FSparseFiles:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FRemoteStorage:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FVolumeCompressed:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FObjectIds:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FEncryption:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBootCatalog:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FVirtualVolume:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FFolderEncryption:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | | <code>FFolderCompression:Boolean;</code>
| + | |
− | | Default to False overidden by descendants if supported
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBootSector:LongWord;</code>
| + | |
− | | Relative to StartSector
| + | |
− | |-
| + | |
− | | <code>FBootBackup:LongWord;</code>
| + | |
− | | Relative to StartSector
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorBuffer:Pointer;</code>
| + | |
− | | Buffer of exactly sector size
| + | |
− | |-
| + | |
− | | <code>FSectorLock:TMutexHandle;</code>
| + | |
− | | Lock for sector buffer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SectorLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SectorUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>procedure SetDrive(ADrive:TDiskDrive); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVolume(AVolume:TDiskVolume); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetNameChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRootChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRootName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRootPath:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSystemName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeGUID:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadPathChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadNameChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadFileChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadRootChar:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadRootName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadRootPath:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadMaxFile:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadMaxPath:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadMaxAltFile:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadMaxAltPath:Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadAttributes:LongWord; virtual;</code>
| + | |
− | | Get the Volume Attributes
| + | |
− | |-
| + | |
− | | <code>function LoadMaxAttributes:LongWord; virtual;</code>
| + | |
− | | Get the Maximum File Attributes (used when setting file attributes)
| + | |
− | |-
| + | |
− | | <code>function LoadMaskAttributes:LongWord; virtual;</code>
| + | |
− | | Get the File Attributes Mask (used when getting file attributes)
| + | |
− | |-
| + | |
− | | <code>function LoadMountPointTag:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadSymbolicLinkTag:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadSystemName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeGUID:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeSerial:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadFileSysType:TFileSysType; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadSectorSize:Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadStartSector:Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadSectorCount:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCurrent:TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrent(ACurrent:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FillSectors(ASector,ACount:LongWord; AValue:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadSectors(ASector,ACount:LongWord; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSectors(ASector,ACount:LongWord; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadEntry(AParent,AEntry:TDiskEntry; var ABuffer; const AStart:Int64; ACount:LongWord; var AOffset,AValue:LongWord):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteEntry(AParent,AEntry:TDiskEntry; const ABuffer; const AStart:Int64; ACount:LongWord; var AOffset,AValue:LongWord):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadTables:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadBlocks:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadEntries(AParent:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadCatalogs:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadTable(ATableNo:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadBlock(ABlockNo:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|Note: LoadEntry can be implemented if needed but is not defined here.
| + | |
− | |-
| + | |
− | |colspan="2"|Note: LoadCatalog can be implemented if needed but is not defined here.
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UnloadEntries(AParent:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddEntry(AParent:TDiskEntry; const AName:String; AAttributes:LongWord; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddEntryEx(AParent:TDiskEntry; const AName,AAltName:String; AAttributes:LongWord; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveEntry(AParent,AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameEntry(AParent,AEntry:TDiskEntry; const AName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameEntryEx(AParent,AEntry:TDiskEntry; const AAltName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MoveEntry(ASource,ADest,AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddCatalog(AEntry:TDiskEntry; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveCatalog(ACatalog:TDiskCatalog):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckCatalog(ACatalog:TDiskCatalog; ALock:Boolean; AState:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByNo(ACatalogNo:LongWord; ALock:Boolean; AState:LongWord):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByName(const AName:String; ALock:Boolean; AState:LongWord):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogByNext(APrevious:TDiskCatalog; ALock,AUnlock:Boolean; AState:LongWord):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextCatalogNo:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMaxCatalogNo:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddHardlink(AEntry,AParent:TDiskEntry; const AName:String; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveHardlink(AParent,AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddMountPoint(AEntry:TDiskEntry; const ATarget:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveMountPoint(AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddJunctionPoint(AEntry:TDiskEntry; const ATarget:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveJunctionPoint(AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddSymbolicLink(AParent:TDiskEntry; const AName,ATarget:String; AFolder,AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddSymbolicLinkEx(AParent:TDiskEntry; const AName,AAltName,ATarget:String; AFolder,AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveSymbolicLink(AParent,AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetTable(ATable:TDiskTable):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetBlock(ABlock:TDiskBlock):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetEntry(AParent,AEntry:TDiskEntry):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCatalog(ACatalog:TDiskCatalog):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetReparse(AParent,AEntry:TDiskEntry; AReparse:TDiskReparse):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetSecurity(AParent,AEntry:TDiskEntry; ASecurity:TDiskSecurity):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SizeEntry(AParent,AEntry:TDiskEntry; const ASize:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetTable(ATableNo:LongWord):TDiskTable; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTableEx(ATableNo:LongWord; AWrite:Boolean):TDiskTable; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBlock(ABlockNo:LongWord):TDiskBlock; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBlockEx(ABlockNo:LongWord; AWrite:Boolean):TDiskBlock; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEntry(AParent:TDiskEntry; const AName:String; AAttributes:LongWord):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEntryEx(AParent:TDiskEntry; const AName:String; AAttributes:LongWord; AAdd,ARemove,AWrite:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalog(ACatalogNo:LongWord):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogEx(ACatalogNo:LongWord; AWrite:Boolean):TDiskCatalog; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetReparse(AEntry:TDiskEntry):TDiskReparse; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSecurity(AEntry:TDiskEntry):TDiskSecurity; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MatchEntry(AParent,APrevious:TDiskEntry; const AName:String; AAttributes:LongWord; AAny:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MatchEntryEx(AParent,APrevious:TDiskEntry; const AName:String; AAttributes:LongWord; AAny,AAdd,ARemove,AWrite:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetEntryPath(AEntry:TDiskEntry; AAltName:Boolean):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEntryName(AEntry:TDiskEntry; AAltName:Boolean):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SplitPath(const APath:String; var ARelative:Boolean; AFolders:TStrings; var AName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SplitName(const AName:String; var AFile,AStream:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SplitFile(const AFile:String; var AName,AExt:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SplitStream(const AStream:String; var AName,AType:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function BuildPath(ARelative:Boolean; AFolders:TLinkedStringList; const AName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function BuildName(const AFile,AStream:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function BuildFile(const AName,AExt:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function BuildStream(const AName,AType:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckName(const AName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareName(const AName,AMatch:String; AWildcard:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckAltName(const AAltName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareAltName(const AAltName,AMatch:String; AWildcard:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckLinkName(const AName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSecurityFromDescriptor(ADescriptor:Pointer):TDiskSecurity; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDescriptorFromSecurity(ASecurity:TDiskSecurity; ADescriptor:Pointer; var ASize:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Volume:TDiskVolume read FVolume write SetVolume;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Drive:TDiskDrive read FDrive write SetDrive;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PathChar:String read GetPathChar;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property NameChar:String read GetNameChar;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileChar:String read GetFileChar;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RootChar:String read GetRootChar;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RootName:String read GetRootName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RootPath:String read GetRootPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxFile:Integer read FMaxFile;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxPath:Integer read FMaxPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxAltFile:Integer read FMaxAltFile;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxAltPath:Integer read FMaxAltPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read FAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaxAttributes:LongWord read FMaxAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MaskAttributes:LongWord read FMaskAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MountPointTag:LongWord read FMountPointTag;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SymbolicLinkTag:LongWord read FSymbolicLinkTag;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemName:String read GetSystemName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeName:String read GetVolumeName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeGUID:String read GetVolumeGUID;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSerial:LongWord read FVolumeSerial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileSysType:TFileSysType read FFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read FSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartSector:Int64 read FStartSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:LongWord read FSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property MarkDirty:Boolean read FMarkDirty write FMarkDirty;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MarkClean:Boolean read FMarkClean write FMarkClean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MarkError:Boolean read FMarkError;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogDirty:Boolean read FLogDirty;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MountDirty:Boolean read FMountDirty;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterConvert:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileSystemInit:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountFileSystem:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountFileSystem:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InitializeFileSystem(ASectorsPerCluster:LongWord; AFileSysType:TFileSysType):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateCatalog(const AName:String; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64):LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteCatalog(ACatalogNo:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstCatalog(var ASearchRec:TCatalogSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextCatalog(var ASearchRec:TCatalogSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindCatalogClose(var ASearchRec:TCatalogSearchRec); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveLabel:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveLabel(const ALabel:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveSerial:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveSerial(ASerial:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveFreeSpace:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveFreeSpaceEx:Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveTotalSpace:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveTotalSpaceEx:Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveInformation(var AClusterSize:LongWord; var ATotalClusterCount,AFreeClusterCount:Int64):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileOpen(const FileName:String; Mode:Integer):THandle; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileCreate(const FileName:String; Mode:Integer = fmOpenReadWrite or fmShareExclusive):THandle; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteFile(const FileName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FileClose(Handle:Integer); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameFile(const OldName,NewName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSeek(Handle:THandle; Offset,Origin:LongInt):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSeekEx(Handle:THandle; const Offset:Int64; Origin:LongInt):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileFlush(Handle:Integer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileTruncate(Handle:Integer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FilePos(Handle:THandle):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FilePosEx(Handle:THandle):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileGetAttr(const FileName:String):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileGetDate(Handle:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileGetSize(Handle:THandle):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileGetSizeEx(Handle:THandle):Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetAttr(const FileName:String; Attr:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetDate(Handle:Integer; Age:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetSize(Handle:THandle; Size:LongInt):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetSizeEx(Handle:THandle; const Size:Int64):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileRead(Handle:THandle; var Buffer; Count:LongInt):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileWrite(Handle:THandle; const Buffer; Count:LongInt):LongInt; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateDir(const DirName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveDir(const DirName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCurrentDir:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetCurrentDir(const DirName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindOne(const Path:String; var SearchRec:TFileSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindAll(const Path:String; var SearchRec:TFileSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstEx(const Path:String; var SearchRec:TFileSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextEx(var SearchRec:TFileSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindCloseEx(var SearchRec:TFileSearchRec); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstStream(const FileName:String; var SearchRec:TStreamSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextStream(var SearchRec:TStreamSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindStreamClose(var SearchRec:TStreamSearchRec); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstFileName(const FileName:String; var SearchRec:TLinkSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextFileName(var SearchRec:TLinkSearchRec):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure FindFileNameClose(var SearchRec:TLinkSearchRec); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateHardLink(const LinkName,FileName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteHardLink(const LinkName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateMountPoint(const PathName,VolumeName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteMountPoint(const PathName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateJunctionPoint(const PathName,FolderName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteJunctionPoint(const PathName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSymbolicLink(const LinkName,TargetName:String; Directory:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateSymbolicLinkEx(const LinkName,ShortName,TargetName:String; Directory:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteSymbolicLink(const LinkName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetMountPointTarget(const PathName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetJunctionPointTarget(const PathName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSymbolicLinkTarget(const LinkName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetFileShortName(const FileName,ShortName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileShortNameEx(Handle:Integer; const ShortName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetFileSecurity(const FileName:String; Descriptor:Pointer; var Size:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileSecurity(const FileName:String; Descriptor:Pointer):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathName(const FileName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetShortName(const FileName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLongName(const FileName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTrueName(const FileName:String):String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileCreateEx(const FileName,ShortName:String):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CreateDirEx(const DirName,ShortName:String):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileGetAttrEx(Handle:Integer):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileGetDateEx(Handle:Integer):TFileTime; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileSetDateEx(Handle:Integer; Age:TFileTime):Integer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFileTime(Handle:Integer; CreateTime,AccessTime,ModifyTime:PFileTime):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetFileTime(Handle:Integer; CreateTime,AccessTime,ModifyTime:PFileTime):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CloseFile(Handle:THandle):Boolean; virtual;</code>
| + | |
− | | Equivalent to Win32 CloseHandle
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk chunk'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskChunk = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A disk chunk for multi segment Volumes such as NWFS/NSS. | + | | [[TDiskChunk|<code>TDiskChunk = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk table'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskTable = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A disk table such as a FAT or MFT table. | + | | [[TDiskTable|<code>TDiskTable = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FTableNo:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property TableNo:LongWord read FTableNo write FTableNo;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk block'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskBlock = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A disk block such as a FAT entry. | + | | [[TDiskBlock|<code>TDiskBlock = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FBlockNo:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property BlockNo:LongWord read FBlockNo write FBlockNo;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk entry'''
| + | |
− |
| + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskEntry = class(TTreeObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A disk entry such as a File, Folder, Stream or Label. | + | | [[TDiskEntry|<code>TDiskEntry = class(TTreeObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAltName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAltHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSize:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAttributes:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteTime:TFileTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCreateTime:TFileTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAccessTime:TFileTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReparseTag:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntriesLoaded:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReferenceCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRecent:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAltName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAltName(const AAltName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AltName:String read GetAltName write SetAltName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AltHash:LongWord read FAltHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Size:Int64 read FSize write FSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read FAttributes write FAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteTime:TFileTime read FWriteTime write FWriteTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CreateTime:TFileTime read FCreateTime write FCreateTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AccessTime:TFileTime read FAccessTime write FAccessTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ReparseTag:LongWord read FReparseTag write FReparseTag;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property EntriesLoaded:Boolean read FEntriesLoaded write FEntriesLoaded;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ReferenceCount:LongWord read FReferenceCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Recent:TDiskEntry read FRecent write FRecent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddReference:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveReference:Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FindFirstName(AHandle:TFindHandle; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindPrevName(AHandle:TFindHandle; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindNextName(AHandle:TFindHandle; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FindLastName(AHandle:TFindHandle; AReference:Boolean):TDiskEntry; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk catalog'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskCatalog = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | |colspan="2"|Note: A disk catalog such as a bootable section.
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLock:TSynchronizerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPath:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogNo:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FMediaType:TMediaType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFloppyType:TFloppyType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAttributes:LongWord;</code>
| + | |
− | | Initial/Default, Bootable, No Emulation, 1.2M, 1.44M, 2.88M, Hard Disk
| + | |
− | |-
| + | |
− | | <code>FSectorSize:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSectorCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPath:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPath(const APath:String); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMediaType:TMediaType; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMediaType(AMediaType:TMediaType); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFloppyType:TFloppyType; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFloppyType(AFloppyType:TFloppyType); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAttributes:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAttributes(AAttributes:LongWord); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorSize:Word; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSectorSize(ASectorSize:Word); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount:Int64; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSectorCount(const ASectorCount:Int64); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Path:String read GetPath write SetPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CatalogNo:LongWord read FCatalogNo write FCatalogNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property MediaType:TMediaType read GetMediaType write SetMediaType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FloppyType:TFloppyType read GetFloppyType write SetFloppyType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Attributes:LongWord read GetAttributes write SetAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorSize:Word read GetSectorSize write SetSectorSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectorCount:Int64 read GetSectorCount write SetSectorCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReaderLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReaderUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriterLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function WriterUnlock:Boolean;</code> | + | | [[TDiskCatalog|<code>TDiskCatalog = class(TListObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk reparse'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskReparse = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetTarget:String; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetTarget(const ATarget:String); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
| |- | | |- |
− | | <code>property Target:String read GetTarget write SetTarget;</code> | + | | [[TDiskReparse|<code>TDiskReparse = class(TObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk security'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskSecurity = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | |colspan="2"|Note: A disk security descriptor.
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>constructor CreateFromSecurity(ALocalLock:TMutexHandle; ASecurity:TDiskSecurity); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>constructor CreateFromDescriptor(ALocalLock:TMutexHandle; ADescriptor:Pointer); virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FAcls:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAclLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function SecuritySize:LongWord; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SecurityDescriptor:Pointer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SecurityDescriptorEx(ALocal:Boolean):Pointer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InheritedDescriptor:Pointer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MergedDescriptor(AChild:Pointer):Pointer; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseDescriptor(ADescriptor:Pointer; AInherited,AMerged:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CopyToSecurity(ASecurity:TDiskSecurity):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyFromSecurity(ASecurity:TDiskSecurity):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CopyToDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CopyToDescriptorEx(ADescriptor:Pointer; ASize:LongWord; ALocal:Boolean):Boolean; virtual;</code>
| + | |
− | |
| + | |
| |- | | |- |
− | | <code>function CopyFromDescriptor(ADescriptor:Pointer; ASize:LongWord):Boolean; virtual;</code> | + | | [[TDiskSecurity|<code>TDiskSecurity = class(TObject)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk access control list'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskAcl = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A security descriptor access control list. | + | | [[TDiskAcl|<code>TDiskAcl = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FAces:TFileSysList;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAceLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Disk access control entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDiskAce = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A security descriptor access control entry. | + | | [[TDiskAce|<code>TDiskAce = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Cache'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCache = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A simple block cache with Read Only/Read Write modes and Free/Clean/Dirty page tracking. (No longer used) | + | | [[TCache|<code>TCache = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBuffer:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheMode:TCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheState:TCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReadCached:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FReadDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FWriteBack:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteThrough:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHitCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMissCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFailCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSuccessCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFlushCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDiscardCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUnknownCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirstPage:TCachePage;</code>
| + | |
− | | First Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FLastPage:TCachePage;</code>
| + | |
− | | Last Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FFirstEmpty:TCachePage;</code>
| + | |
− | | First Free Page
| + | |
− | |-
| + | |
− | | <code>FLastEmpty:TCachePage;</code>
| + | |
− | | Last Free Page
| + | |
− | |-
| + | |
− | | <code>FFirstClean:TCachePage;</code>
| + | |
− | | First Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastClean:TCachePage;</code>
| + | |
− | | Last Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FFirstDirty:TCachePage;</code>
| + | |
− | | First Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastDirty:TCachePage;</code>
| + | |
− | | Last Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTimer:TCacheTimer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FThread:TCacheThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemovePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddUnknown(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UpdateClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UpdateDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RoundPageSize(APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RoundCacheSize(ACacheSize,APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property PageSize:LongWord read FPageSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageCount:LongWord read FPageCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheSize:LongWord read FCacheSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheMode:TCacheMode read FCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheState:TCacheState read FCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheTimeout:LongWord read FCacheTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ReadCached:Int64 read FReadCached;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ReadDirect:Int64 read FReadDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property WriteBack:Int64 read FWriteBack;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteThrough:Int64 read FWriteThrough;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteDirect:Int64 read FWriteDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HitCount:Int64 read FHitCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MissCount:Int64 read FMissCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FailCount:Int64 read FFailCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SuccessCount:Int64 read FSuccessCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FlushCount:Int64 read FFlushCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DiscardCount:Int64 read FDiscardCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UnknownCount:Int64 read FUnknownCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenCache(ACacheSize,APageSize:LongWord; ACacheMode:TCacheMode):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DeviceRead(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceErase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDevicePage(ADevice:TDiskDevice; ASector:LongWord):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEmptyPage:TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocDevicePage(ADevice:TDiskDevice; ASector:LongWord; AWrite:Boolean):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DiscardPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DiscardCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReleaseDevicePages(ADevice:TDiskDevice):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FlushPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushPageEx(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Cache extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCacheEx = class(TCache)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A modified version of TCache which tracks the last used page for faster repeat access. (No longer used) | + | | [[TCacheEx|<code>TCacheEx = class(TCache)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLastUsed:TCachePage;</code>
| + | |
− | | Most recently used Page
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function GetDevicePage(ADevice:TDiskDevice; ASector:LongWord):TCachePage; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocDevicePage(ADevice:TDiskDevice; ASector:LongWord; AWrite:Boolean):TCachePage; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Hash cache'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THashCache = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: A block cache with hash keys for faster page lookup. | + | | [[THashCache|<code>THashCache = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FKeyBits:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeyMask:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeyBuckets:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBuffer:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheKeys:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheMode:TCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheState:TCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFlushTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDiscardTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReadCached:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FReadDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FWriteBack:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteThrough:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHitCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMissCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFailCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSuccessCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFlushCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDiscardCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUnknownCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirstPage:TCachePage;</code>
| + | |
− | | First Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FLastPage:TCachePage;</code>
| + | |
− | | Last Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FFirstEmpty:TCachePage;</code>
| + | |
− | | First Free Page
| + | |
− | |-
| + | |
− | | <code>FLastEmpty:TCachePage;</code>
| + | |
− | | Last Free Page
| + | |
− | |-
| + | |
− | | <code>FFirstClean:TCachePage;</code>
| + | |
− | | First Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastClean:TCachePage;</code>
| + | |
− | | Last Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FFirstDirty:TCachePage;</code>
| + | |
− | | First Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastDirty:TCachePage;</code>
| + | |
− | | Last Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTimer:THashCacheTimer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FThread:THashCacheThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemovePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddUnknown(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UpdateClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UpdateDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RoundPageSize(APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RoundCacheSize(ACacheSize,APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AdjustCacheKeys(ACacheKeys:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CalculatePageCount(ADevice:TDiskDevice):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CalculatePageShift(ADevice:TDiskDevice):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CalculatePageMask(ADevice:TDiskDevice):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function KeyLink(APage:THashCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function KeyUnlink(APage:THashCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function KeyFirst(AKeyHash:LongWord):THashCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property PageSize:LongWord read FPageSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageCount:LongWord read FPageCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheSize:LongWord read FCacheSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheKeys:LongWord read FCacheKeys;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheMode:TCacheMode read FCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheState:TCacheState read FCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FlushTimeout:LongWord read FFlushTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DiscardTimeout:LongWord read FDiscardTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ReadCached:Int64 read FReadCached;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ReadDirect:Int64 read FReadDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property WriteBack:Int64 read FWriteBack;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteThrough:Int64 read FWriteThrough;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteDirect:Int64 read FWriteDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HitCount:Int64 read FHitCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MissCount:Int64 read FMissCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FailCount:Int64 read FFailCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SuccessCount:Int64 read FSuccessCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FlushCount:Int64 read FFlushCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DiscardCount:Int64 read FDiscardCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UnknownCount:Int64 read FUnknownCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenCache(ACacheSize,ACacheKeys,APageSize:LongWord; ACacheMode:TCacheMode):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DeviceRead(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceWrite(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceErase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDevicePage(ADevice:TDiskDevice; ASector:LongWord):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEmptyPage:TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocDevicePage(ADevice:TDiskDevice; ASector:LongWord; AWrite:Boolean):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DiscardPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DiscardCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReleaseDevicePages(ADevice:TDiskDevice):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FlushPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushPageEx(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Incremental cache'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TIncrementalCache = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: An expanded THashCache with incremental read ahead and dirty region write back. | + | | [[TIncrementalCache|<code>TIncrementalCache = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TCriticalSectionHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FKeyBits:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeyMask:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeyBuckets:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBuffer:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheSize:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheKeys:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheMode:TCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCacheState:TCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FFlushTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDiscardTimeout:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReadCached:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FReadDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FWriteBack:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteThrough:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FWriteDirect:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHitCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FMissCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFailCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSuccessCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFlushCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDiscardCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUnknownCount:Int64;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirstPage:TCachePage;</code>
| + | |
− | | First Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FLastPage:TCachePage;</code>
| + | |
− | | Last Cache Page (Any State)
| + | |
− | |-
| + | |
− | | <code>FFirstEmpty:TCachePage;</code>
| + | |
− | | First Free Page
| + | |
− | |-
| + | |
− | | <code>FLastEmpty:TCachePage;</code>
| + | |
− | | Last Free Page
| + | |
− | |-
| + | |
− | | <code>FFirstClean:TCachePage;</code>
| + | |
− | | First Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastClean:TCachePage;</code>
| + | |
− | | Last Clean Page (Used with no Write pending)
| + | |
− | |-
| + | |
− | | <code>FFirstDirty:TCachePage;</code>
| + | |
− | | First Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | | <code>FLastDirty:TCachePage;</code>
| + | |
− | | Last Dirty Page (Used with Write pending)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTimer:TIncrementalCacheTimer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FThread:TIncrementalCacheThread;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemovePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddUnknown(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function UpdateClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UpdateDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RoundPageSize(APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RoundCacheSize(ACacheSize,APageSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AdjustCacheKeys(ACacheKeys:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CalculatePageCount(ADevice:TDiskDevice):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CalculatePageShift(ADevice:TDiskDevice):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CalculatePageMask(ADevice:TDiskDevice):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function KeyLink(APage:THashCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function KeyUnlink(APage:THashCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function KeyFirst(AKeyHash:LongWord):THashCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkEmpty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkClean(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlinkDirty(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PrepareDeviceRead(ADevice:TDiskDevice; APage:TCachePage; var ASector:LongWord; var ACount:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PrepareDeviceWrite(ADevice:TDiskDevice; APage:TCachePage; var ASector:LongWord; var ACount:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property PageSize:LongWord read FPageSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageCount:LongWord read FPageCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheSize:LongWord read FCacheSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheKeys:LongWord read FCacheKeys;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheMode:TCacheMode read FCacheMode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CacheState:TCacheState read FCacheState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FlushTimeout:LongWord read FFlushTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DiscardTimeout:LongWord read FDiscardTimeout;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ReadCached:Int64 read FReadCached;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ReadDirect:Int64 read FReadDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property WriteBack:Int64 read FWriteBack;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteThrough:Int64 read FWriteThrough;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteDirect:Int64 read FWriteDirect;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HitCount:Int64 read FHitCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property MissCount:Int64 read FMissCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FailCount:Int64 read FFailCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SuccessCount:Int64 read FSuccessCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property FlushCount:Int64 read FFlushCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DiscardCount:Int64 read FDiscardCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UnknownCount:Int64 read FUnknownCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function OpenCache(ACacheSize,ACacheKeys,APageSize:LongWord; ACacheMode:TCacheMode):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CloseCache:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DeviceRead(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceWrite(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceErase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDevicePage(ADevice:TDiskDevice; ASector:LongWord):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEmptyPage:TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocDevicePage(ADevice:TDiskDevice; ASector:LongWord; AWrite:Boolean):TCachePage; virtual;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function DiscardPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DiscardCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReleaseDevicePages(ADevice:TDiskDevice):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FlushPage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushPageEx(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FlushCache(AFirst,AAll:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Cache page'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCachePage = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create;</code> | + | | [[TCachePage|<code>TCachePage = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FDevice:TDiskDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FData:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSector:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPageTime:Int64;</code>
| + | |
− | | Time Page was Allocated from Empty (Ticks)
| + | |
− | |-
| + | |
− | | <code>FWriteTime:Int64;</code>
| + | |
− | | Time Page was Allocated to Dirty (Ticks)
| + | |
− | |-
| + | |
− | | <code>FPageType:TCachePageType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPageState:TCachePageState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPrevPage:TCachePage;</code>
| + | |
− | | Previous page in Page list
| + | |
− | |-
| + | |
− | | <code>FNextPage:TCachePage;</code>
| + | |
− | | Next page in Page list
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPrevLink:TCachePage;</code>
| + | |
− | | Previous page in Empty/Clean/Dirty list
| + | |
− | |-
| + | |
− | | <code>FNextLink:TCachePage;</code>
| + | |
− | | Next page in Empty/Clean/Dirty list
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Device:TDiskDevice read FDevice write FDevice;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Data:Pointer read FData write FData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Sector:LongWord read FSector write FSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Count:Word read FCount write FCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PageTime:Int64 read FPageTime write FPageTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property WriteTime:Int64 read FWriteTime write FWriteTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageType:TCachePageType read FPageType write FPageType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PageState:TCachePageState read FPageState write FPageState;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PrevPage:TCachePage read FPrevPage write FPrevPage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property NextPage:TCachePage read FNextPage write FNextPage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PrevLink:TCachePage read FPrevLink write FPrevLink;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property NextLink:TCachePage read FNextLink write FNextLink;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Hash cache page'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THashCachePage = class(TCachePage)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | + | | [[THashCachePage|<code>THashCachePage = class(TCachePage)</code>]] |
− | |-
| + | |
− | | <code>FKeyHash:LongWord;</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>FKeyPrev:THashCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FKeyNext:THashCachePage;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property KeyHash:LongWord read FKeyHash write FKeyHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeyPrev:THashCachePage read FKeyPrev write FKeyPrev;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property KeyNext:THashCachePage read FKeyNext write FKeyNext;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Incremental cache page'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TIncrementalCachePage = class(THashCachePage)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | + | | [[TIncrementalCachePage|<code>TIncrementalCachePage = class(THashCachePage)</code>]] |
− | |-
| + | |
− | | <code>FReadSector:LongWord;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>FReadCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDirtySector:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FDirtyCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property ReadSector:LongWord read FReadSector write FReadSector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ReadCount:Word read FReadCount write FReadCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DirtySector:LongWord read FDirtySector write FDirtySector;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DirtyCount:Word read FDirtyCount write FDirtyCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadData:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DirtyData:Pointer;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Cache timer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCacheTimer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ACache:TCache);</code> | + | | [[TCacheTimer|<code>TCacheTimer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:TCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FInterval:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCheckTimer:TTimerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProcessSemaphore:TSemaphoreHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirst:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLast:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Dequeue(AMax:Integer):TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FirstKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertKey(APage:TCachePage; AKey:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteKey(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DecrementKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function StartTimer(AInterval:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Hash cache timer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THashCacheTimer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ACache:THashCache);</code> | + | | [[THashCacheTimer|<code>THashCacheTimer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:THashCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FInterval:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCheckTimer:TTimerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProcessSemaphore:TSemaphoreHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirst:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLast:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Dequeue(AMax:Integer):TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FirstKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertKey(APage:TCachePage; AKey:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteKey(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DecrementKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function StartTimer(AInterval:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Incremental cache timer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TIncrementalCacheTimer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ACache:TIncrementalCache);</code> | + | | [[TIncrementalCacheTimer|<code>TIncrementalCacheTimer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:TIncrementalCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FInterval:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCheckTimer:TTimerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProcessSemaphore:TSemaphoreHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirst:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLast:PCacheTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Dequeue(AMax:Integer):TCachePage;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FirstKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertKey(APage:TCachePage; AKey:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteKey(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DecrementKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function StartTimer(AInterval:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SchedulePage(APage:TCachePage; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnschedulePage(APage:TCachePage):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Cache thread'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCacheThread = class(TThread)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ACache:TCache);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:TCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
| |- | | |- |
− | | <code>procedure Execute; override;</code> | + | | [[TCacheThread|<code>TCacheThread = class(TThread)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Hash cache thread'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>THashCacheThread = class(TThread)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ACache:THashCache);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:THashCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
| |- | | |- |
− | | <code>procedure Execute; override;</code> | + | | [[THashCacheThread|<code>THashCacheThread = class(TThread)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''Incremental cache thread'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TIncrementalCacheThread = class(TThread)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(ACache:TIncrementalCache);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FCache:TIncrementalCache;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
| |- | | |- |
− | | <code>procedure Execute; override;</code> | + | | [[TIncrementalCacheThread|<code>TIncrementalCacheThread = class(TThread)</code>]] |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Entry timer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TEntryTimer = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TEntryTimer|<code>TEntryTimer = class(TObject)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>FDriver:TFileSysDriver;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FInterval:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCheckTimer:TTimerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FProcessTimer:TTimerHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FFirst:PEntryTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLast:PEntryTimerItem;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Dequeue:TDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FirstKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InsertKey(AEntry:TDiskEntry; AKey:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeleteKey(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DecrementKey:Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function StartTimer(AInterval:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StopTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ProcessTimer:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ScheduleEntry(AEntry:TDiskEntry; ATimeout:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnscheduleEntry(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Default recognizer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDefaultRecognizer = class(TRecognizer)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TDefaultRecognizer|<code>TDefaultRecognizer = class(TRecognizer)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function GetName:String; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function RecognizePartitionId(APartitionId:Byte):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizePartition(APartition:TDiskPartition):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''Default partitioner'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TDefaultPartitioner = class(TDiskPartitioner)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; ARecognizer:TRecognizer);</code> | + | | [[TDefaultPartitioner|<code>TDefaultPartitioner = class(TDiskPartitioner)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcceptPartition(ADevice:TDiskDevice; APartition,AParent:TDiskPartition; APartitionId:Byte):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''Extended disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TExtDiskController = class(TDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | + | | [[TExtDiskController|<code>TExtDiskController = class(TDiskController)</code>]] |
− | |-
| + | |
− | | <code>function GetCylinders(ADevice:TDiskDevice):LongWord;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>function GetHeads(ADevice:TDiskDevice):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectors(ADevice:TDiskDevice):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetLogicalShiftCount(ADevice:TDiskDevice):Word;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''ATA disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TATADiskController = class(TDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TATADiskController|<code>TATADiskController = class(TDiskController)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''ATAPI disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TATAPIDiskController = class(TDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TATAPIDiskController|<code>TATAPIDiskController = class(TDiskController)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''SCSI disk contoller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TSCSIDiskController = class(TDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TSCSIDiskController|<code>TSCSIDiskController = class(TDiskController)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''USB disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TUSBDiskController = class(TExtDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TUSBDiskController|<code>TUSBDiskController = class(TExtDiskController)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Read(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Reset(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Information(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function VendorId(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceId(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Manufacturer(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Product(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SerialNumber(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LogicalUnitNo(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LBA(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaType(ADevice:TDiskDevice):TMediaType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FloppyType(ADevice:TDiskDevice):TFloppyType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ready(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Locked(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Lockable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ejectable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Readable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Writeable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Removable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ChangeLine(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PhysicalCylinders(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalHeads(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalSectors(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LogicalCylinders(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalHeads(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalSectors(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SectorSize(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SectorCount(ADevice:TDiskDevice):Int64; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''MMC disk controller'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TMMCDiskController = class(TExtDiskController)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TMMCDiskController|<code>TMMCDiskController = class(TExtDiskController)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function ControllerInit:Boolean; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocateDevices:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Read(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; var ABuffer):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(ADevice:TDiskDevice; ASector:LongWord; ACount:Word; const ABuffer):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Erase(ADevice:TDiskDevice; ASector:LongWord; ACount:Word):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Reset(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LockMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function UnlockMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EjectMedia(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaReady(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaChanged(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MediaLocked(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Information(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function VendorId(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DeviceId(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function Manufacturer(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Product(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SerialNumber(ADevice:TDiskDevice):String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LogicalUnitNo(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LBA(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MediaType(ADevice:TDiskDevice):TMediaType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FloppyType(ADevice:TDiskDevice):TFloppyType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ready(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Locked(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Lockable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Ejectable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Readable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Writeable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Eraseable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Removable(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ChangeLine(ADevice:TDiskDevice):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PhysicalCylinders(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalHeads(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PhysicalSectors(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LogicalCylinders(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalHeads(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LogicalSectors(ADevice:TDiskDevice):LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SectorSize(ADevice:TDiskDevice):Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SectorCount(ADevice:TDiskDevice):Int64; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div> | + | <br /> |
| | | |
− | '''File system handle stream''' | + | '''FileSystem advanced classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>TFSHandleStream = class(TStream)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(AHandle:Integer);</code> | + | | [[TFSHandleStream|<code>TFSHandleStream = class(TStream)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FHandle:Integer;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure SetSize(NewSize:LongInt); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function Read(var Buffer; Count:LongInt):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(const Buffer; Count:LongInt):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Seek(Offset:LongInt; Origin:Word):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Handle:Integer read FHandle;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system file stream'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFSFileStream = class(TFSHandleStream)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(const FileName:String; Mode:Word);</code> | + | | [[TFSFileStream|<code>TFSFileStream = class(TFSHandleStream)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system handle stream extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFSHandleStreamEx = class(TStreamEx)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(AHandle:Integer);</code> | + | | [[TFSHandleStreamEx|<code>TFSHandleStreamEx = class(TStreamEx)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FHandle:Integer;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>procedure SetSize(NewSize:LongInt); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSizeEx(const NewSize:Int64); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function Read(var Buffer; Count:LongInt):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Write(const Buffer; Count:LongInt):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function Seek(Offset:LongInt; Origin:Word):LongInt; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SeekEx(const Offset:Int64; Origin:Word):Int64; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Handle:Integer read FHandle;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''File system file stream extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TFSFileStreamEx = class(TFSHandleStreamEx)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;" | + | |
− | |-
| + | |
− | | <code>constructor Create(const FileName:String; Mode:Word);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
| |- | | |- |
− | |colspan="2"| | + | | [[TFSFileStreamEx|<code>TFSFileStreamEx = class(TFSHandleStreamEx)</code>]] |
| |- | | |- |
| |} | | |} |
− | </div></div>
| |
| <br /> | | <br /> |
| | | |