如何刷新 Windows 中的所有文件缓冲区?

2024-02-04

FlushFileBuffers()Windows 中的 API 用于刷新缓冲区直至硬盘驱动器single文件。有sync()Linux 中用于刷新文件缓冲区的 APIall files.

但是,是否也有 WinAPI 用于刷新所有文件,即sync() analog?


https://learn.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-flushfilebuffers https://learn.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-flushfilebuffers

可以刷新整个硬盘驱动器。

要刷新卷上所有打开的文件,请使用该卷的句柄调用 FlushFileBuffers。调用者必须具有管理权限。有关更多信息,请参阅以特殊权限运行。

此外,同一篇文章还指出了如果由于某种原因必须刷新数据应遵循的正确过程:CreateFile函数与FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH flags.

由于系统内的磁盘缓存交互,在每次写入磁盘驱动器设备后使用 FlushFileBuffers 函数时,如果许多写入是单独执行的,则 FlushFileBuffers 函数的效率可能会很低。如果应用程序正在对磁盘执行多次写入,并且还需要确保将关键数据写入持久介质,则应用程序应使用无缓冲 I/O,而不是频繁调用 FlushFileBuffers。要打开用于无缓冲 I/O 的文件,请使用 FILE_FLAG_NO_BUFFERING 和 FILE_FLAG_WRITE_THROUGH 标志调用 CreateFile 函数。这可以防止文件内容被缓存,并在每次写入时将元数据刷新到磁盘。有关详细信息,请参阅创建文件。

但还要检查以下限制文件缓冲 https://learn.microsoft.com/el-gr/windows/desktop/FileIO/file-buffering关于内存和数据对齐。

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

如何刷新 Windows 中的所有文件缓冲区? 的相关文章

随机推荐

  • 在ant脚本中连接xml文件

    我是 Ant 脚本的新手 我正在寻找如何将文件夹中的所有 xml 文件连接到 ant 脚本中的单个 xml 文件中 在我的项目中 将在文件夹中动态生成 n 个 xml 文件 例如 server1 xml manager xml server
  • 在 iOS 9 和 10 中支持 NSManagedObject fetchRequest() 类方法

    iOS 10 引入了新的类级别fetchRequest 中的方法NSManagedObject 和许多其他开发人员一样 我在上面创建了自己的扩展NSManagedObject其中有一个fetchRequest 方法 当我尝试构建支持 iOS
  • 对数字进行排序 Objective C

    我有一个字符串数组 我使用该方法对其进行排序 TableViewPopoverList sortUsingSelector selector localizedCaseInsensitiveCompare 这些字符串的第一部分是一个数字 但
  • 执行transact-sql语句或批处理时发生异常

    我不断收到错误消息 执行transact sql语句或批处理时发生异常 当尝试在 SQL Server Management Studio 2016 中执行任何操作时 当我尝试创建或编辑登录名 尝试创建新数据库时 基本上当我执行任何操作时
  • 内容从高度为 100% 的 div 溢出

    当我在 Chrome Firefox 或 IE11 中查看此页面时 我注意到将窗口水平调整到最小宽度会导致文本溢出页面底部的白色背景 div div设置了100 的高度 那不是应该继续匹配页面的高度吗 看起来 100 只匹配窗口的高度 但是
  • 为什么 php 接口中的关键词是abstract和void?

    查看 php 手册站点上的 SplSubject 接口并注意到 SplSubject Methods abstract public void attach SplObserver observer abstract public void
  • JRXML 中的多个页面使用 iReport 进行多页报告

    我只是想知道iReport JRXML是否支持多页报表 如果有的话 可以给一些参考样品吗 我并不是要求一份随着数据增长而增长的报告 我有一份静态报告 其中包含多个页面需要处理 每个页面都有不同的页眉 页脚和内容 只是他们需要成为一个单一的一
  • 如何在 Asp.Net Core 6 中从 Secrets.json 获取 ConnectionString?

    我是 Asp Net Core 和 EF 的新手 我正在从数据库端开发一个简单的 CRUD 使用Secrets json文件来隐藏我的连接字符串凭据 但我不知道如何使用 AddDbContext 引用该文件 到目前为止我的代码 public
  • 如何在 Jetpack Compose 中减慢 AnimateScrollToItem 的速度?

    我有一个惰性列表 单击按钮时我将动画滚动到项目 onClick scope launch lazyListState animateScrollToItem selectedIndex 为什么 animateScrollToItem 这么快
  • 使用 pdfkit for python 生成目录

    问题摘要 我无法让目录生成器在 Python 的 pdfkit 中工作 我尝试过的 传递参数toc 我当前的代码 toc xsl style sheet toc xsl pdfkit from file book html filename
  • 从矩阵中提取一系列连续向量

    我有一个大矩阵 为了简化起见 gt mat matrix c 1 50 ncol 5 gt mat 1 2 3 4 5 1 1 11 21 31 41 2 2 12 22 32 42 3 3 13 23 33 43 4 4 14 24 34
  • 为什么 v-model 不能与数组和 v-for 循环一起使用?

    我有一个自定义选择组件 它适用于一个简单的变量 但与 v for 一起使用时它将不起作用 https jsfiddle net 7gjkbhy3 19 https jsfiddle net 7gjkbhy3 19
  • 如何使用 IHttpClientFactory 刷新令牌

    我使用 IHttpClientFactory 使用 Net Core 2 2 发送请求并从两个外部 API 接收 HTTP 响应 我正在寻找一个好的策略来使用已存储在 appsettings json 中的刷新令牌来获取新的访问令牌 当当前
  • 使用 Node js 将下游消息发送到 google ccs

    我在用节点xmpp https github com node xmpp node xmpp连接到 google gcm ccs 服务器 我跟着连接 现在 每当我收到来自我的 redis 订阅者的消息时 我需要发送一条下游消息 我订阅了一个
  • 使用 JavaScript 获取 GPS 位置

    我正在使用平板电脑 正在处理 html 应用程序 希望在不使用任何网络连接的情况下获取 GPS 位置 请建议我简单的方法 使用JS你可以这样得到它
  • Solrj 与服务器通信时发生 IOException

    我正在使用基本身份验证 我的solr版本是4 1 我可以获得查询结果 但是当我尝试索引文档时 我收到以下错误消息 org apache solr client solrj SolrServerException IOException oc
  • 需要一个示例演示,了解如何使用空手道脚本从头开始使用加特林进行性能测试

    我对性能测试非常陌生 我浏览了在加特林中使用空手道脚本创建的示例项目 但无法理解如何做到这一点 任何人都可以解释如何使用空手道通过使用如下所示的公共 api 使用加特林进行性能测试 场景 获取州特定信息 一个州 给定网址 http serv
  • 如何使用CSS翻转多个div?

    如何翻转多个div当我使用 CSS3 单击菜单时 This http jsfiddle net Lucdd 代码仅适用于最后两个divs HTML 代码 ul class nav li a href home home a li li a
  • 从方法返回数据读取器

    我有以下方法 public static SqlDataReader MenuDataReader string url using SqlConnection con new SqlConnection connectionString
  • 如何刷新 Windows 中的所有文件缓冲区?

    有FlushFileBuffers Windows 中的 API 用于刷新缓冲区直至硬盘驱动器single文件 有sync Linux 中用于刷新文件缓冲区的 APIall files 但是 是否也有 WinAPI 用于刷新所有文件 即sy