问题标签 [usn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
361 浏览

c++ - 无法不间断地阅读 USN 期刊


我的目标是使用 USN 日志从选定的驱动器(通常是 C)读取写入操作。在我编写的下一个代码中,我创建了一个小类,通过使用 and 代码来处理DeviceIoControl
USNFSCTL_QUERY_USN_JOURNAL记录FSCTL_ENUM_USN_DATA

这是我的问题,过了一会儿,记录用完了,调用失败了,我得到的错误代码是DeviceIoControl,即使我刷新日志,我也会得到同样的错误。 我希望能够流式传输任何新的 USN 记录并处理写入事件。我确信这是可能的,因为有 第三方工具可以不间断地显示 USN 记录。 怎样才能重现这种不间断流媒体的状态?FSCTL_ENUM_USN_DATA DeviceIoControlERROR_HANDLE_EOF


0 投票
1 回答
231 浏览

java - 阅读 USN 期刊会出现错误 1784

我想使用 Java JNA 库阅读 Windows USN(文件系统)日志。我可以打开驱动器的句柄并查询日志信息。但是当我尝试读取日志数据(FSCTL_READ_USN_JOURNAL)时,我收到错误 1784(提供的用户缓冲区对于请求的操作无效)。Windows 7/64,JNA 版本 4.5.1,java 8/32。我用 C++ 尝试了同样的方法,它工作得很好。

0 投票
1 回答
64 浏览

jna - JNA 访问 NTFS USN (win32)。如何从内存对象中获取数据?

enum USN 内存中的数据,结果数据不正确。我不知道该怎么办

我无法从内存缓冲区对象中获取结构数据,我该怎么办?

链接:
- DeviceIoControl FSCTL_ENUM_USN_DATA
-输入 MFT_ENUM_DATA_V0 结构
-输出内存 --> USN_RECORD_V2 结构

从内存中获取 USN_RECORD_V2。非常感谢。

0 投票
2 回答
541 浏览

delphi - USN_RECORD 所有值都可以,除了 TimeStamp = 0?

使用下面的记录结构和函数,我可以高速获取文件名、参考号、版本等。(尝试使用德尔福,Win 7)

问题是我没有得到文件 DateTime (TimeStamp.QuadPart = 0)

我已经添加了工作代码。为了测试,我将文件名(显示正确)和时间戳(显示为空)添加到 memo1

0 投票
0 回答
166 浏览

windows - 在 Golang 中创建 FILE_ID_DESCRIPTOR

我正在尝试在 Golang 中创建这种结构 -

如您所见,这取决于三个的并集,其中 unknown 是FILE_ID_128另一个结构,FILE_ID_TYPE所以我偶然发现了this,它是FILE_ID_128s 并且_FILE_ID_TYPE结构是herehere

在做了一些研究之后,我发现enum 在 Go 中是 const但在 Go 中,我们不能有一个命名的 const 所以可能 struct(?)union 是字节切片。但是我找不到MaximumFileIdType在 Go 中的含义以及如何实现它。提前致谢。

另外,请参考我正在关注的内容。

PS - 请让我知道这个问题被否决了。你看到缺乏努力吗?还是不清楚?这将有助于提出更清晰的问题

0 投票
0 回答
54 浏览

ntfs - 如何更改驱动器 usn 更改日志的 maxver 参数?

我有一个 NTFS 硬盘驱动器,我需要为我的应用程序创建一个更改日志。但是,我在尝试使用创建的日志时遇到了错误,我相信这是由于在日志上设置的 maxver 参数造成的。

当我运行fsutil usn queryjournal C:输出如下

注意“支持的最大记录版本:2”行。问题是我的应用程序依赖于USN_RECORD_V3

在我的应用程序正确运行的不同机器上的不同驱动器上,maxver 参数设置为 4。

我试过运行fsutil usn createjournal maxver=4 C:更新maxver,但即使命令执行,版本号也不会更新。我还尝试使用此命令完全创建一个新日志,但无济于事(最大记录版本仍为 2)。

这个 maxver 参数是如何确定的?如何更改给定驱动器的 maxver?对此的任何见解都会很棒。

0 投票
1 回答
72 浏览

c++ - USN 中的文件参考号返回空

我正在使用这个 MSDN 链接以编程方式读取 USN 记录。 https://docs.microsoft.com/en-us/windows/win32/fileio/walking-a-buffer-of-change-journal-records

错误:在 Project1.exe 中的 0x00007FFD58682666 (ucrtbased.dll) 处引发异常:0xC0000005:访问冲突读取位置 0x00000000FFFFFD7F。