The subject is really cute so I will explain it a little bit, and maybe in future make some session about it!
It it about Application Recovery and Restart Manager functionality on Windows Vista.
Description of a problem:
Windows break apart or Windows Update is under way. Application which you made is still working during that time and, probably, doing something, processing. What is happening with the application? What is happening with the data in the flow? What’s with the database, transaction, file, in-memory vars? We’ve got ‘Houston”!
Windows Vista gives us something regarding that, and that is so called ‘Application Recovery’ mechanism (through kernel32.dll API), and even more with Restart Manager (rstrtmgr.dll). What is all about? Application registers itself as a “RM-aware” app which react on ‘pinging’ of already mentioned RM, and react in a way that it closes all open files, transactions, and so on, and prepares itself for inevitable end. Even you can force the Vista to cancel hers restart. Alltogether, ‘sounds promising’.
I have made some little code snippet on that, and I will present it on the way.