From looking at these functions, there doesn't seem to be a lot of reasons why they're implemented in C++ rather than rust.

Of these four:

* `win32_require` - this looks like just a fancy wrapper around `FormatMessage`. I think that the `FormatMessage` may actually already be implemented by `strerror` buries in the `libc` module, so this function can probably get removed.
* `rust_win32_rand_acquire` - This looks like it may be the most difficult to put into rust. The constants `PROV_RSA_FULL` and the related `CRYPT_*` ones would be a pain to have to re-define in rust. This function seems like it could stick around in C++ (with a comment explaining why it's not in rust).
* `rust_win32_rand_gen` - This seems like it could easily be put into rust.
* `rust_win32_rand_release` - This also seems like it could easily be put into rust.