Bug in QueryDosDevice()?
-
Hi Community,
Habe gestern mit Erstaunen festgestellt, daß QueryDosDevice() http://msdn2.microsoft.com/en-us/library/aa365461.aspx meckerte, der Buffer sei zu klein...
DWORD dword_chars; TCHAR tcharsz_temp_65536stellen[65536 + 1]; dword_chars = QueryDosDevice( NULL, tcharsz_temp_65536stellen, 65536 ); :warning: //65535 ist vermutlich die höchstzulässige Zahl. //Offensichtlich werden die oberen 16 Bits des //Parameters ucchMax abgeschnitten? printf( TEXT( "%lX chars " ), dword_chars ); if ( dword_chars == 0 ) { err = GetLastError(); }Ich wollte alle verfügbaren MS-DOS Device-Namen abrufen und hatte dafür einen sehr großen Buffer spendiert

Bis 65535 TCHARs funktionierts einwandfrei, ab Größe 65536 meckert die Funktion über GetLastError() der Buffer sei zu klein!
In der Doku ist nix derartiges über eingeschränkte Buffer-Größe zu lesen... dort steht sogar "DWORD ucchMax" also ein 32-Bit Wert als Übergabeparameter.Habt auch Ihr solche Erfahrungen gemacht?
Martin
-
Hmmm,
keiner da, der meine Beobachtung bestätigen könnte?
Martin