The project is to write a filesystem filter driver, mini-filter is good as well (if it will be simpler in implementation)
Tasks of the driver:
1. Intercept and redirect file reads.
Driver must have 2 parameters that can be specified using a config file:
a) list of directory paths to monitor and intercept reads from
b) directory path, where actual files will reside
If any application tries to read a file from location a), driver needs to check if there is file with the same name under location b). If such file exists and has last write time the same or later than requested file, driver needs to make that this file will be read instead of requested file.
This redirection must not prevent OS from caching file content in RAM.
2. Log all file reads and writes to a file
In addition, it's necessary to create a console app that can install and uninstall the driver.
This stage is a prototype, extensive testing is not required. This project will be continued later to produce a release quality software.
1) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the worker's Worker Legal Agreement).
2) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
3) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Worker in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
Windows XP SP3 and above, both 32 and 64 bit