Debugging a Service on Windows Vista

I recently picked up John Robbins’ excellent Debugging Microsoft .NET 2.0 Applications and was flipping through it to discover just what new things I would learn and/or remind myself of. His brilliant description of setting up a local symbol server could not have been more well-timed – I spoke with a customer literally the next day who…


The UAC Compatibility Evaluator and Elevation on Windows Vista

The release candidate of the Application Compatibility Toolkit is here, and it’s good stuff. I’ve had to resort to sniffing around with a debugger to find many issues with this one, and it’s still improving for the final release! I am particularly impressed by what the team has put together for compatibility evaluators. For those…


A Desktop of Your Own

I have run into a few scenarios where people want to be able to block access to Windows Explorer so that they can do something such as update the system in a machine that is otherwise publicly facing. One possibility is to create a desktop all your own. The underlying architecture of Windows allows for…


How Old Is Your Type Library?

I ran into an interesting problem this week trying to get a legacy application running on Windows Vista. If you ran the installer, it would fail, claiming that it was unable to register a required component. So, I grabbed the ocx it was trying to install to have a look. Taking a peek by attaching…


Why does my software keep prompting me for a reboot on Windows Vista?

I ran into an interesting situation with a customer’s application the other day. You would try to install the application, and it would prompt for a reboot. OK, so it couldn’t grab that file handle yet, I’ll go ahead and let it. After a reboot, the installation would continue, and then prompt for a reboot…


Deferred Custom Actions and Permissions on Windows Vista with UAC Enabled

The first major obstacle to testing an application for compatibility on Windows Vista is to actually get that software installed, and there are still some challenges remaining in achieving this. One of the issues that has popped up is with deferred custom actions. When you specify the type of a custom action in the MSI…


Viewing and Uninstalling Devices Not Currently Attached to Your Computer

I ran into this issue working with a hardware manufacturer working on updating their drivers for use on Windows Vista. You may already know that you can uninstall a device directly within the Device Manager. You can simply right click and select uninstall. The drivers are then removed from the system. This customer obviously wanted…


Modifying the Mandatory Integrity Level for a Securable Object in Windows Vista

Windows has included securable objects for quite some time now, but Windows Vista adds a new concept: Mandatory Integrity Control. You can read a detailed description here; in essence, in addition to requiring a particular SID to access a secured resource, you must be running with a token containing the required integrity level. When you…


Understanding Painting Behavior Differences in Windows Vista – Desktop Composition

One new feature in Windows Vista that makes a number of visual effects possible is the Desktop Window Manager. The DWM works through composition. Rather than rendering directly to the screen, applications render to their own off-screen bitmap. The DWM then takes all of these bitmaps and composites them to render to the actual screen….


How to Determine if a User is a Member of the Administrators Group with UAC Enabled on Windows Vista

User Account Control (UAC) on Windows Vista changes the paradigm of being an administrator on a Microsoft Windows operating system. Rather than wielding full administrative privileges all of the time, the token is “split” and there are two of them. If you run an application normally, it is given the token that has fewer privileges…