小编Ben*_*nS1的帖子

在 Windows 10 上浏览 NTFS 更改日志

我正在尝试阅读 NTFS 更改日志,但我注意到我能找到的所有示例代码在 Windows 10 上都失败了,即使它在 Windows 7 上也能运行。

例如,Microsoft 自己的示例Walking a Buffer of Change Journal Records可在 Windows 7 上运行,但是当我在 Windows 10 上运行相同的代码时,当我使用 FSCTL_READ_USN_JOURNAL 调用 DeviceIoControl 时,我收到错误 87(参数不正确)(请注意,前面的调用到 DeviceIoControl 与 FSCTL_QUERY_USN_JOURNAL 成功完成并返回有效数据。)。

我什至将 EXE 编译并在 Windows 7 上运行并将其复制到 Windows 10 机器,但它仍然失败,所以我相信 Windows 10 可能对参数验证或类似的东西更严格?

我以管理员身份运行代码,所以这不是问题。

我找不到对此问题的任何其他引用,但是如果我采用其他人的示例代码并尝试在 Windows 10 上运行它,我会遇到同样的问题。

编辑:

代码本身:

#include <Windows.h>
#include <WinIoCtl.h>
#include <stdio.h>

#define BUF_LEN 4096

void main()
{
   HANDLE hVol;
   CHAR Buffer[BUF_LEN];

   USN_JOURNAL_DATA JournalData;
   READ_USN_JOURNAL_DATA ReadData = {0, 0xFFFFFFFF, FALSE, 0, 0};
   PUSN_RECORD …
Run Code Online (Sandbox Code Playgroud)

winapi ntfs visual-c++ deviceiocontrol

5
推荐指数
1
解决办法
1646
查看次数

标签 统计

deviceiocontrol ×1

ntfs ×1

visual-c++ ×1

winapi ×1