
Show HN: WinSpd – create “SCSI disks” as user mode processes on Windows - billziss
https://github.com/billziss-gh/winspd
======
ChuckMcM
Note that creating virtual CD-ROM drives attached by SCSI and then loading
them with virtual game CDs so that said game will play, was the entire basis
of the drive emulator market for a while. :-)

I have also known people who use this technique to create an encrypted disk
image which is distributed with their program which provides the 'secret
bits'. Sort of like mount the image, decrypt it by giving it the key, and then
launch the app which loads its .dll files from the newly decrypted attached
disk. A bit of obfuscation which minimizes the impact on the application that
you're trying to keep out of the hands of people without a license to it.

------
billziss
I am the WinSpd author. Feel free to ask me any questions you may have.

~~~
rkagerer
How bug-free is it?

I tried Dokan and CBFS (Call Back File System) a long time ago. They were both
great, but I ran into bugs fairly quickly with each.

~~~
john_moscow
MS is actually working on their own replacement for Dokan that is called
Projected File System [0]. If I understand correctly, they need it internally
for handling large git repositories, so it's probably there to stay.

[0] [https://docs.microsoft.com/en-
us/windows/desktop/projfs/proj...](https://docs.microsoft.com/en-
us/windows/desktop/projfs/projected-file-system)

~~~
poizan42
As far as I can tell it is not the same thing. Projected File System overlays
a part of a real file system, and files are cached to the local file system.

~~~
billziss
Agree. The Projected File System is very limited compared to WinFsp, Dokany or
CBFS. I have looked at it quite extensively as my own WinFsp open source
software is in the same space.

------
lostmsu
Just want to note, that ImDisk, mentioned here in the thread, while
technically GPL too, can be stripped of non-GPL code easily, according to its
author.

~~~
billziss
Interesting. I was not aware of ImDisk. Reading about it, it appears to be a
RAMDisk only tool. Did I misunderstand?

~~~
zamadatix
"ImDisk is a virtual disk driver for Windows NT/2000/XP/Vista/7/8/8.1/10 and
Windows Server 2003/2003 R2/2008/2008 R2/2012/2012 R2, 32 and 64 bit editions.
_It can create virtual hard disk, floppy or CD /DVD drives using image files
or system memory._"

[http://www.ltr-data.se/opencode.html/#ImDisk](http://www.ltr-
data.se/opencode.html/#ImDisk)

~~~
billziss
Thanks for the additional information :)

~~~
lostmsu
That still misses the point, that it provides a protocol dubbed "devio", that
enables userspace programs to create these disks virtually, and handle access
via own implementations of write/read primitives.

They too have a .NET wrapper BTW.

