在网上徘徊寻找如何读/写 MFT 的解释时,我发现了以下部分:( http://www.installsetupconfig.com/win32programming/1996%20AppE_apnilife.pdf )
如果 NtfsProtectSystemFiles 设置为 FALSE,则可以打开特殊文件。然而,尝试这样做有一些缺点:因为许多特殊文件在挂载卷时以特殊方式打开,它们不准备处理调用 ZwReadFile 产生的 IRP_MJ_READ 请求,并且系统如果收到这样的请求就会崩溃。这些特殊文件可以通过用 ZwCreateSection 和 ZwMapViewOfSection 映射特殊文件,然后读取映射的数据来读取。另一个问题是一些特殊文件没有准备好处理在关闭文件对象的最后一个句柄时生成的 IRP_MJ_CLEANUP 请求,如果收到这样的请求,系统就会崩溃。
- “他们没有准备好处理 IRP_MJ_READ 请求”是什么意思,需要什么样的准备?什么是 IRP_MJ_READ?
- “用 ZwCreateSection 和 ZwMapViewOfSection 映射特殊文件,然后读取映射的数据” 那如何解决问题?
- 这是什么意思“文件没有准备好处理在文件对象的最后一个句柄关闭时生成的 IRP_MJ_CLEANUP 请求”又是什么准备?什么是 IRP_MJ_CLEANUP?
- “将特殊文件的打开句柄复制到一个永不终止的进程中”这是如何解决问题的?