Es solo hacerle algunas modificaciones al código para adaptarlo a lo que necesitas, por ejemplo:
Código Delphi
[-]
procedure TNetDrive.GetDriversList(StrList: TStringList);
var
DriveNum: Integer;
DriveChar: Char;
DriveType: TDriveType;
DriveBits: set of 0..25;
procedure AddDrive(const VolName: string);
begin
StrList.Add(Format('%s: %s', [DriveChar, VolName]))
end;
begin
StrList.Clear;
Integer(DriveBits) := GetLogicalDrives;
for DriveNum := 0 to 25 do
begin
if not (DriveNum in DriveBits) then
Continue;
DriveChar := Char(DriveNum + Ord('a'));
DriveType := TDriveType(GetDriveType(PChar(DriveChar + ':\')));
if TextCase = tcUpperCase then
DriveChar := Upcase(DriveChar);
case DriveType of
dtFloppy:
StrList.Add(DriveChar + ':');
dtFixed:
AddDrive(VolumeID(DriveChar));
dtNetwork:
AddDrive(NetworkVolume(DriveChar));
dtCDROM:
AddDrive(VolumeID(DriveChar));
dtRAM:
AddDrive(VolumeID(DriveChar))
end
end
end;
Así solo le pasas el StringList que quieres llenar con los drivers...
Saludos...