#hyper-v #api-bindings #file-path #windows #vmsavedstatedump #vmrs

vmsavedstatedump_rs

Rust对VmSavedStateDumpProvider Windows 10 SDK API的抽象

1个不稳定版本

0.2.0 2019年7月25日
0.1.3 2018年12月20日
0.1.2 2018年12月20日
0.1.1 2018年12月15日
0.1.0 2018年12月14日

#172 in Windows API

MIT/Apache

1.5MB
718

vmsavedstatetodump-rs

VmSavedStateDump的Rust包装器

概述

本项目提供对VmSavedStateDumpProvider API的Rust抽象。

VmSavedStateDumpProvider API是Windows 10 SDK的一部分。

要求

为了正确构建此包装器,构建机器需要满足以下要求

  • Windows 10 SDK版本 10.0.18362.0
  • amd64 架构。

包装的Windows 10 SDK API

注意:文件路径基于默认安装路径 c:\Program Files (x86)\Windows Kits\10

此项目包装的相关Windows 10 SDK文件包括

  • C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\vmsavedstatedumpdefs.h
  • C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\vmsavedstatedump.h
  • C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\vmsavedstatedumpprovider.lib
  • C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\vmsavedstatedumpprovider.dll

使用方法

要运行使用这些API的代码,vmsavedstatedumpprovider.dll必须在可执行文件/二进制运行时中可被发现。

使用这些API时,主要入口点是创建一个VmSavedStateDumpProvider,提供bin/vsv - vmrs VM保存状态文件(s)的路径。

let vmrs_provider = VmSavedStateDumpProvider::load_vmrs("file_path.vmrs");
let bin_vsv_provider = VmSavedStateDumpProvider::load_bin_vsv("file_path.bin", "file_path.vsv");

一旦实例化了一个提供者,就可以在加载的VM保存状态文件的上下文中使用所有相关的API。

关于如何使用API的代码示例的最佳来源是集成测试,可以在这里找到。

本地使用方法

将仓库克隆到一个文件夹中

git clone https://github.com/rafawo/vmsavedstatetodump-rs.git

确保您构建的机器上安装了Windows 10 SDK版本 10.0.18362.0。然后运行

cd vmsavedstatetodump-rs
cargo build

通过运行来打开文档

cargo doc --open

最后,构建过程应该已经将 vmsavedstatedumpprovider.dll 复制到了根目录。通过运行以下命令进行测试:

cargo test

注意:vmsavedstatedumpprovider.dll 中存在一个错误,该错误阻止多个已保存状态文件按顺序加载,并重用相同的句柄。该修复从 Windows 10 SDK 版本 10.0.18362.0 开始可用。

Crates.io 版本说明

本节简要描述了关于该项目在 Crates.io 上发布的每个版本的注意事项。

按从最新到最旧的顺序排列。

  • 0.2.0 2019年7月25日
    • 更新默认 Windows 10 SDK 版本为 10.0.18362.0
      • 这消除了使用私有 vmsavedstatedumpprovider.dll 的需求,并且 SDK 中的版本包含了对单个加载的 DLL 模块同时打开多个文件的修复。
  • 0.1.3 2018年12月20日
    • 清理了类型和错误处理。
    • 内部重构并添加了 Windows 类型的类型别名。
    • 不推荐使用此版本。将来可能会被删除
      • 这是最后一个与 Windows 10 SDK 10.0.17763.0 的硬编码依赖项的 crate 版本,不幸的是,它包含有缺陷的 vmsavedstatedumpprovider.dll 版本。
  • 0.1.2 2018年12月20日
    • 完成了库的核心实现
    • 添加了集成测试。
    • 在 README 中添加了关于 vmsavedstatedumpprovider.dll 破坏版本的说明,以及指向私有修复的链接。
    • 不推荐使用此版本。将来可能会被删除
  • 0.1.1 2018年12月14日
    • 进行了小的错误修复,但仍然缺少核心功能。
    • 不推荐使用此版本。将来可能会被删除
  • 0.1.0 2018年12月14日
    • 为此 crate 发布的第一个版本。
    • 包含了对 API 的基本绑定和 Rust 抽象,但仍然有很多错误。
    • 不推荐使用此版本。将来可能会被删除

依赖项