# virtdisk-rs
Rust wrapper of VirtDisk APIs
## Overview
This project is a collection of Rust libraries that wrap functionality exposed by [VirtDisk](https://docs.microsoft.com/en-us/windows/desktop/api/virtdisk/).
VirtDisk APIs are part of the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk).
**NOTE:This crate is untested and simply provides safe Rust abstractions to the virtdisk C bindings. Fixes might come at later updates to the crate. There is no plan for now to create a fully suited integration test for the APIs.**
## Requirements
For this wrapper to build properly, the following requirements need to be met by the building machine:
- Windows 10 SDK version **10.0.18362.0**.
- **amd64** architecture.
- This Rust wrapper, for now, expects to build only in amd64.
## Wrapped Windows 10 SDK APIs
**_Note: This section includes the paths in the Windows SDK for the header and lib files based on the default installation path `c:\Program Files (x86)\Windows Kits\10`._**
The relevant Windows 10 SDK files that this project is wrapping are:
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\virtdisk.h
- C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\virtdisk.lib
- C:\Windows\System32\virtdisk.dll
## How to use locally
Clone the repo to a folder:
```
git clone https://github.com/rafawo/virtdisk-rs.git
```
Make sure the machine where you are building has Windows 10 SDK version **10.0.17763.132** installed. Then run:
```
cd virtdisk-rs
cargo build
```
Finally, open documentation by running:
```
cargo doc --open
```
## Crates.io version notes
This section briefly describes all published crates.io [versions](https://crates.io/crates/virtdisk-rs/versions) of this project, ordered from latest to oldest.
- [**2.0.0 Jul 31, 2019**](https://crates.io/crates/virtdisk-rs/2.0.0)
- Updated hardcoded dependency to Windows 10 SDK version 10.0.18362.0
- Subtle dependencies to Windows RS5
- [**1.5.0 Jan 4, 2019**](https://crates.io/crates/virtdisk-rs/1.5.0)
- Oldest stable version
- Containers VHD and Disk utilities to aid container storage setup
- API is tentatively finalized for this crate
- Hardcoded dependency to Windows 10 SDK version 10.0.17763.0
- Implementation has subtle dependencies to Windows RS4
- [**1.4.0 Jan 3, 2019**](https://crates.io/crates/virtdisk-rs/1.4.0)
- **YANKED, DO NOT USE**
- [**1.3.0 Jan 3, 2019**](https://crates.io/crates/virtdisk-rs/1.3.0)
- **YANKED, DO NOT USE**
- [**1.2.0 Jan 3, 2019**](https://crates.io/crates/virtdisk-rs/1.2.0)
- **YANKED, DO NOT USE**
- [**1.1.1 Jan 2, 2019**](https://crates.io/crates/virtdisk-rs/1.1.1)
- **YANKED, DO NOT USE**
- [**1.1.0 Jan 2, 2019**](https://crates.io/crates/virtdisk-rs/1.1.0)
- **YANKED, DO NOT USE**
- [**1.0.1 Dec 31, 2018**](https://crates.io/crates/virtdisk-rs/1.0.1)
- **YANKED, DO NOT USE**
- [**1.0.0 Dec 28, 2018**](https://crates.io/crates/virtdisk-rs/1.0.0)
- **YANKED, DO NOT USE**
- [**0.1.2 Dec 20, 2018**](https://crates.io/crates/virtdisk-rs/0.1.2)
- **YANKED, DO NOT USE**
- [**0.1.1 Dec 20, 2018**](https://crates.io/crates/virtdisk-rs/0.1.1)
- **YANKED, DO NOT USE**
- [**0.1.0 Dec 19, 2018**](https://crates.io/crates/virtdisk-rs/0.1.0)
- **YANKED, DO NOT USE**