Until the last couple of weeks, my production Windows 7 system has been a model of reliability and stability, with my first-ever two week period with staight 10.0s in Reliability Monitor on that machine. Then, all of a sudden, my system started blue-screening occasionally when I would insert a UFD into one of the case-front USB ports.
A little investigation with BlueScreenView showed me that the culprint was a driver named tdrpm251.sys, which turns out to be part of the “try and decide” backup/restore capability within Acronis True Image Home versions, including both 2009 and 2010. Ironically, even though I elected not to use this capability when installing the program, the software installed this driver anyway. And because it can treat UFDs as potential backup or restore targets or sources, respectively, the driver shims itself into the runtime environment whenever a removable storage media device is plugged into the system.
According to what I found on the Acronis Website, an issue with SnapAPI.dll is what’s behind the problem. Although I saw lots of postings from unhappy users on the site in the period from late summer 2009 through early January 2010, the company has released new versions of the products that fix the problem so that BSODs no longer occur.
That’s all well and good, but if I don’t intend to use a service I don’t see why its supporting drivers, dlls, and so forth, should be loaded into my runtime environment. So, even though I grabbed and installed the latest version of the True Image Home software anyway, I also found and implemented a set of registry hacks to remove tdrpm251.sys from my Windows 7 runtime environment. The procedure for doing this is to search on the string “tdrpm251.sys” in the registry (using the F3 key works well for this purpose), and then to remove ImagePath, UpperFilters, and LowerFilters values that reference this item from the corresponding keys. Simply setting those items to no value (for ImagePath) or removing the tdrpm251.sys references from UpperFilters and LowerFilters value settings did the trick quite nicely.
No more BSODs when I insert a UFD into my system, and no more “Try and Decide” drivers and related gunk in my runtime environment when I don’t really want to run them anyway. Kind of makes you wonder why software and OS vendors don’t always match user selections or preferences to the way their software installs and runs, don’t it?