On Linux, it is possible for userspace to mix arbitrary data with the kernel entropy pool by writing to the
/dev/urandom device. Is there any equivalent on Windows which does not require SYSTEM?
None that I know of, exactly.
CryptGenRandom (the legacy CryptoAPI CSPRNG function) allows callers to supply additional entropy, but it's not even clear if this affects future calls to
CryptGenRandom by the same process, and it's fairly clear it doesn't affect other processes.
BCryptGenRandom (the next-gen replacement for the old
CryptGenRandom) used to allow the caller to supply addition entropy in much the same way, using the
BCRYPT_RNG_USE_ENTROPY_IN_BUFFER flag, but that is no longer supported as of Win8. Even in Vista and Win7 (and Server 2008), though, it is unclear whether the data supplied with that flag only modified the data returned by that call, or that call and future results to calls from the same process, or future results for all callers.