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