Talk:File Systems

From ReactOS Wiki
Jump to: navigation, search

Tasks to improve this article:

  • Write an appropriate introduction to the article.
  • Include relevant information about the status/progress of each FS.
  • Create a section for unplanned/unsupported file systems.
  • Merge information from ReiserFS into said section.

I was thinking about splitting the FAQ part into a separate article. Now it occupies roughly half of the article and has explanation that are either redundant with the individual FS parts, or have information that should be put in these parts. I volunteer to make new drafts for both pages, but would like to have some comments, especially from people that edit/watch this page, before breaking everything.

On this page there is a long tail with the change log. While historically interesting, I don't think it belongs here, as it does bring anything to current state of ROS or the discussion. Fred02 (talk) 13:38, 3 March 2013 (UTC)


In the NTFS section there is a sentence "You can find exhaustive discussions in ReactOS Forum for further details." I think a couple links to these discussions should be provided. A quick search of General and Developers subforums returned the following threads and posts on the topic:

Fred02 (talk) 22:56, 24 February 2013 (UTC)

No comments after a week. Does it mean I should go ahead and do the mentioned modifications? Will wait a couple of days more and then do it. It can be reverted back anyway. :) Fred02 (talk) 13:24, 3 March 2013 (UTC)


Must we? I don't remember the last time the devs actually talked about support for this, much less any traces of source on the dev tree. --Lone Rifle 08:37, 18 November 2009 (UTC)

I stand corrected, Bo Braten's ReiserFS driver is freely available, and the Reiser4 driver guys are willing to collaborate us. The main issue cited by the article for the collaboration stalling then was the lack of ntifs.h; this has since been imported from Bo Braten's copy of it. Article needs to be updated, and perhaps collaboration should be resumed. --Lone Rifle 08:53, 18 November 2009 (UTC)


ChangeLog-0.0.11 - Added some support for filesystems

ChangeLog-0.0.16 - Implemented symbolic link support; Improvements to the FAT file system driver; Updated Minix file system driver

ChangeLog-0.0.17 - Work on file caching; Work on various filesystems

ChangeLog-0.0.18 - Major NPFS (Named Pipe FileSystem) update; Improved overall VFAT stability; Improved FAT32 support (including write ability); Ram disk driver

ChangeLog-0.0.19 - Implemented file system change notification; NPFS read/write functionality; Added some modifications for asyncronous i/o requests (for vfatfs)

ChangeLog-0.0.20 - Improved VFAT driver including; Changed directory and fat access to pining-interface; Changed calculation of available and free clusters; Changed mount and type determining procedure; Added FAT32 fs type; Support for accessing the raw volume; Made NTFS-Partitions mountable; Added basic ISO-9660 file system driver for CDROM support; Added directory listing; Added file and directory caching; Added file system recognizing driver


  • Finished media change support, except for prper volume dismount (Eric Kohl)


  • VFAT: Improvements; CDFS: Added support for multi session CD

ChangeLog-0.1.0 File locking; Enabled caching of directories and fat segments; Kernel32: Improved file attribute and file time handling; VFatFS: performance enhancements, Handle FAT32 partitions larger than 4GB, Fixed handling of large FAT32 partitions; Fs_Rec: Added UDF filesystem recognize


ChangeLog-0.2.1 Fslib.dll

  • Also zero out first sector of root dir when formatting FAT12 and FAT16 volumes (Gé van Geldorp)


  • Fixed checking for a FAT file system on a removable media (Hartmut Birr)
  • Check more exactly for a FAT file system. (Hartmut Birr)
  • Improved the reading and writing of fragmented files (Hartmut Birr)
  • Don't return a file or allocation size for directories (Hartmut Birr)
  • Handle correctly "Unknown" media type in VfatHasFileSystem. This gets the floppy disk driver working (Filip Navara)

Named Pipe Driver

  • Fix a stupid bug that prevented writing to pipes from working (Filip Navara)
  • Fixed connection/disconnecting/closing handling, so we don't connect to dead and disconnected pipes (Filip Navara)
  • Handle the OPEN_EXISTING flag correctly (Filip Navara)
  • Report reasonable error messages instead of STATUS_UNSUCCESSFUL (Filip Navara)
  • Fixed various problems (hangs/crashes) with connecting, disconnecting and closing named pipes (Filip Navara)
  • Protect against reads from (and writes to) closed named pipes (Filip Navara)
  • Workaround for supporting a reads from pipe after the other end has been closed and data are still available in the buffers (Filip Navara)


  • Fixed the calculated file attribute in CdfsFileFlagsToAttributes (Hartmut Birr)

ChangeLog-0.2.4 VFAT

  • Optimized and re-wrote parts of VFAT (Filip Navara)
  • Fixed a bug, which prevents an opening of files, if the file name contains short path names. (Hartmut Birr)

ChangeLog-0.2.5 VFAT


ChangeLog-0.2.9 vfatfs

  • Don't try to create a file, if no parent fcb was found. (Hartmut Birr)
  • Use the calculated cluster/offset pair if we extend a file. (Hartmut Birr)
  • Lock the MainResource if we overwrite or supersede an existing file. Use given allocation size, if we overwrite or supersede an existing file. (Hartmut Birr)


  • Release the correct locks and release they in the correct sequence. (Hartmut Birr)
  • Use the share disposition to detect the direction of a pipe. (Hartmut Birr)


  • ntmarta : bug 1346 : patch from w3seek : Support SE_FILE_OBJECT in GetNamedSecurityInfo
  • bug 1457: patch by w3seek : VFAT: Implement FileEaInformation for FAT32 committed by (Magnus Olsen)


  • VFAT: VfatGetNameInformation: Return the file name length even if the buffer is too small, that's the whole point of the "Query length before comitting a buffer" principle. (Alex Ionescu)
  • VFAT: VfatGetNameInformation: FSDs are not supposed to null-terminate the buffer, nor expect the caller to send a buffer large enough for null-termination. (Alex Ionescu)
  • VFAT: VfatGetNameInformation: Added a hack in IopQueryFile to handle another VFAT bug which makes it return the total number of bytes written in IoStatus.Information instead of the total number of bytes *left untouched*.There are probably many other broken things due to this. (Alex Ionescu)
  • CDFS: A long long time ago there was a stupid kernel that created MDLs for R/W requests even when the length of the buffer was 0. He had another stupid friend called CDFS which attempted to read the MDL before checking if the buffer size is also 0. When cdfs's friend, the kernel, grew smarter and stopped allocating MDLs, cdfs didn't catch on and cried every time this happened. CDFS now caught up. (thanks to Greatlord for finding the regression). (Alex Ionescu)



  • Reorganized NTFS driver header : renamed Magic to jump, and OemName to OEMID, created structures for BPB and EBPB and used them in BOOT_SECTOR one, added a field to BOOY_SECTOR structure. This is based on a Technet document and Alex Ionescu document (Pierre Schweitzer)
  • Updated NTFS header : separate a field into two distinct fields. One will be used when mounting volume, added comment to unusedX fields that are used anyway when mounting volume (Pierre Schweitzer)
  • Zero memory before use (Pierre Schweitzer)
  • Rewritten NTFS driver entry : use Hervé Poussineau debug method (better), thanks to (Hervé Poussineau), use NTAPI instead of STDCALL to have MSVC compatibility, thanks to (Hervé Poussineau), moved IRP functions array to a new function, NtfsInitializeFunctionPointers, added more checks, initialize global and local data before acting with kernel, removeed the use of one var (Pierre Schweitzer)


BrentNewland 21:29, 11 March 2012 (UTC)]