Spring 2008
3
1.44 MB Floppy format
6
Windows FS Architecture (Continued)
• FSD/FSP Model
– User Thread versus Worker Thread
– Driven off of IRP Major Function
• See DriverEntry(…) in FatInit.c
– Fat Common Routines
• Everything looks like a file
– FatReadVolumeFile(…)
• Some things to watch out for
– Kernel Stack Space Limitation
– Being able to wait for I/O
– Recursive routines
7
Cache/MM Interaction
• Virtual caching
• Memory Mapped Files
• Fast read and fast write
• Ancillary file system data also cached
– Borrowing a pin and unpin logic from databases
• Noncached I/O
– Where the actual read/write to disk occur
– Synchronous and Asynchronous I/O
– See read.c, write,c and deviosup.c
8
CreateFile Operation
• Some of the main files and functions to look at
• Create.c and dirsup.c
• FatFsdCreate
• FatCommonCreate
• FatCreateNewFile
• FatCreateNewDirent
• FatConstructDirent
9
Programming Style
• Engineering practices
• Comments
• Indentation
• Variable names
• Project 4 description has a synopsis of each source file
10