# $Id$ # Captive project doc TODO page Perl template. # Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package project::captive::doc::TODO; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; use My::Web; sub handler { BEGIN { Wuse 'project::captive::doc::Macros'; } project::captive::doc::Macros->init( "title"=>'Captive NTFS Developer Documentation: TODO', "rel_prev"=>'CallType.pm', "rel_next"=>'Related.pm', ); print <<"HERE";

TODO: Fsck of NTFS

Currently this project does not support checking of data structures of NTFS volume as being provided by chkdsk.exe in W32 environment and fsck in UNIX OS.

W32 has its disk checking functionality split to untfs.dll W32 userland library. according to @{[ a_href 'http://www.sysinternals.com/ntw2k/source/fmifs.shtml', 'Chkdskx and Formatx' ]} by @{[ a_href 'http://www.sysinternals.com/aboutus.shtml', 'Mark Russinovich' ]}.

I assume its execution falls completely @{[ a_href 'Architecture.pm#existing_emulation','out of scope' ]} of this project as it is W32 userland.

This possibility was not yet investigated in any way.

TODO: NTFS Support for @{[ a_href '/project/surprise/','Partition Surprise' ]}

There already exists @{[ a_href 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html','ntfsresize' ]} using reverse-engineered data structures information. According to the usage count it appears @{[ a_href 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html','ntfsresize' ]} is safe.

Despite it @{[ a_href 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html','ntfsresize' ]} still has some usage limitations such as no possibility to shrink the partition to less than its half size. There exists technically interesting possibility to use Captive NTFS access for @{[ a_href '/project/surprise/','Partition Surprise' ]} as it is the only partition manager capable of disk operations by using just the original W32 filesystem driver by full rebuild of the filesystem metadata. Almost no file data blocks would be needed to move even when using these generic W32 filesyste drivers as W32 supports FSCTL_MOVE_FILE request according to @{[ a_href 'http://www.sysinternals.com/ntw2k/info/defrag.shtml', 'Inside Windows NT Disk Defragmenting' ]} by @{[ a_href 'http://www.sysinternals.com/aboutus.shtml', 'Mark Russinovich' ]}.

HERE exit; } 1;