Multiple Instance Windows Media Player

September 23, 2009

When Windows media player (WMP) is open, any attempt to open it again simply reactivates the existing WMP window. WMP is running as a single instance. It uses a relatively well known methods for this, creating a named mutex on startup and seeing if it already exists (by calling GetLastError and comparing with ERROR_ALREADY_EXISTS). WMP uses a mutex called "Microsoft_WMP_70_CheckForOtherInstanceMutex" and this name seems to be consistent between WMP versions (at least starting from Windows XP). Mark Russinovich showed this mutex in the latest addition of Windows Internals. Let’s run an instance of WMP and look at process...

A Thread’s Stack

September 16, 2009

When creating threads, we don’t usually think of its stack size. In the native world, the CreateThread function accepts a stack size (second argument) which we usually pass as 0. In the managed world, the Thread class exposes a pair of constructors expecting a stack size argument (which I was reminded by a comment). Why is this important? Creating threads has its costs. This is not only the added work the Windows scheduler must undertake or the data structures that must be allocated in the kernel to manage that thread (KTHREAD, ETHREAD, etc.). Even if the threads are...

Intel vPro Conference

September 14, 2009

I was present in the Intel vPro conference today. Although I didn’t stay through the entire event, I got the jist of it. Intel talked about what vPro is, and how it can be used in remote IT management. Although vPro is not really new (launched in 2006), it has gone through some enhancements and improvements with the new 32nm technology. What is vPro? It’s actually three components that interact with each other, regardless of the existence of an operating system on top of that: A CPU, chipset and an Intel network chip. Those three allow...
tags: , ,
no comments