I created a custom library to extract compressed files from a WIM file that did not require the Microsoft WIM library. Using the Microsoft WIM Library, to extract a single file is actually quite an elaborate process. I predicted this would greatly speed up the start up and running of my Windows 7 Boot Updater program since I use that file whenever the animation is set to "Default".
My current method (in Alpha v9) is to:
- Read the bootres.dll file into memory
- Find the WIM resource
- Save the WIM resource as a file on the disk
- Create a temporary folder
- Use the WIM library to mount the file to the folder
- Read the activity.bmp file into memory
- Unmount the file
- Delete the temporary folder and WIM file
- Cleanup all the memory I used in the process
That's a lot of work. On my computer it takes about 4 seconds while the program is starting up and 1-2 seconds later on in the program. Needless to say, that is a major bottleneck in my program.
So my idea to remedy this bottleneck was simple:
- Read the bootres.dll file into memory
- Find the WIM resource
- Parse the WIM resource in memory
- Decompress the data that represents activity.bmp
- Cleanup the single chunk of memory used
Much simpler! The new (not yet released) version of Windows 7 Boot Updater does all this in <100ms on the same machine! That is about a 98% reduction in time for this time intensive operation. Great improvement!
Hopefully the people stating that the program was taking 2 minutes to start up will be happy with this improvement (since much of the startup time was spent doing this, 2 minutes should be reduced to 3 seconds!).



Well, all the best for the faster boot loader, i hope we can get it sooner.. i enjoy your work! thanks a lot.