1个不稳定版本
0.2.0 | 2019年7月25日 |
---|---|
0.1.3 |
|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#172 in Windows API
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 模块同时打开多个文件的修复。
- 更新默认 Windows 10 SDK 版本为 10.0.18362.0
- 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 抽象,但仍然有很多错误。
- 不推荐使用此版本。将来可能会被删除