Windows 有没有办法知道文件的哪个部分在被某个进程读取后仍在物理RAM中
假设我使用了一个读取文件的程序,并且该程序已经完成。现在, 很可能文件的某些部分仍然驻留在物理ram中(假设我有大量ram)Windows 有没有办法知道文件的哪个部分在被某个进程读取后仍在物理RAM中,windows,winapi,file,filesystems,Windows,Winapi,File,Filesystems,假设我使用了一个读取文件的程序,并且该程序已经完成。现在, 很可能文件的某些部分仍然驻留在物理ram中(假设我有大量ram) 有没有办法知道文件的哪些部分驻留在物理ram中?是否有任何工具可以做到这一点,或者可能是winapi函数调用?需要记住的几点: 您永远无法直接访问物理RAM。操作系统为您提供了RAM的抽象。它可能是物理RAM,也可能是在某个硬盘上分页的虚拟内存。你永远不会知道 即使某些位仍然隐藏在RAM的某些部分(物理或其他),操作系统也会将该内存块视为空闲(除非它已经被再次占用)。我怀
有没有办法知道文件的哪些部分驻留在物理ram中?是否有任何工具可以做到这一点,或者可能是winapi函数调用?需要记住的几点:
我希望这能澄清问题。如果您谈论的是Windows,则内容将在Windows文件缓存中 现在没有读取Windows文件缓存的工具/API 但是,您可以通过特殊名称读取物理内存中的所有内容,如CreateFile('\\.\PhysicalMemory')或名称\Device\PhysicalMemory。(注意:仅适用于XP/2000)>现在没有读取Windows文件缓存的工具/API
当然有API(Win32 st) 哪只公羊?处理器缓存?二级缓存?主存储器?I/O总线缓存?磁盘控制器缓存?你想知道哪一个?你想达到什么目标?文件中的信息是否敏感,是否要清除所有痕迹?Jon Skeet可能不同意这一点。他可能会借助一台煤动力计算器远程破解你的RAM;谢谢你的回答。但请仔细阅读我的问题。我不想直接访问RAM,我只想知道哪些文件(或其中的一部分)驻留在RAM中。@yossi1981:哪个RAM?在一个现代处理器中有很多很多的RAM,你问的是哪一个?对于Windows(NT系列)来说不是这样。他们有两张免费的名单,一张已经归零,另一张还没有归零。为您的进程分配的任何页面在您获得它之前都将被归零,因此您不会从另一个进程获得任何数据。