You need to get yourself an old computer with DOS and a floppy disc.
Then you can have the fun of using Edlin and debug.com and using the floppy disc.
You can issue the command to format the disc.
You can write and read files.
You can see where a file starts, and you can see the linkage as it moves to the next available track and sector.
Thirty years ago I had a two inch thick printout on 132 column fan folder paper of magic entry points and interrupt invocations.
I had the information but not the courage to set up the control codes and GOTO the special address that would modify my HDD.
I had the information to reformat my 20 MB HDD which had 16 KB sectors, i.e. 1200 files top whack.
Information but not the courage to make a possibly non-reversible mistake.
It was hard work doing and understanding all that low level stuff "by hand",
and much easier just using the "high level" file operating system.
I prefer now to simply use the tools which do the work for me.
That "high level" file operating system is very low level compared to a hard disc FAT32 system,
and converting from FAT32 to NTFS does not make it simpler.
I think there is more than two inches of data available on the API's available in the O.S.
You will have an awful lot of studying ahead of you.
It may be easier if you gave up on this topic and instead looked for support from the suppliers of your C# compiler.
They may provide relevant #include and lower level stuff