Choosing error codes based on a really nice #define doesn’t necessarily lead...
You're running a program, you try to perform some operation, and out comes this error message: The device is not ready. Huh? What device? I wasn't doing anything with any device. What is this error...
View ArticleWhy can’t I close windows directly from the Alt+Tab interface in Windows Vista?
On an internal mailing list, somebody asked why the thumbnail-based Alt+Tab interface in Windows Vista doesn't show a little ︎ so you can close the window directly from the Alt+Tab list: I tend to end...
View ArticleThe plural of Nexus is Nexūs, in case you cared (which you almost certainly...
Nexus is a trusted traveler program operated jointly by the United States and Canada, and in casual conversation, the word Nexus is often used to refer to the Nexus card itself. One of my college...
View ArticleHow can dereferencing the first character of a string take longer when the...
Consider this program. char* malloc_random_string_length(int length) { char* s = (char*)malloc(length + 1); for (int i = 0; i < length; i++) { s[i] = '\0' + (rand() % 10); } s[length] = '\0';...
View ArticleHow is it that WriteProcessMemory succeeds in writing to read-only memory?
When you call WriteProcessMemory and tell it to write to memory that is read-only, the WriteProcessMemory succeeds. How can that be? Because WriteProcessMemory tries really hard to please you....
View ArticleXformer 10: The Atari 800 emulator has gotten a huge update
Emulator master Darek Mihocka hasn't been resting on his laurels. He and fellow Atari 8-bit developer Danny Miller have released Xformer 10, a massive revamp of their Xformer Atari 800 emulator. This...
View ArticleThe case of the buffer overflow vulnerability that was neither a buffer...
A security vulnerability report claimed to have found a buffer overrun. Their instructions were to perform a specific sequence of operations in Explorer while watching the output in the debugger:...
View ArticleWhen a customer asks for something unsupported, and they promise not to get...
A customer wanted to know how to do something extreme. Let's say for the sake of example that they wanted to disable clicking on things in Explorer. They understood that it might very well not be...
View ArticleWhy doesn’t my lock screen image change after I replace the image file?
A customer was using the group policy "Force a specific default lock screen and logon image" to set the lock screen image to their company's logo, pointing it to a path on the local computer. The...
View ArticleHow can I programmatically wait until the system has finished booting...
A customer wanted to know how they could have their program wait until the system has finished booting completely. Their program runs in the Startup group, but they found that there is so much...
View ArticleHow can I programmatically wait until the taskbar has finished booting...
A customer found that sometimes their program starts up too soon, and when it tried to create its taskbar notification icon, the call to Shell_NotifyIcon fails. The customer wanted to know whether...
View ArticleThe case of the mysterious LoadLibrary error message after signing in
A customer reported a Windows bug via Feedback Hub. It said that after signing in, they got this mysterious error message: Error × LoadLibrary failed with error 87: The parameter is incorrect. OK The...
View ArticleNot getting past the title: This is not the bug you’re looking for
A customer liaison reported that the customer could not rename folders in Explorer. After entering the new name, they got an error message Rename Folder × The file or folder does not exist. OK The...
View ArticleHow come Explorer reports higher disk space used on my volume than my third...
When you view the properties of a volume in Explorer, it reports (among other things) disk space used and disk space remaining. You find that you're running low on disk space, so you want to look for...
View ArticleIt rather involved being on the other side of this airtight hatchway: Hanging...
A security vulnerability report pointed out that a malicious file can cause the module loader to enter an infinite loop, thereby causing a denial of service on the process doing the loading. This was...
View ArticleIn 16-bit Windows, some per-process data structures were really per-data segment
In 16-bit Windows, one of the things you did at the start of your program (or more accurately, which the runtime did for you before calling your WinMain) was call the LocalInit function. This...
View ArticleOn the attempts to resurrect Space Cadet Pinball
Since the unfortunate demise of Space Cadet Pinball, there have been occasional efforts to resurrect the popular game. Space Cadet Pinball was not originally written by Microsoft, but was rather...
View ArticleRandom internal Windows terminology: IDW, Razzle, and their forgotten...
In the Windows team, you'll see the term IDW. You don't see it much in the outside world, though. Here's an ISO image called 6.0.5383.1.1.WindowsSDK_Vista_idw.DVD.Rel.img, so it does get out once in a...
View ArticleHow do I save the results of a file search in Explorer? Not the query itself,...
Say you perform a file/folder search in Explorer and you get the results. How do you save the results? That is, save the list of files that were found. This is not the same as saving the query, which...
View ArticleDon’t forget: std::pair does lexicographical ordering, so you don’t have to
A feature perhaps not as widely known as I thought is that the std::pair type performs lexicographical ordering, so you don't have to. // Suppose we record versions as std::pair<int, int> //...
View Article