Quantcast
Channel: The Old New Thing
Browsing all 3085 articles
Browse latest View live

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 Article


Image may be NSFW.
Clik here to view.

Why 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 Article


The 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 Article

How 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 Article

How is it that WriteProcessMemory succeeds in writing to read-only memory?

When you call Write­Process­Memory and tell it to write to memory that is read-only, the Write­Process­Memory succeeds. How can that be? Because Write­Process­Memory tries really hard to please you....

View Article


Xformer 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 Article

The 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 Article

When 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 Article


Why 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 Article


How 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 Article

How 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_Notify­Icon fails. The customer wanted to know whether...

View Article

Image may be NSFW.
Clik here to view.

The 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 Article

Not 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 Article


How 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 Article

It 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 Article


In 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 Local­Init function. This...

View Article

On 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 Article


Random 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 Article

Image may be NSFW.
Clik here to view.

How 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 Article

Don’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
Browsing all 3085 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>