Today I was working on an OEM Ready application. It is basically a subset of the Certified for Windows Vista program. Application Verifier is used to test reliability (heap overruns, handle usage, etc.). The test steps outline that you need to set up an interactive debugger. You will pass the test if you never see your app break in the debugger.

I had Application Verifier monitor services as well. One of the services seemed to be hanging. When something is not functioning with services in Vista or Windows Server 2008, first thing you need to think about is session 0 isolation. So I opened taskmgr, clicked "Show Processes for All Users" in the process tab and looked for Windbg. Yes it was there. (If you select Session and PID from the options column, you can even see that WinDbg is running in Session 0). But why did I not get my Session 0 notification?

There is a service called UI0Detect (for Interactive Service Detection) and it is set to start manually. As soon as I started the service, the Interactive Service notification popped up and now I could debug the AppVerifier break in.