5个版本
新 0.1.4 | 2024年8月19日 |
---|---|
0.1.3 | 2024年8月19日 |
0.1.2 | 2024年8月19日 |
0.1.1 | 2024年8月19日 |
0.1.0 | 2024年8月19日 |
#35 在 Windows API
每月424次下载
72KB
1K SLoC
vhdrs
一个轻量级的库,为在Windows系统上管理虚拟硬盘(VHD/VHDX)提供了一个直观的接口。它利用Windows API简化了如打开、附加、分离以及从VHD文件中检索信息等操作。
功能
- 打开VHD/VHDX文件:支持以只读和读写模式打开VHD/VHDX文件。
- 挂载和卸载:将虚拟磁盘附加到系统并从系统中分离,支持持久和临时挂载。
- 磁盘信息检索:获取虚拟磁盘的详细信息,包括其大小和唯一标识符。
- 自动资源管理:处理清理操作,确保资源如文件句柄被正确释放。
使用方法
打开VHD/VHDX文件
您可以通过指定文件路径和所需的访问模式来打开VHD/VHDX文件。除非明确指定,否则文件类型将根据扩展名推断。
let vhd = vhdrs::Vhd::new("file.vhd", vhdrs::OpenMode::ReadOnly, None).unwrap();
附加VHD
要挂载VHD到系统驱动器,请使用attach方法。您可以选择使挂载在系统重启之间持续。
let mut vhd = vhdrs::Vhd::new("file.vhd", vhdrs::OpenMode::ReadOnly, None).unwrap();
let drive_letter = vhd.attach(false).unwrap();
println!("VHD mounted at drive: {}", drive_letter);
卸载VHD
要手动卸载VHD,请使用detach方法。手动分离仅适用于持久挂载;临时挂载在VHD实例释放时自动分离。
vhdrs::Vhd::detach("file.vhd").unwrap();
检索磁盘信息
您可以检索关于VHD的详细信息,包括其虚拟大小、物理大小、块大小和扇区大小。
let mut vhd = vhdrs::Vhd::new("file.vhd", vhdrs::OpenMode::ReadOnly, None).unwrap();
let disk_info = vhd.get_size().unwrap();
println!("Disk Info: {:?}", disk_info);
获取VHD标识符
此函数检索附加虚拟磁盘的唯一标识符,用于跟踪和管理多个VHD。
let mut vhd = vhdrs::Vhd::new("file.vhd", vhdrs::OpenMode::ReadOnly, None).unwrap();
let identifier = vhd.get_identifier().unwrap();
println!("VHD Identifier: {}", identifier);
许可证
此项目采用MIT许可证。有关更多详细信息,请参阅LICENSE文件。
贡献
欢迎贡献!如果您有任何改进建议或想要报告问题,请随时在项目的GitHub仓库上提交问题或拉取请求。
依赖项
~12–20MB
~260K SLoC