function DriveGetInfoKey( const _drive , _key: string ): string;
var
f_Label , f_FileSystemName: string;
f_LongName , f_FileSystemFlags: DWORD;
pf_Serial: PDWORD;
f_Serial: integer;
begin
Result:= '';
if _drive = '' then Exit;
Setlength( f_Label , 255 );
Setlength( f_FileSystemName , 255 );
GetMem( pf_Serial , 255 );
GetVolumeInformation( PChar( _drive + '\' ) , PChar( f_Label ) , 255 ,
pf_Serial ,
f_LongName , f_FileSystemFlags , PChar( f_FileSystemName ) , 255 );
f_Serial:= pf_Serial^;
FreeMem( pf_Serial , 255 );
if _key = 'DLABEL' then Result:= string( PChar( f_Label ) )
else if _key = 'DSERIAL' then
Result:= Copy( inttohex( f_Serial , 8 ) , 1 , 4 ) + '-' +
Copy( inttohex( f_Serial , 8 ) , Length( inttohex( f_Serial , 8 ) )
- 3 , 4 )
else if _key = 'DLONGNAME' then begin
if f_LongName = 255 then
Result:= '255'
else
Result:= '0';
end
else if _key = 'DSYSTEM' then
Result:= string( PChar( f_FileSystemName ) )
end;