Changing the World for Better and for Worse

Who doesn’t love this (unsourced) quote from Margaret Mead: “Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has.” It sounds so right, certainly something that we desire to be true, or is it?

Read more

RegEnumKeyEx and RegDeleteKeyEx, Or: Why reading all the documentation for a function is a good idea

RegEnumKeyEx seems simple enough. Open the parent key, call RegEnumKeyEx specifying dwIndex=0, then increment dwIndex and call RegEnumKeyEx until you get ERROR_NO_MORE_ITEMS. There are, however, two caveats in the documentation that are easy to overlook.

Read more


What is MSPDBSRV.exe, and why is it (not) running?

When you build a binary with Microsoft Visual Studio .NET 2003 and select to generate a program database, a MSPDBSRV.exe process is spawned. MSPDBSRV generates the PDB (and copies it to the output folder?), then stays running until it is explicitly terminated or the system shuts down. In most cases, you can completely ignore MSPDBSRV.exe and MSPDB80.dll and MSPDBCORE.dll that support it.

Read more