在Windows上禁用或刷新页面缓存

我假设 WindowsLinux页面缓存有类似的概念,用于存储来自磁盘的内存数据,如文件,可执行文件和动态库.我想知道是否有可能禁用这样的缓存或至少清除/清除它.
这在windows下称为Standby List.您可以全局清除它,也可以清除一个卷或一个文件句柄.

在全球范围内
您可以使用Microsoft Technet中的readily available program,通过选择Empty→Empty Standby List来执行此操作

在编程方面,您可以使用未记录的NtSetSystemInformation函数实现相同的功能,有关详细信息,请参阅程序中的line 239,该程序执行与前面提到的相同的操作,以及其他内容.

对于一个文件句柄
使用FILE_FLAG_NO_BUFFERING打开文件:文档正在说明你打开文件时没有缓冲,但是从Windows 98到Windows 8的所有Windows版本上的真实可观察行为是它只是抛弃了完整的缓存内容文件(适用于所有人!)并且不会从使用此句柄的读取重新填充缓存.

一个完整的卷
卷句柄只是一个文件句柄(有点特殊,但仍然如此),因此假设您有适当的权限来打开卷句柄,您可以对完整的卷执行相同的操作.

另外,正如Mehrdad的回答here中指出的那样,似乎有一个功能/错误(功能错误?),它允许您在没有适当的权限的情况下使卷的缓存无效,仅仅通过在没有共享写入的情况下注册打开它,至少在一个最新版本的Windows.当任何对写入有效的打开成功,因为你可以改变文件系统内部数据这样做时(这是一个特性),这是完全合理的,但显然它在打开卷失败时也有效(这是一个bug) .

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...