我正在创建一个程序来使用虚拟文件系统填充磁盘。
目前,我正在使用WriteFile
.
WriteFile(hFile, FileData, i * 1024, &dwWrote, NULL);
err = GetLastError();
错误返回 #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)。