Jan Kratochvil
Projects
Products
GIT
Resume
Contact
Projects
UNIX
UNIX-devel
Web
Amiga
MS-Windows
MS-DOS
Patches
Captive: The first free NTFS read/write filesystem for GNU/Linux
Captive NTFS Developer Documentation
About
Reasons for the Implementation
Challenges of the Project
Microsoft Windows Versions Compatibility
Architecture
Existing Emulation Projects
Laws and Licensing Conditions
Microsoft Service Pack
Project Components
Reverse Engineering
dumpbin.exe
WinDbg Windows NT kernel debugging
WinDbg side setup
Setup of the side being kernel-debugged
Implementation Details
NT Cache Manager
TraceFS NT Cache Manager Tracer
TraceFS for general API tracing
Choice of the Emulation Methods
Virtualmachine Running the Original W32 Subsystem
"ntoskrnl.exe" Inside Virtual Address Space
Filesystem Driver Inside Virtual Address Space
API Function Implementation Choices
Sandboxing of W32 Filesystem
"patched" vs. "unpatched" Libraries
Memory Management
Unicode Strings and Characters
Supported Binary Formats
At Most One Mounted Filesystem
Multithreading and Multiple Processors
Paranoia Checks
STATUS_LOG_FILE_FULL
ParentConnector volume remounter
Captive API Reference Manual (fragment)
API Function Implementation Choices
Direct Pass to Original "ntoskrnl.exe"
Pass from UNIX Code
Pass from W32 Code
Wrap of the Original "ntoskrnl.exe" Function
Wrapping of Call from UNIX Code
Wrapping of Call from W32 Code
Native Implementation
Native Implementation Called from UNIX Code
Native Implementation of "unpatched" Library Function Called from W32 Code
Native Implementation of "patched" Library Function Called from W32 Code
Native Implementation - ReactOS
Native Implementation – Wine
Native Implementation – Project Specific
Undefined Function
API Function Calling Conventions
W32 Calling Convention "cdecl"
W32 Calling Convention "stdcall"
W32 Calling Convention "fastcall"
TODO: Fsck of NTFS
Related Projects
Linux NTFS
Paragon NTFS for Linux
NTPwd NTFS Driver
VMware Workstation
Wine Project
NTFS for Windows 98
NTFSDOS Professional
Re: 7.7 Can't we write a wrapper for Windows' driver?
EOF