JNA访问NTFS USN(win32)。如何从Memory对象获取数据?

时间:2018-08-29 11:16:42

标签: jna usn

枚举存储器中的USN数据,结果数据不正确。我不知道该怎么办

.then

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

<script type="text/javascript">
    var myApp = angular.module("demo", []);
    myApp.controller("demoCtrl", function($scope, $http) {
        var promise = $http.get("todo.json");
        promise.then(function(data) {
            $scope.todos = data;
        }, function() {
            alert('No Todos');
        });
    });
</script> 

链接:
-DeviceIoControl FSCTL_ENUM_USN_DATA
-input MFT_ENUM_DATA_V0 Structure
-output memory --> USN_RECORD_V2 Structure

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

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

链接到的文档说此功能的内存输出缓冲区是:

  

指向输出缓冲区的指针,该缓冲区接收USN,后跟零或   更多USN_RECORD_V2或USN_RECORD_V3结构。 USN是一个DWORDLONG值,代表缓冲区中最后一条记录之后的USN。

您正在尝试从偏移量0开始读取内存,但是前8个字节是您可以在以后的调用中使用的USN。

您将在现有代码中添加8个字节以获得正确的值;但是,一种更易读的方法是将Structure与所有USN_RECORD_V2字段及其字节值进行映射,并read()memory.share(8)映射该结构。