API Funktionen arbeiten so, dass sie die Größe des benötigten Puffers zurückgeben, wenn zu wenig Speicher angefordert wurde. Üblicherweise geht man dann so vor, dass man die Funktion zweimal aufruft, einmal mit nil, um rauszubekommen wie viel Speicher man reservieren muss und dann noch ein zweites mal mit einem Puffer der entsprechend groß ist. GetWindowsDirectory ist zum Beispiel so eine Funktion, nur dass man da üblicherweise MAX_PATH nimmt, weil das Windowsverzeichnis nicht länger sein kann.