fd25b912332e2f47491d731b02a1325323ea2a34
[www.jankratochvil.net.git] / project / captive / doc / Index.html.pl
1 #! /usr/bin/perl
2
3 # $Id$
4 # Captive project doc Index page Perl template.
5 # Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; exactly version 2 of June 1991 is required
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20
21 package project::captive::doc::Index;
22 require 5.6.0;  # at least 'use warnings;' but we need some 5.6.0+ modules anyway
23 our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
24 our $CVS_ID=q$Id$;
25 use strict;
26 use warnings;
27
28 BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
29 use My::Web;
30 require CGI;
31 BEGIN { Wuse 'project::captive::doc::Macros'; }
32
33
34 My::Web->init(
35                 "__PACKAGE__"=>__PACKAGE__,
36                 "title"=>'Captive NTFS Developer Documentation',
37                 "head_css"=>$doc_Macros_head_css,
38                 );
39 My::Web->heading();
40
41
42 print <<"HERE";
43
44
45 <h1>Captive NTFS Developer Documentation</h1>
46
47
48 <ul>
49
50 <li><a href="About.html.pl">About</a>
51         <ul>
52         <li><a href="About.html.pl#reasons">Reasons for the Implementation</a></li>
53         <li><a href="About.html.pl#challenges">Challenges of the Project</a></li>
54         <li><a href="About.html.pl#versions">Microsoft Windows Versions Compatibility</a></li>
55         </ul></li>
56
57 <li><a href="Architecture.html.pl">Architecture</a>
58         <ul>
59         <li><a href="Architecture.html.pl#existing_emulation">Existing Emulation Projects</a></li>
60         <li><a href="Architecture.html.pl#law">Laws and Licensing Conditions</a>
61                 <ul>
62                 <li><a href="Architecture.html.pl#law_servicepack">Microsoft Service Pack</a></li>
63                 </ul></li>
64
65         <li><a href="Components.html.pl">Project Components</a></li>
66
67         <li><a href="Reverse.html.pl">Reverse Engineering</a>
68                 <ul>
69                 <li><a href="Reverse.html.pl#dumpbin">dumpbin.exe</a></li>
70                 <li><a href="Reverse.html.pl#WinDbg">WinDbg Windows NT kernel debugging</a>
71                         <ul>
72                         <li><a href="Reverse.html.pl#WinDbg_WinDbg">WinDbg side setup</a></li>
73                         <li><a href="Reverse.html.pl#WinDbg_kern">Setup of the side being kernel-debugged</a></li>
74                         </ul></li>
75                 </ul></li>
76         </ul></li>
77
78 <li><a href="Details.html.pl">Implementation Details</a>
79
80         <ul>
81         <li><a href="CacheManager.html.pl">NT Cache Manager</a>
82                 <ul>
83                 <li><a href="CacheManager.html.pl#TraceFS">TraceFS NT Cache Manager Tracer</a>
84                         <ul>
85                         <li><a href="CacheManager.html.pl#TraceFS_general">TraceFS for general API tracing</a></li>
86                         </ul></li>
87                 </ul></li>
88
89         <li><a href="Details.html.pl#emulmeth">Choice of the Emulation Methods</a>
90                 <ul>
91                 <li><a href="Details.html.pl#emulmeth_vm">Virtualmachine Running the Original W32 Subsystem</a></li>
92                 <li><a href="Details.html.pl#method_ntoskrnl">&quot;ntoskrnl.exe&quot; Inside Virtual Address Space</a></li>
93                 <li><a href="Details.html.pl#emulmeth_fs">Filesystem Driver Inside Virtual Address Space</a></li>
94                 </ul></li>
95         <li><a href="Details.html.pl#apichoice">API Function Implementation Choices</a></li>
96         <li><a href="Details.html.pl#sandbox">Sandboxing of W32 filesystem</a></li>
97         <li><a href="Details.html.pl#patched">&quot;patched&quot; vs. &quot;unpatched&quot; Libraries</a></li>
98         <li><a href="Details.html.pl#mman">Memory Management</a></li>
99         <li><a href="Details.html.pl#unicode">Unicode Strings and Characters</a></li>
100         <li><a href="Details.html.pl#binfmt">Supported Binary Formats</a></li>
101         <li><a href="Details.html.pl#mounted_one">At Most One Mounted Filesystem</a></li>
102         <li><a href="Details.html.pl#synchronous">Multithreading and Multiple Processors</a></li>
103         <li><a href="Details.html.pl#paranoia">Paranoia Checks</a></li>
104         <li><a href="Details.html.pl#logfile">STATUS_LOG_FILE_FULL</a></li>
105         <li><a href="Details.html.pl#parent_connector">ParentConnector volume remounter</a></li>
106
107         <li><a href="../apiref/">Captive API Reference Manual (fragment)</a></li>
108
109         <li><a href="APITypes.html.pl">API Function Implementation Choices</a>
110                 <ul>
111                 <li><a href="APITypes.html.pl#functype_pass">Direct Pass to Original &quot;ntoskrnl.exe&quot;</a>
112                         <ul>
113                         <li><a href="APITypes.html.pl#functype_pass_fromunix">Pass from UNIX Code</a></li>
114                         <li><a href="APITypes.html.pl#functype_pass_fromw32">Pass from W32 Code</a></li>
115                         </ul></li>
116                 <li><a href="APITypes.html.pl#functype_wrap">Wrap of the Original "ntoskrnl.exe" Function</a>
117                         <ul>
118                         <li><a href="APITypes.html.pl#functype_wrap_fromunix">Wrapping of Call from UNIX Code</a></li>
119                         <li><a href="APITypes.html.pl#functype_wrap_fromw32">Wrapping of Call from W32 Code</a></li>
120                         </ul></li>
121                 <li><a href="APITypes.html.pl#functype_native">Native Implementation</a>
122                         <ul>
123                         <li><a href="APITypes.html.pl#functype_native_fromunix">Native Implementation Called from UNIX Code</a></li>
124                         <li><a href="APITypes.html.pl#functype_native_fromw32">Native Implementation of &quot;unpatched&quot;
125                                         Library Function Called from W32 Code</a></li>
126                         <li><a href="APITypes.html.pl#functype_native_fromw32_patched">Native Implementation of &quot;patched&quot;
127                                         Library Function Called from W32 Code</a></li>
128                         <li><a href="APITypes.html.pl#functype_native_reactos">Native Implementation - ReactOS</a></li>
129                         <li><a href="APITypes.html.pl#functype_native_wine">Native Implementation &ndash; Wine</a></li>
130                         <li><a href="APITypes.html.pl#functype_native_libcaptive">Native Implementation &ndash; Project Specific</a></li>
131                         </ul></li>
132                 <li><a href="APITypes.html.pl#functype_undef">Undefined Function</a></li>
133                 </ul></li>
134
135         <li><a href="CallType.html.pl">API Function Calling Conventions</a>
136                 <ul>
137                 <li><a href="CallType.html.pl#calltype_cdecl">W32 Calling Convention &quot;cdecl&quot;</a></li>
138                 <li><a href="CallType.html.pl#calltype_stdcall">W32 Calling Convention &quot;stdcall&quot;</a></li>
139                 <li><a href="CallType.html.pl#calltype_fastcall">W32 Calling Convention &quot;fastcall&quot;</a></li>
140                 </ul></li>
141         </ul></li>
142
143 <li><a href="TODO.html.pl#todo_fsck">TODO: Fsck of NTFS</a></li>
144 <li><a href="TODO.html.pl#todo_surprise">TODO: NTFS Support for Partition Surprise</a></li>
145
146 <li><a href="Related.html.pl">Related Projects</a>
147         <ul>
148         <li><a href="Related.html.pl#LinuxNTFScompet">Linux NTFS</a></li>
149         <li><a href="Related.html.pl#NTPwd">NTPwd NTFS Driver</a></li>
150         <li><a href="Related.html.pl#vmware">VMware Workstation</a></li>
151         <li><a href="Related.html.pl#wine">Wine Project</a></li>
152         <li><a href="Related.html.pl#ntfs98">NTFS for Windows 98</a></li>
153         <li><a href="Related.html.pl#ntfsdos">NTFSDOS Professional</a></li>
154         </ul></li>
155
156 <li><a href="LinuxNTFS.html.pl">Re: 7.7 Can't we write a wrapper for Windows' driver?</a></li>
157
158 </ul>
159
160
161 HERE
162
163
164 My::Web->footer();