0

I am starting out in NTFS/FAT file systems programming in c++. Such as parsing MFT journal file etc.

I have come through some very good material online such as ntfs.com and understood the theoretical concepts.

But when it comes to access NTFS/FAT file system and do some code. I wonder where can i find such material which contains all the c++ data structures to access the core of windows file systems?

Please help.

Noddy
  • 33
  • 1
  • 1
  • 9
  • Google [filesystem programming FAT NTFS](https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=filesystem+programming+FAT+NTFS)? – πάντα ῥεῖ Feb 28 '15 at 18:18
  • There is an NTFS filesystem driver (and a FAT one too, not entirely surprisingly) in the Linux kernel. But accessing filesystems without using the OS-provided filesystem-driver is fraught with problems and generally doesn't end well.. – Mats Petersson Feb 28 '15 at 18:23
  • i have used google search very well to solve my query but all i found is some library written to access ntfs file system on codeproject.com but my motive is to go to the original implementation of ntfs file system. – Noddy Feb 28 '15 at 18:33
  • Yes, you are right Mats, but i am looking for such driver on windows system. is there any way out? Does microsoft provide ntfs driver which can we reverse engineered to find the code? – Noddy Feb 28 '15 at 18:35
  • 1
    @Noddy You want the original software? Then pay MS big times to get access to the source. Nobody of us here in this thread has that much money (probably), not even close – deviantfan Feb 28 '15 at 18:40
  • @Noddy And yes, of course there is a NTFS driver in Windows, but reverse engineering is a) much much work (and guesswork and hoping no possibility is overlooked) and b) legally problematic. (Yes, there are drivers for Linux and Mac, but as far as I know Tuxera&Co have agreements with MS) – deviantfan Feb 28 '15 at 18:42
  • @deviantfan absolutely no, i do not quite understand if there is no such way then how people are writing ntfs code and how they got the ntfs structures knowledge? – Noddy Feb 28 '15 at 18:44
  • @Noddy Did you read my comment? Eg. for NTFS-3G on Linux, the developer company Tuxera has an agreement with MS (and how much they had to pay isn´t known). See eg. http://www.tuxera.com/tuxera-the-ntfs-3g-file-system-provider-signs-intellectual-property-agreement-with-microsoft/ – deviantfan Feb 28 '15 at 18:45

1 Answers1

4

First, see What is a good resource to get started with Windows file system driver development?

When you download DDK, look at source code for FAT32 kernel driver - it's very good starting point. MS doesn't provide source code for NTFS, but you can find quite good low level documentation in MSDN - but I'd definitely start with source code for FAT32.

This book is a must for Windows driver development, even though it's old: http://www.amazon.com/Windows-File-System-Internals-Developers/dp/1565922492

I'd also look at Dokany, a fork of the Dokan project, it gives you good insight to IFS development, https://github.com/dokan-dev/dokany

polytopal
  • 3
  • 2
Robert Goldwein
  • 5,805
  • 6
  • 33
  • 38
  • you just gave a shine in the cloud. Can i use the above content for developing MFT journal file parsing utility? Please provide some light here. Thank you. – Noddy Feb 28 '15 at 18:52
  • This is all you need, http://www.microsoft.com/msj/0999/journal/journal.aspx (again, plus MSDN). – Robert Goldwein Feb 28 '15 at 19:01