Beginning again – and hiring

Well, fun times.  I’ve taken a position on the Virtual Machine Manager team.  I’ll be one of the lead developers working on the next version.  It’s an exciting space, with a lot of players and a lot of new technologies. I’m also hiring.  So if you’re interested we have a number of interesting positions UI…

0

The Shell Extensions Approved list is *not* a complete list of shell extensions on the system

I’ve noticed that a number of different programs just look at the Approved list of shell extensions [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] and figure that all shell extensions will be in that list.  It’s not true, because lots of folks don’t really care about that policy.  I don’t know how often it’s used – it doesn’t really make…

0

Supplemental Registrations (aka. Context Menu Handers (etc) – where are they loaded from…)

I’ve been thinking about the registration problem where you want to add a context menu (much of this applies to static verbs as well) to a file type (we’ll say .ogg).  You don’t want the default verb, you just want to add some verbs.  Because you don’t want the default, you shouldn’t put your progid…

7

Installing shell extensions – please complain here

So… I’ve been looking more closely at Wix and I think I’m going to build some custom actions to do a really good job installing shell extensions.  Which ones do you find most problematic?  I realize this is a bit of a change of pace for the blog, so I’ll probably hit a few other…

9

Summer Fun, Full House

(Normally this kind of post is reserved for my other blog where I mostly blog about non-tech – so don’t worry, I won’t be boring you with stories of how incrediby smart and cute my little boys are (obviously my wife’s DNA is doing overtime).) We’ve been enjoying our summer, with lots of friends around and…

2

The best way to make UAC shut up for a while

Let’s say you want to install a few things and want UAC to stop bugging you while you install them.  Should you turn off UAC and install the apps?  Since that disables UAC’s virtualization, it can destabilize things that depend on data written to those virtual locations.  Here’s an alternative that keeps all the virtualization…

2

How to stop WinDbg from going crazy and loading all the symbols

One of my favorite features of WinDbg is that it doesn’t load all the symbols up-front.  That’s a huge part of what makes it so much faster than Visual Studio.  However, every once in a while you can do things that cause WinDbg to go crazy and load all the symbols in a desperate attempt…

0

Breaking when the instruction pointer leaves the module

The problem is to skip out of a kernel driver that we don’t have symbols for – what’s the best way to break on calls out of that driver. If you used pc (step until the next call instruction), you would hit calls that are inside that driver. Here’s another approach (using an example from…

0

Finding where a bad HRESULT is returned

I’ve looked at this a couple times, but here’s another way to break when the error code you’re looking at is being returned. .while(@eax != 0xc0000005) { t ; reax } If you want to avoid the output noise, you can do something like this: .while(@eax != 0xc0000005) { t ; r @eip = @eip};…

0

How to only break on a jump when it will be taken

Here’s a question that came up a work a little bit back – thought I would share the result around. There is a coding pattern (that I don’t ever really use so I may be messing it up) that works like this: T1 res1; T2 res2; T3 res3; res1 = GetRes1(); if (!res1) goto Cleanup;…

0