s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
 begin
 diHasInfo:= res;
 diDrive:= ADisc;
 diVolumeName:= VolumeNameBuffer;
 diFileSystem:= FileSystemNameBuffer;
 diSerial:= VolumeSerialNumber;
 end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);