Am 20.08.2017 um 18:52 schrieb Alex Ionescu:
This is cool work but you do realize that adding
non-Windows partition
types and changing Windows headers (and Windows macros) to work with
them, as well as forking our CDFS from the Windows CDFS... doesn't
really help compatibility move forward...
Well, does it break compatibility in any way?
Our version of the IsRecognizedPartition macro is already enclosed in an
#ifdef __REACTOS__ and has been supporting more partition types than
Windows even before my changes.
If you want to use our ntdddisk.h for building Windows-compatible
drivers, you can still do so by not defining __REACTOS__.
I'm not seeing why our CDFS driver shouldn't be able to do more than the
Windows counterpart does. As long as it doesn't break compatibility with
the features also supported by the Windows version.
After all, ReactOS isn't meant to be an exact reference implementation
of Windows.
Even Microsoft has changed the abilities of its CDFS driver drastically
over time. Just look at how the first Windows 95 version of "cdfs.vxd"
actually treated Audio CDs:
http://forest.watch.impress.co.jp/article/1999/03/16/cdfs.gif
I could actually imagine such a useful feature for our cdfs.sys too :)
My suggestion would be a filter driver on
top of CDFS, and a re-definition of this macro to be used by the filter
(or whatever code relies on it).
Among other places, this macro is used in ntoskrnl/fstub/disksup.c when
assigning drive letters. Any partition that isn't recognized doesn't get
a drive letter, which is really bad if that particular partition is your
boot partition.
Best regards,
Colin