Получение информации о диске

function GetVolumeInfoFVS(const Dir:string;
 var FileSystemName,VolumeName:string;var Serial:longint):boolean;
{Получение информации о диске
Dir - каталог или буква требуемого диска
FileSystemName - название файловой системы
VolumeName - метка диска
Serial - серийный номер диска
В случае ошибки функция возвращает false}
var
 root:pchar;
 res:longbool;
 VolumeNameBuffer,FileSystemNameBuffer:pchar;
 VolumeNameSize,FileSystemNameSize:DWord;
 VolumeSerialNumber,MaximumComponentLength,FileSystemFlags:DWORD;
 s:string;
 n:integer;
begin
 n:=pos(':',Dir);
 if n>0 then s:=copy(Dir,1,n+1) else s:=s+':';
 if s[length(s)]=':' then s:=s+'\';
 root:=pchar(s);
 getMem(VolumeNameBuffer,256);
 getMem(FileSystemNameBuffer,256);
 VolumeNameSize:=255;
 FileSystemNameSize:=255;
 res:=GetVolumeInformation(Root,VolumeNameBuffer,VolumeNameSize
 ,@VolumeSerialNumber,
 MaximumComponentLength, FileSystemFlags
 ,FileSystemNameBuffer,FileSystemNameSize);
 Result:=res;
 VolumeName:=VolumeNameBuffer;
 FileSystemName:=FileSystemNameBuffer;
 Serial:=VolumeSerialNumber;
 freeMem(VolumeNameBuffer,256);
 freeMem(FileSystemNameBuffer,256);
end;