[ros-kernel] Re: ReactOS GPL vs. proprietary drivers - NTFS
Driverunder Linux + WINE
Jason Filby
jasonfilby at yahoo.com
Wed Oct 22 05:21:12 CEST 2003
The TracerFS is very interesting; could it be of use to other areas
of
the project?
Also, should we commit Jan's CC branch?
Regards
Jason
Jan Kratochvil wrote:
>Hi,
>
>
>
>On Tue, 21 Oct 2003 22:11:38 +0200, KJK::Hyperion wrote:
>
>..
>
>
>
>>can I reasonably doubt that your software is 100% legal? where,
exactly,
>>
>>
>
>
>
>>did you get a reference of the Windows cache manager?
>>
>>
>
>
>
>Cache Manager was a pain as it is not easily disassemblable as the
rest of
>
>those disgusting 80MB of ntoskrnl.exe/ntfs.sys dumps.
>
>
>
>Initially I wrote the Cache Manger according to my mind, Googled
articles
>
> http://www.winntmag.com/Articles/Print.cfm?ArticleID=3864
>
> (Mark Russinovich)
>
> http://www.osr.com/ntinsider/1996/cacheman.htm
>
> (probably more as I clicked through Google)
>
>
>
>and header files. It was this 'version 1' implementation:
>
>
http://cvs.jankratochvil.net/viewcvs/*checkout*/captive/src/libcaptive/cc/Attic/map.c?rev=HEAD
>
>
>
>captive-0.8 got ntfs.sys working with this 'version 1' but it still
had a lot
>
>of guessed behavior and it corrupted its files from case to case.
>
>'Version 1' also had a adjustments compatible just with
'fastfat.sys' while not
>
>with 'ntfs.sys' and vice versa. :-)
>
>
>
>During captive-0.9 stabilization phase I finally got angry and wrote
my first
>
>program for the real native W32 environment - TraceFS:
>
> http://www.jankratochvil.net/project/TraceFS/
>
>
>
>The driver got hooked to a patched version of ntfs.sys by
>
>
http://cvs.jankratochvil.net/viewcvs/*checkout*/captive/src/TraceFS/hookfs.pl?rev=HEAD
>
>
>
>It was used to trace all calls of ntoskrnl.exe Cache Manager
functions from
>
>ntfs.sys in the native W32 environment. These debug messages were
catched by
>
>Microsoft WinDbg in a remote serial kernel mode debugging sessions.
>
>
>
>Then I wrote my new Cache Manager implementation ('version 2') in
Perl
>
>
http://cvs.jankratochvil.net/viewcvs/*checkout*/captive/src/TraceFS/checktrace.pl?rev=HEAD
>
>
>
>just to simulate the guessed internal state of NT Cache Manager
according to
>
>the behavior from the log file. It checked its state changes and it
complained
>
>on any detected inconsistencies. I had to tune checktrace.pl
behavior as long
>
>as it produced no state warning messages. One of such big changes
was to find
>
>out such basic principle as all the Cache Manager functionality is
bound to FCB
>
>- not the FileObject as I was originally expected
>
>
http://cvs.jankratochvil.net/viewcvs/captive/src/TraceFS/checktrace.pl.diff?r1=1.3&r2=1.4&diff_format=u
>
>
>
>Fortunately the log of full NT boot, some NTFS operations and NT
shutdown was
>
>rich enough to catch various border cases with only one possible
solution.
>
>
>
>When I got satisfied with the results of checktrace.pl I rewrote it
back to C
>
>as a Cache Manager 'version 3' currently located at
>
> http://cvs.jankratochvil.net/viewcvs/captive/src/libcaptive/cc/
>
>
>
>'Version 3' is much more simpler than the overcomplicated 'versin
1'. :-)
>
>
>
>
>
>You can find this story by different words (and with images) at:
>
>
http://www.jankratochvil.net/project/captive/doc/CacheManager.html.pl#TraceFS
>
>
>
>While the description of the currently known Cache Manager
functionality at:
>
>
http://www.jankratochvil.net/project/captive/doc/CacheManager.html.pl#cache_manager
>
>
>
>(Although the authoritative source is
>
> http://cvs.jankratochvil.net/viewcvs/captive/src/libcaptive/cc/
>
>
>
>as I may have forgot to note some minor details in the HTML doc.)
>
>
>
>
>
>
>
>Regards,
>
>Lace
>
>
>
>
>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
More information about the Ros-kernel
mailing list