How does one skip “Windows did not shut down successfully” in Win7-64?

Migrating an app from an expensive and unreliable dedicated embedded x86 box running WinXP-embedded to COTS hardware (Dell E6410 laptop) running normal Win7-64. At this time, it's not feasible to deploy using Windows 7 embedded.

The problem is, that the system is still sort of "embedded". The power could shut off at virtually any time without prior warning. We've stripped the OS down and removed the battery capability so that it will power down as desired.

The app never writes to the disk, so it's not like we're going to corrupt anything terribly. The system is essentially idle after our app is up and running (with the exception of some computation, graphics, and TCP/IP and serial communications) so the OS enters a pretty stable state rather quickly.

After a power-loss however, it rightly complains that Windows did not shut down successfully and presents the user with the Windows Error Recovery text screen. If left alone, it does eventually move on booting just fine, but we'd like to skip that step if possible.

WinXP-embedded is designed to do this automatically, so I know it's possible. I've looked at the Kernel Switches but I didn't see anything documented for "Skip Windows Error Recovery".

I've also read extensively on the startup process: http://jdebp.eu./FGA/windows-nt-6-boot-process.html

I know I can disable the auto chkdsk in the registry, but that's not the same thing either.

So, how do I streamline the boot process to not hassle the user about a situation that will be the regular normal situation?


There is some indication that setting the boot status policy setting that is passed to WINLOAD works even on non-embedded Windows NT 6. The command (changing {current} if appropriate, of course) would be

bcdedit /set {current} bootstatuspolicy ignoreallfailures
However I've not tried it myself.

IgnoreShutdownFailures should be adequate.

http://msdn.microsoft.com/en-us/library/ff794974(v=winembedded.60).aspx