WriteFile 返回错误 1784

2023-12-13

我正在创建一个程序来使用虚拟文件系统填充磁盘。

目前,我正在使用编写可变大小的文件WriteFile.

        WriteFile(hFile, FileData, i * 1024, &dwWrote, NULL);
        err = GetLastError();

错误返回#1784,翻译为

提供的用户缓冲区对于请求的操作无效。错误_INVALID_USER_BUFFER

因此对于前 24 个文件,写入操作有效。对于文件 #25,写入操作失败。 文件仍会创建,但 WriteFile 函数不会填充文件。

关于如何过去的任何想法ERROR_INVALID_USER_BUFFER?

我能找到的所有关于该错误的参考都仅限于崩溃的程序,我无法弄清楚它与我遇到的问题有何关系。

EDIT:

FileData = (char *) malloc(sizeof(char) * (size_t)k * 1024);
memset(FileData, 245, sizeof(char) * (size_t)k * 1024);

FileData 设置并分配为最大预期缓冲区的大小。 i 是迭代的循环变量,直到递增到最大大小 (k)。


我的猜测是FileData不够大,无法书写i * 1024字节。是i文件列表的循环控制变量?如果是这样,则需要写入缓冲区FileData当您循环浏览文件时一次增加 1K。

这是一个不寻常的结构。你确定这里的逻辑是正确的吗?发布更多代码(具体来说,所有使用FileData and i)以提高答案的准确性。

请注意,您不应该总是检查GetLastError在这里 - 你需要检查WriteFile的返回代码,然后您才相信它有意义。否则,您可能会从代码的某些不相关部分中发现错误 - 无论最后失败的是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WriteFile 返回错误 1784 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 在python中使用bing或google API获取位置坐标

    这是我的问题 我有一个示例文本文件 我在其中通过抓取各种 html 页面来存储文本数据 该文本包含有关各种事件及其时间和地点的信息 我想获取这些位置的坐标 我不知道如何在 python 中做到这一点 我正在使用 nltk 来识别此示例文本中
  • Android - 方向变化时的动态片段问题

    我在动态片段方面遇到问题 如果我不改变方向 它就可以正常工作 当我改变方向时 我单击 ListView 项目 这不是改变 textview 这是 DynamicActivity 类 public class DynamicActivity
  • Selenium 无法启动 IE。

    Selenium 无法启动 IE 10 56 25 005 INFO org openqa selenium server SeleniumDriverResourceHandler Command request getNewBrowse
  • Angular HTTP 循环 [重复]

    这个问题在这里已经有答案了 我对 Angular 应用程序有疑问 我有一个包含语言短代码的数组 en fr 基本上 我希望 Angular 在该数组上循环并对每个值发出 HTTP get 请求 for var i in scope lang
  • 当内容类型为文本/纯文本时,.NET Core 1.0 Web Api 将请求正文处理为 JSON

    我需要使用的供应商 API 正在发送内容类型为 text plain 且正文中为 JSON 的 POST 请求 如何在 net core 1 0 web api中解析它 我确定我需要做类似的事情this 下面的代码 答案 但我不知道如何在
  • 使用 Flexbox 在 Bootstrap3 轮播中垂直居中内容

    我试图将 h3 和 p 元素集中在 div 中 更准确地说是 Bootstrap 的 carousel caption 我已经给 carousel caption 固定的高度和宽度 我试图将 h3 和 p 垂直对齐到 theid 父 div
  • COM 类工厂错误

    我一直在使用我的机器作为服务器来测试应用程序 一切都很顺利 但是当我尝试将其设置为在测试服务器上运行时 出现以下错误 检索 COM 类工厂 CLSID 为 XXXX 的组件因故障而失败 出现以下错误 80040154 有任何想法吗 Than
  • 小于给定数字并且没有重复数字的数字数量

    我们怎样才能找到小于给定数字并且其中没有重复数字的数字的个数 例如 小于100的此类数字的数量为90个 11 22 33 44 55 66 77 88 99有重复数字 因此被排除 同样 对于小于 1000 的数字 如 101 110 122
  • Target="_blank" 与 window.open

    我正在开发一个应用程序 用户输入一些输入 并且在单击共享链接时不应该离开页面 例如Facebook 分享链接 a href https www facebook com sharer php u http 3A 2F 2Fwww examp
  • 如何获取 Go html/template 中地图元素的结构字段?

    我有一个结构Task type Task struct cmd string args string desc string 我初始化了一张采用上述内容的地图Taskstruct 作为一个值和一个string作为键 任务名称 var tas
  • html 中真的需要 name 属性吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果 HTML 表单中 name 属性的目的只是为了引用诸如 input 之类的元素 为什么我们不能简单地使用 id 或 class 属性呢 创建名称属性背后是否有一些不那么明显的推
  • CodeIgniter Sqlite 不工作

    每当我在模型中像这样查询数据库 sqlite 时 我使用 codeigniter 完整代码如下 this gt db gt select post query this gt db gt get posts return query gt
  • 如何提取不起作用的 .apk 文件的代码? [复制]

    这个问题在这里已经有答案了 实际上 我试图提取名为 cloudfilz apk 的 apk 文件的代码 并希望在其源代码中进行操作 因此我按照以下步骤操作 创建一个新文件夹并放入 apk 文件 您要解码的 现在用扩展名 zip 重命名此 a
  • 将字体导入 GUI

    除了 swing 似乎附带的基本 5 种字体之外 我正在尝试更改 GUI 的字体 如何导入字体并在我的代码中实际使用它们 默认情况下通常有 5 个以上可用 但它们会因系统而异 该答案检查现有字体 以及如何加载和注册新字体 它使用 Airac
  • Java 的迁移[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我使用 ruby on Rails 和 Java 当我从事 Rails 项目时 我真的很喜欢使用迁移 所以我想知道是否有类似 Java 的迁移工具
  • 我应该为 Selenium By.XPATH 导入什么?

    新版本的 Selenium 没有任何旧方法 例如 find element by xpath 但它引入了新的 fabrique 方法 find element By XPATH searched string 这是来自的示例文档 veget
  • 多种语言一起编译

    是否可以将多种语言一起编译 以便充分利用不同语言的优点 绝对有可能link如果编译器和链接器全部兼容 则在单独编译它们之后将它们放在一起 如果适当编程 例如 g77 c one f gcc c two c gcc o together on
  • 可变参数模板异构容器

    我需要使用异构元素实现一些可变模板容器类 它允许迭代这些元素 我的第一个想法是使用带有可变参数的 std tuple 成员创建类 但是通过类似数组的方式 通过循环 从元组获取元素是不可能的 struct A void prnt std co
  • 如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签?

    如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签 这是改编自 CodeGuru 的代码 非常感谢原作者 http www codeguru com vb vb internet html article php c481
  • WriteFile 返回错误 1784

    我正在创建一个程序来使用虚拟文件系统填充磁盘 目前 我正在使用编写可变大小的文件WriteFile WriteFile hFile FileData i 1024 dwWrote NULL err GetLastError 错误返回 178