Front-end, Interface: Dialog with 2 buttons, combo box and check box. First button calls driver to create and assign a corresponding to it letter to a virtual drive and insert drive letter into combo box (Combo box must be populated with our virtual drives only!) Second button removes drive specified in combo box. If check box is checked do not permit writing to the drive. Back-end, driver: Drive must act as a normal disk drive, able to read and write, represent every file detail, but it must be 0 in physical size at all time, only reference must be kept. Represented Size must be “fake?? and that’s the tricky part: When write routine called, driver must collect file details such as Name, Path, Size, Date etc. etc., store those data in a structure array and visually represent it on a created drive while incoming buffer writes to some directory using CRT fwrite() function for instance (just place portions of buffer into the function. 4096 is big enough). When Read routine called pump the buffer using fread(…) function to the system using reference which earlier stored in array. Note: Drive must show it size and file name sizes, but all those must physicaly be fake! Optional part: 1) Make this drive dynamically expandable in size i.e. drive initially 0 (fake) bytes, when file of 500Mb copied avoid being alarmed by the system that there are no free space left, instead expand the drive to a size, in this case 500Mb, necessary to copy specific file. For every other file increase or decrease size accordingly. (Decrease size if file deleted) 2) Highjack common copy file dialog with a custom one, but only if any of our virtual drives is involved in operation. On a custom copy dialog show log for current operation. Completing optional part will get you some bonus. THIS IS A PILOT PROJECT. FINISHING THIS ONE WELL ON TIME WILL GET YOU MANY MORE PROJECTS (ALL DRIVERS RELATED). ONLY TOP-NOTCH DRIVER DEVELOPERS ONLY.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) 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 Seller 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.
3) 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 coder's Seller Legal Agreement).
## Platform
Windows NT, 2000, XP