TDiskVolume
From Ultibo.org
								
												
				Return to Unit Filesystem
Description
To be documented
Class definitions
TDiskVolume = class(TListObject)
 constructor Create(ADriver:TFileSysDriver; ADevice:TDiskDevice; APartition:TDiskPartition; AVolumeNo:Integer);
 | 
|
 destructor Destroy; override;
 | 
|
private 
 | |
 FLock:TSynchronizerHandle;
 | 
|
 FLocalLock:TMutexHandle;
 | 
|
protected 
 | |
 FDriver:TFileSysDriver;
 | 
|
 FDevice:TDiskDevice;
 | 
|
 FPartition:TDiskPartition;
 | 
|
 FVolumeNo:Integer;
 | 
\Volume1 , \Volume2, etc - See Notes | 
 FSegmentNo:Integer;
 | 
Segment0, Segment1 etc - for Multiple Segment volumes (eg Netware) | 
 FDriveType:TDriveType;
 | 
|
 FFileSystem:TFileSystem;
 | 
|
 FRemovable:Boolean;
 | 
Volume is Removable - Set by VolumeInit | 
 FRecognizable:Boolean;
 | 
Volume allows Recognize Volume | 
 FRecognized:Boolean;
 | 
Recognized Volume - Set by Recognizer | 
 FSectorSize:Word;
 | 
Sector Size of Device | 
 FStartSector:Int64;
 | 
Absolute Start Sector on Device | 
 FSectorCount:LongWord;
 | 
Total Sectors in Volume | 
 FSectorShiftCount:Word;
 | 
Sectors to Bytes Shift Count | 
 function AcquireLock:Boolean;
 | 
|
 function ReleaseLock:Boolean;
 | 
|
 function GetName:String;
 | 
|
 function GetParent:String;
 | 
|
 function GetMaxFile:Integer;
 | 
|
 function GetMaxPath:Integer;
 | 
|
 function GetAttributes:LongWord;
 | 
|
 function GetSystemName:String;
 | 
|
 function GetVolumeName:String;
 | 
|
 function GetVolumeGUID:String;
 | 
|
 function GetVolumeSerial:LongWord;
 | 
|
 function GetFileSysType:TFileSysType;
 | 
|
 procedure SetFileSystem(AFileSystem:TFileSystem);
 | 
|
 function GetSectorSize:Word;
 | 
|
 function GetStartSector:Int64;
 | 
|
 function GetSectorCount:LongWord;
 | 
|
 function GetSectorShiftCount:Word;
 | 
|
 function MediaTypeToDriveType(AMediaType:TMediaType):TDriveType;
 | 
|
 function GetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;
 | 
|
 function SetBootRecord(ARecord:Pointer,ASector:LongWord):Boolean; virtual;
 | 
|
public 
 | |
 property Name:String read GetName;
 | 
|
 property Parent:String read GetParent;
 | 
|
 property Device:TDiskDevice read FDevice;
 | 
|
 property Partition:TDiskPartition read FPartition;
 | 
|
 property VolumeNo:Integer read FVolumeNo;
 | 
|
 property SegmentNo:Integer read FSegmentNo;
 | 
|
 property MaxFile:Integer read GetMaxFile;
 | 
|
 property MaxPath:Integer read GetMaxPath;
 | 
|
 property Attributes:LongWord read GetAttributes;
 | 
|
 property SystemName:String read GetSystemName;
 | 
|
 property VolumeName:String read GetVolumeName;
 | 
|
 property VolumeGUID:String read GetVolumeGUID;
 | 
|
 property VolumeSerial:LongWord read GetVolumeSerial;
 | 
|
 property DriveType:TDriveType read FDriveType;
 | 
|
 property FileSysType:TFileSysType read GetFileSysType;
 | 
|
 property FileSystem:TFileSystem read FFileSystem write SetFileSystem;
 | 
|
 property Removable:Boolean read FRemovable;
 | 
|
 property Recognizable:Boolean read FRecognizable;
 | 
|
 property Recognized:Boolean read FRecognized write FRecognized;
 | 
|
 property SectorSize:Word read GetSectorSize;
 | 
|
 property StartSector:Int64 read GetStartSector;
 | 
|
 property SectorCount:LongWord read GetSectorCount;
 | 
|
 property SectorShiftCount:Word read GetSectorShiftCount;
 | 
|
 function ReaderLock:Boolean;
 | 
|
 function ReaderUnlock:Boolean;
 | 
|
 function WriterLock:Boolean;
 | 
|
 function WriterUnlock:Boolean;
 | 
|
 function VolumeInit:Boolean; virtual;
 | 
|
 function CreateDrive(ADriveNo:Integer):TDiskDrive; virtual;
 | 
|
 function DeleteDrive(ADrive:TDiskDrive):Boolean; virtual;
 | 
|
 function MountVolume(ADriveNo:Integer):Boolean; virtual;
 | 
