CoderTrevor

GSoC NTFS 2017 Update 1

Hello everyone! My name is Trevor Thompson. I'm a computer science major at Blue Ridge Community College living in Virginia. This is my second time participating in Google Summer of Code. I'm very happy to be working on ReactOS' NTFS driver again! Recap When I started last year, ReactOS could read files from an NTFS volume, but had no write support whatsoever. After GSoC last year, the driver in my branch could overwrite existing files.

NTFS Write Support GSoC - Work Summary

This is a detailed summary of the work I've performed during GSoC. Highlights Wrote numerous functions which allow for NTFS write-support. Expanded ReactOS' NTFS driver with the ability to overwrite files and change a file's size. Identified and repaired several bugs related to reading files from NTFS. Fixed ReactOS' LargeMCB implementation, facilitating support for four file systems, NTFS included (See CORE-11002). Diagnosed and fixed a regression using log files (See CORE-11707).

NTFS Write Support GSoC - Week 12

I said in my last update that I was aware GSoC was coming to an end, but in truth I don't think I realized just how close the end was coming. I need to be completely finished in much less than a week from now! Near the middle of the week, I was mostly finished with the code to create a new file record in memory. This progressed quickly, thanks to the time I put into diagnostic output and researching the file records that Windows creates.

NTFS Write Support GSoC - Weeks 9, 10, 11

Wow, these weeks keep blazing by! Apologies for the missed updates; I've been faced with a family emergency for the past couple of weeks. My girlfriend's dad was in the hospital for 13 days after having a heart attack, getting a triple-bypass, then suffering from Ogilvie syndrome after surgery. He got out Saturday and is recovering. It's been a very long, scary time for my girlfriend and her family and she needed my support full-time.

NTFS Write Support GSoC - Week 8

Overwriting Files Continues This week has been pretty uneventful. I wrote a function to shrink the allocation size of an attribute and another to migrate a resident attribute to non-resident. The former seems to be working, the latter still needs some work. Looking Forward (Changing Direction) I'm only planning to spend another couple of days working on updating files, then I want to move on to file creation. There are several reasons motivating this thinking.

NTFS Write Support GSoC - Week 7

Assigning Clusters Part 2 I can't believe week seven has already passed! Adding assigned clusters to data runs turned out to be more challenging than I anticipated, but I made steady progress on it throughout the week and have it working now (as far as I can tell). Fixing the problems with LargeMcb.c in week 1 came full-circle, as I relied on a map control block to simplify my task considerably.

NTFS Write Support GSoC - Week 6

This week was rewarding, because I got some things done that I've been wanting to do for a while. Assigning ClustersI wrote some code which can assign clusters by updating the $BITMAP file. As I mentioned last week, this is half of the equation for extending the allocation size of a non-resident file. I'm still working on the other half, which involves storing the assigned clusters in data runs.

NTFS Write Support GSoC - Week 5

Progress At the beginning of the week I finished cleaning up and committing the code I wrote related to extending a file's size. This took me a little longer than I expected and in the future I'm going to commit more often so I don't have this problem. From there I added support for truncating files, with a couple of caveats. This is significant because it allows for opening a file in Notepad.

NTFS Write Support GSoC - Week 4

Mid-term evaluations opened up yesterday, and naturally I've been super-busy this week, making sure I've earned my keep! ;) Getting the New Size Recognized in Windows Recall that I ended last week being able to extend a file's size in ReactOS, but Windows wasn't showing the newly written data when opening the file in notepad. My mentor Pierre and forum member Pathoswithin both suggested, independently, that my problems with extending a file might be caused by only increasing the size of the $DATA attribute and not also modifying the appropriate $FILE_NAME attribute associated with the file.

NTFS Write Support GSoC - Week 3

Learning About NTFS I spent most of the week studying NTFS in-depth, and really learning about some of the things I glossed over before. This is something I had to do make meaningful progress with increasing file sizes. This involved (re-re-re-)reading the three relevant chapters in File System Forensic Analysis. Also, in order to retain and really understand the information, I've started making a standalone app that lists files on an NTFS partition.