Virtual virtual debugging or “How I got an ID10T error from Parallels”
Yesterday I was minding my own business when a bug slipped into my queue. We’ll call him, oh I don’t know, Defect #327. (I’ll give you one guess where I got that name from.) It goes something like this:
Defect #327: Windows NT4: Ordinal not found error: “The ordinal 301 could not be located in the dynamic link library WLDAP32.dll”
Apparently this was discovered using a Virtual PC image but everything had worked fine on the test machines that were running NT4 natively. I figured that the Virtual PC image hadn’t been patched up to the right level, but in order to know for sure I had to run it and see. Here is where the craziness begins.
I have two computers at work. One is the wickedly good Macbook Pro that 90% of all of my work is done on. The other is an also wickedly good, but not nearly as cool, Dell GX260 workstation running Windows 2003. Figuring that Virtual PC would run better on Windows than the Intel Mac I wheeled over to the Dell and set about installing it.
I browsed to the network shares, click click open the directory, setup.exe that looks right, click some more, installer starts here we go:
“You are not running a supported operating system. Microsoft Virtual PC 2004 is only supported on Windows 2000 Professional and Windows XP Professional.”
D’oh.
All right, well I couldn’t put XP on that box for other testing reasons, so I figured I would just do a fresh install of NT in Parallels on my Mac. So I start up Parallels, dig around the network room for the NT4 CD, setup the VM, launch the installer:

Shaking a first at the screen I mutter the words of Homer J. Simpson, “Oh cruel fate, why do you mock me?” I mean, how hard could it have been for the NT4 team to anticipate my needs? Shouldn’t they have thought that I would need to do an install on a virtual machine product that hadn’t been invented yet (Parallels), on an OS that hadn’t been invented yet (Mac OS X), on a chip platform that Macs were a decade from running on (Intel)? Hmm, I guess when I put it that way…
Being 0 for 2 in my attempts it was now time to try the crazy scenario, run NT4 in Virtual PC on XP Pro that was running in Parallels on Mac OS X. A virtual virtual OS. Admittedly I had very little hope that this would actually work, but what the hell, I had come this far.
After booting up Parallels with XP and successfully installing Virtual PC it was the moment of truth:

Come on, big bucks, no whammies…

Kablooey! There’s the surprise of the century. Parallels will crap out if you try to start a Virtual PC virtual machine inside one its virtual machines. Along this same line, other things I have recently discovered is that water is wet and things on a stove tend to be hot to the touch.
Having screwed around enough I finally buckled and installed Virtual PC on one of the QA machines in the lab. Turns out I was right, the latest patch hadn’t been installed to the disk image so that’s why we were seeing the error. And it only took me three real machines, two and a half virtual machines, and one reference to an old game show to figure it out.