|
 function DismountVolume:Boolean; virtual;
 | 
|
 function FormatVolume(AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; virtual;
 | 
|
 function DefragmentVolume:Boolean; virtual;
 | 
|
 function ConvertVolume(AFileSysType:TFileSysType):Boolean; virtual;
 | 
|
 function RepairVolume:Boolean; virtual;
 | 
|
 function CopyVolume(ADest:TDiskVolume):Boolean; virtual;
 | 
|
 function ShrinkVolume(const AStart,ASize:Int64):Boolean; virtual;
 | 
|
 function ExpandVolume(const AStart,ASize:Int64):Boolean; virtual;
 | 
|
 function OpenVolume(AMode:Integer):THandle; virtual;
 | 
|
 procedure CloseVolume(AHandle:THandle); virtual;
 | 
|
 function ReadVolume(AHandle:THandle; var ABuffer; ACount:Integer):Integer; virtual;
 | 
|
 function WriteVolume(AHandle:THandle; const ABuffer; ACount:Integer):Integer; virtual;
 | 
|
 function SeekVolume(AHandle:THandle; const AOffset:Int64; AOrigin:Integer):Int64; virtual;
 | 
; | 
Function declarations
constructor TDiskVolume.Create(ADriver:TFileSysDriver; ADevice:TDiskDevice; APartition:TDiskPartition; AVolumeNo:Integer);
Description: To be documented
| Note | None documented | 
|---|
destructor TDiskVolume.Destroy;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.AcquireLock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ReleaseLock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.GetName:String;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.GetParent:String;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.GetMaxFile:Integer;
Description: Get MaxFile from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetMaxPath:Integer;
Description: Get MaxPath from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetAttributes:LongWord;
Description: Get Attributes from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetSystemName:String;
Description: Get SystemName from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetVolumeName:String;
Description: Get VolumeName from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetVolumeGUID:String;
Description: Get VolumeGUID from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetVolumeSerial:LongWord;
Description: Get VolumeSerial from FileSystem if Mounted
| Note | None documented | 
|---|
function TDiskVolume.GetFileSysType:TFileSysType;
Description: Get FileSysType from FileSystem if Mounted
| Note | None documented | 
|---|
procedure TDiskVolume.SetFileSystem(AFileSystem:TFileSystem);
Description: Set the FileSystem and Reinitialize the Volume
| Note | None documented | 
|---|
function TDiskVolume.GetSectorSize:Word;
Description: Get SectorSize from FileSystem (Mounted) or Volume (Not Mounted)
| Note | None documented | 
|---|
function TDiskVolume.GetStartSector:Int64;
Description: Get StartSector from FileSystem (Mounted) or Volume (Not Mounted)
| Note | None documented | 
|---|
function TDiskVolume.GetSectorCount:LongWord;
Description: Get SectorCount from FileSystem (Mounted) or Volume (Not Mounted)
| Note | None documented | 
|---|
function TDiskVolume.GetSectorShiftCount:Word;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.MediaTypeToDriveType(AMediaType:TMediaType):TDriveType;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ReaderLock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ReaderUnlock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.WriterLock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.WriterUnlock:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.VolumeInit:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.CreateDrive(ADriveNo:Integer):TDiskDrive;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.DeleteDrive(ADrive:TDiskDrive):Boolean;
Description: To be documented
| Note | Caller must hold the drive writer lock | 
|---|
function TDiskVolume.MountVolume(ADriveNo:Integer):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.DismountVolume:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.FormatVolume(AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.DefragmentVolume:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ConvertVolume(AFileSysType:TFileSysType):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.RepairVolume:Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.CopyVolume(ADest:TDiskVolume):Boolean;
Description: To be documented
| Note | Caller must hold the dest writer lock | 
|---|
function TDiskVolume.ShrinkVolume(const AStart,ASize:Int64):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ExpandVolume(const AStart,ASize:Int64):Boolean;
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.OpenVolume(AMode:Integer):THandle;
Description: To be documented
| Note | None documented | 
|---|
procedure TDiskVolume.CloseVolume(AHandle:THandle);
Description: To be documented
| Note | None documented | 
|---|
function TDiskVolume.ReadVolume(AHandle:THandle; var ABuffer; ACount:Integer):Integer;
Description: To be documented
| Note | Raw Reads must be in Sector sized multiples | 
|---|
function TDiskVolume.WriteVolume(AHandle:THandle; const ABuffer; ACount:Integer):Integer;
Description: To be documented
| Note | Raw Writes must be in Sector sized multiples | 
|---|
function TDiskVolume.SeekVolume(AHandle:THandle; const AOffset:Int64; AOrigin:Integer):Int64;
Description: To be documented
| Note |  Raw Seeks must be in Sector sized multiples
 Raw Seeks cannot extend the size of the Volume  | 
|---|
Return to Unit Reference