Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: QueryDosDevice = Path ist ungültig?

  Alt 10. Sep 2010, 12:01
Okay ein s ist schuld

Ich habe den Code mal ein wenig geändert.
Was mich verwirrt ist die Tatsache das mit einem Laufwerksbuchstaben geht und mit einer GUID nicht
Delphi-Quellcode:
procedure SplitVolumeNames(aVolume : Array of Char; var aVolumeRec : TVolumeRec);
var
  BufferLength,
  ReturnLength : DWORD;
  VolumePathNames : TCharArray;

begin
  BufferLength := MAX_PATH + 1;

  aVolumeRec.VolumeStr := Copy(aVolume, 1, BufferLength);
  FillChar(VolumePathNames, SizeOf(TCharArray), #0);
  if GetVolumePathNamesForVolumeName(aVolume, VolumePathNames, BufferLength, ReturnLength) then
    aVolumeRec.PathStr := StrPas(VolumePathNames);


  FillChar(VolumePathNames, SizeOf(TCharArray), #0);
  if (QueryDosDevice(PChar(Copy(aVolumeRec.PathStr, 1, 2)), VolumePathNames, BufferLength) > 0) then
  aVolumeRec.DeviceStr := VolumePathNames
  else
  ErrorDesc(GetLastError);

end;
aVolumeRec.PathStr = 'E:\' liefert das richtige Ergebnis: '\Device\HarddiskVolume1'.
Übergebe ich jedoch die passende GIUD: '\\?\Volume{5bc8c923-ba57-11de-b195-005056c00008}\'; Kommt
die Fehlermeldung: Der angegebene Pfadname ist ungültig.

Kann mir einer sagen warum das so ist, habe ich etwas übersehen?

Danke
  Mit Zitat antworten Zitat