Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-10998

PATCH: Preliminary NTFS write support

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 0.4.8
    • Component/s: Filesystems
    • Labels:

      Description

      [NTFS]
      This patch is intended to be the MINIMUM incremental update towards read/write support for the NTFS filesystem. It allows for the contents of existing files to be overwritten. To see it in action, you have to format a second hard drive or partition with NTFS and write some text files to it in Windows. These text files should be about 1024 bytes or larger. You can then boot into ReactOS and use this driver to make changes to the files. Note that you can't even change a file's size at this stage.

      Limitations:
      Can't overwite a file with a resident data attribute (files smaller than about 700 bytes).
      Can't Create / Delete / Rename files.
      Can't change file size or details.
      No support for large files, page files, caching, async writes, transactions, probably a lot more.
      Only tested with small files on a very small NTFS partition created in Windows 2000 (NTFS version 3.0).

      Changes:
      blockdev.c:
      +NtfsWriteDisk() in blockdev.c
      NtfsReadDisk() was made to use nonpaged memory for its notification event.

      create.c:
      NtfsCreateFile() got some minor changes to allow overwrites.

      mft.c:
      +WriteAttribute()

      misc.c:
      +NtfsLockUserBuffer()

      ntfs.h:
      +prototypes
      NTFS_TYPE_IRP_CONTEST changed to NTFS_TYPE_IRP_CONTEXT - It's not a contest

      rw.c:
      +NtfsWriteFile()
      +NtfsWrite()
      Fixed some logic regarding sector-aligned writes in NftsReadFile(). Before, if a read straddled a sector boundary, some data could be missed. Also, the function did not previously reserve enough memory for this situation.

        Attachments

        1. NTFS_Bonus.zip
          330 kB
        2. ntfs_preliminary_write_support.patch
          35 kB
        3. ntfs_preliminary_write_support.patch
          36 kB
        4. ntfs_preliminary_write_support.patch
          39 kB
        5. ntfs_preliminary_write_support.patch
          43 kB
        6. NTFS_Tests.zip
          405 kB
        7. NTFS_Tests.zip
          401 kB
        8. NTFS_Tests.zip
          267 kB

          Issue Links

            Activity

              People

              • Assignee:
                Heis Spiter Pierre Schweitzer
                Reporter:
                coderTrevor Trevor Thompson
              • Votes:
                8 Vote for this issue
                Watchers:
                10 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: