Holy cow, I wrote a book!
A customer had a complex process for setting up their computers,
and the process recorded information in the registry so that applications
could record their state across reboots.
They then noticed that if they yanked the power cord instead of
going through the normal Shutdown process,
that the registry keys were not reliably updated.
They were wondering if there was a function they can call to force
the registry to be flushed to disk even if the system doesn't
go through a normal shutdown.
Patient: "Doctor, it hurts when I do this."
Doctor: "Don't do that."
You could call the RegFlushKey function each
time you update the registry key,
but you'll be
flushing your performance down the drain.
And calling RegFlushKey doesn't solve the
"unexpected power loss" problem entirely.
If power is lost
while the key is being flushed,
then you can end up with internal registry corruption.
Not to mention that cutting power will corrupt the
hard drive due to unflushed data both in the operating system disk cache
as well as the
hard drive's on-board disk cache.
It's like somebody who says,
"We never save our documents;
we just let Excel AutoSave find the document each time we startup Excel.
We found that if we yank the power cord to turn off the computer,
sometimes when we boot the computer back up,
the Excel document we were working on doesn't show up in the AutoSave
How can we force Excel to AutoSave our document
before we yank the power cord?"
Dude, your problem
isn't a configuration problem with AutoSave.
Your problem is that
you're yanking the power cord as part of your business process.
The customer reported back that, thankfully, killing power was
not part of their normal procedures.
Rather, the issue with unexpected power loss was something they
discovered by accident.
Sigh of relief.