Dein Code funktioniert nur dann, wenn Sizeof(Pointer) = 4 ist und auch nur wenn die Laufwerke drei Buchstaben haben (3 + 1 Null-Char). Das ist unter 64 Bit aber nicht der Fall.
So geht's:
Delphi-Quellcode:
vDrive := @vDrives[0];
while vDrive^ <> #0 do
begin
aList.Add(vDrive);
Inc(vDrive, Length(vDrive) + 1);
end;