Я создаю программу для заполнения диска фиктивной файловой системой.
В настоящее время я пишу файлы переменных размеров, используя WriteFile
.
WriteFile(hFile, FileData, i * 1024, &dwWrote, NULL);
err = GetLastError();
err return #1784, что переводится как
Предоставленный пользовательский буфер недопустим для запрошенной операции.ERROR_INVALID_USER_BUFFER
Итак, для первых 24 файлов операция записи работает.Если включен файл № 25, операция записи завершится неудачно.Файлы все еще создаются, но функция WriteFile не заполняет файлы.
Любые идеи о том, как пройти мимо ERROR_INVALID_USER_BUFFER
?
Каждая ссылка, которую я могу найти на ошибку, ограничена сбоемпрограммы, и я не могу понять, как это связано с проблемой, с которой я сталкиваюсь.
РЕДАКТИРОВАТЬ:
FileData = (char *) malloc(sizeof(char) * (size_t)k * 1024);
memset(FileData, 245, sizeof(char) * (size_t)k * 1024);
FileData установлен и выделен в размере максимального ожидаемого буфера.i - переменная цикла, которая повторяется до тех пор, пока не увеличится до максимального размера (k).