BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // ディレクトリ名
PULARGE_INTEGER lpFreeBytesAvailable, // 呼び出し側が利用できるバイト数
PULARGE_INTEGER lpTotalNumberOfBytes, // ディスク全体のバイト数
PULARGE_INTEGER lpTotalNumberOfFreeBytes // ディスク全体の空きバイト数
);

lpDirectoryNameに指定したディレクトリについてユーザが利用できるディスク情報を返すWindows APIです。

ヘルプに
−−
パラメータで、ディスクのルートディレクトリを指定する必要がないことに注意してください。この関数は、ディスク上の任意のディレクトリを受け付けます。
−−
とあったので、ディレクトリパスをそのまま利用していたのですが、そのディレクトリが実在しないとエラーになるんですね。
単純にディレクトリパスの文字列からドライブを自動的に抽出して
くれるだけではなく、ディスククオータ等も考慮して値が返されるので、ディレクトリパスを指定する場合は
実在する必要があるということですね。

まぁ、当たり前と言えば当たり前なのですが、15分くらい悩んでしまいました(笑)