Browse by Tags

  • Blog Post: Why is there a BSTR cache anyway?

    The Sys­Alloc­String function uses a cache of BSTR s which can mess up your performance tracing . There is a switch for disabling it for debugging purposes , but why does the cache exist at all ? The BSTR cache is a historical artifact. When BSTR s were originally introduced, performance...
  • Blog Post: My pants are fancy!

    During the development of Windows, the User Research team tried out an early build of some proposed changes on volunteers from the general community . During one of the tests, they invited the volunteer to just play around with a particular component, to explore it the way they would at home. ...
  • Blog Post: The Softsel Hot List for the week of December 22, 1986

    Back in the days before Internet-based software distribution, heck back even before the Internet existed in a form resembling what it is today, one of the most important ways of keeping track of the consumer computing industry was to subscribe to the Softsel Hot List , a weekly poster of the top sellers...
  • Blog Post: How did protected-mode 16-bit Windows fix up jumps to functions that got discarded?

    Commenter Neil presumes that Windows 286 and later simply fixed up the movable entry table with jmp selector:offset instructions once and for all . It could have, but it went one step further. Recall that the point of the movable entry table is to provide a fixed location that always refers...
  • Blog Post: If 16-bit Windows had a single input queue, how did you debug applications on it?

    After learning about the bad things that happened if you synchronized your application's input queue with its debugger, commenter kme wonders how debugging worked in 16-bit Windows, since 16-bit Windows didn't have asynchronous input ? In 16-bit Windows, all applications shared the same input queue...
  • Blog Post: Why is the FAT driver called FASTFAT? Why would anybody ever write SLOWFAT?

    Anon is interested in why the FAT driver is called FASTFAT.SYS . "Was there an earlier slower FAT driver? What could you possibly get so wrong with a FAT implementation that it needed to be chucked out?" The old FAT driver probably had a boring name like, um, FAT.SYS. At some point, somebody decided...
  • Blog Post: Why is there a 64KB no-man's land near the end of the user-mode address space?

    We learned some time ago that there is a 64KB no-man's land near the 2GB boundary to accommodate a quirk of the Alpha AXP processor architecture. But that's not the only reason why it's there. The no-man's land near the 2 GB boundary is useful even on x86 processors because it simplifies parameter...
  • Blog Post: Why is 0x00400000 the default base address for an executable?

    The default base address for a DLL is 0x10000000 , but the default base address for an EXE is 0x00400000. Why that particular value for EXEs? What's so special about 4 megabytes It has to do with the amount of address space mapped by a single page directory entry on an x86 and a design decision...
  • Blog Post: What is the story of the mysterious DS_RECURSE dialog style?

    There are a few references to the DS_ RECURSE dialog style scattered throughout MSDN, and they are all of the form "Don't use it." But if you look in your copy of winuser.h , there is no sign of DS_ RECURSE anywhere. This obviously makes it trivial to avoid using it because you couldn't use it even...
  • Blog Post: What did Windows 3.1 do when you hit Ctrl+Alt+Del?

    This is the end of Ctrl + Alt + Del week, a week that sort of happened around me and I had to catch up with. The Windows 3.1 virtual machine manager had a clever solution for avoiding deadlocks: There was only one synchronization object in the entire kernel. It was called "the critical section"...
  • Blog Post: The history of Win32 critical sections so far

    The CRITICAL_ SECTION structure has gone through a lot of changes since its introduction back oh so many decades ago. The amazing thing is that as long as you stick to the documented API, your code is completely unaffected. Initially, the critical section object had an owner field to keep track of...
  • Blog Post: I wrote the original blue screen of death, sort of

    We pick up the story with Windows 95. As I noted, the blue Ctrl + Alt + Del dialog was introduced in Windows 3.1, and in Windows 95; it was already gone. In Windows 95, hitting Ctrl + Alt + Del called up a dialog box that looked something like this: Close Program × ...
  • Blog Post: Steve Ballmer did not write the text for the blue screen of death

    Somehow, it ended up widely reported that Steve Ballmer wrote the blue screen of death . And all of those articles cited my article titled " Who wrote the text for the Ctrl+Alt+Del dialog in Windows 3.1 ?" Somehow, everybody decided to ignore that I wrote "Ctrl+Alt...
  • Blog Post: Who wrote the text for the Ctrl+Alt+Del dialog in Windows 3.1?

    One of the differences between standard-mode Windows and enhanced-mode Windows was what happened when you hit Ctrl + Alt + Del . Since 16-bit Windows applications are co-operatively multi-tasked, it is easy to determine whether the system is responding, and if not, it is also easy to identify the...
  • Blog Post: It's time we face reality, my friends: We're not rocket scientists

    During the development of Windows 95, it was common for team members to pay visits to other teams to touch base and let them know what's been happening on the Windows 95 side of the project. It was during one of these informal visits that the one of my colleagues reported that he saw that one...
  • Blog Post: My friend and his buddy invented the online shopping cart back in 1994

    Back in 1994 or so, my friend helped out his buddy who worked as the IT department for a local Seattle company known as Sub Pop Records . Here's what their Web site looked like back then . Oh, and in case you were wondering, when I said that his buddy worked as the IT department, I mean that the...
  • Blog Post: Did the Windows 95 interface have a code name?

    Commenter kinokijuf wonders whether the Windows 95 interface had a code name . Nope. We called it "the new shell" while it was under preliminary development, and when it got enabled in the builds, we just called it "the shell." (Explorer originally was named Cabinet, unrelated to the...
  • Blog Post: The alternate story of the time one of my colleagues debugged a line-of-business application for a package delivery service

    Some people objected to the length, the structure, the metaphors , the speculation, and fabrication . So let's say they were my editors. Here's what the article might have looked like, had I taken their recommendations. (Some recommendations were to text that was also recommended cut. I applied the...
  • Blog Post: The time one of my colleagues debugged a line-of-business application for a package delivery service

    Back in the days of Windows 95 development, one of my colleagues debugged a line-of-business application for a major delivery service. This was a program that the company gave to its top-tier high-volume customers, so that they could place and track their orders directly. And by directly , I mean that...
  • Blog Post: Why does Outlook map Ctrl+F to Forward instead of Find, like all right-thinking programs?

    It's a widespread convention that the Ctrl + F keyboard shortcut initiates a Find operation. Word does it, Excel does it, Wordpad does it, Notepad does it, Internet Explorer does it. But Outlook doesn't. Why doesn't Outlook get with the program? Rewind to 1995. The mail team was hard at work...
  • Blog Post: For Honor, For Excellence, For Pizza

    Hacker News member citizenlow recalls the time I went over after hours to help out the Money team debug a nasty kernel issue . They were running into mysterious crashes during their stress testing and asked for my help in debugging it. I helped out other teams quite a bit, like writing a new...
  • Blog Post: What happened to the Shut Down menu in classic Task Manager?

    The great thing about open comments is that anybody can use them to introduce their favorite gripe as long as it shares at least four letters of the alphabet in common with the putative topic of the base article. xpclient "asks" why the Shut Down menu was removed from Task Manager . I put the...
  • Blog Post: 10 is the new 6

    While it may no longer be true that everything at Microsoft is built using various flavors of Visual C++ 5.0, 6.0, and 7.0 , there is still a kernel of truth in it: A lot of customers are still using Visual C++ 6.0. That's why the unofficial slogan for Visual C++ 2010 was 10 is the new 6 . Everybody...
  • Blog Post: Who would ever write a multi-threaded GUI program?

    During the development of Windows 95, the user interface team discovered that a component provided by another team didn't work well under multi-threaded conditions. It was documented that the Initialize function had to be the first call made by a thread into the component. The user interface team...
  • Blog Post: The code names for various subprojects within Windows 95

    Most people know that Windows 95 was code-named Chicago. The subprojects of Windows 95 also had their code names, in part because code names are cool, and in part because these projects were already under way by the time somebody decided to combine them into one giant project. Component Code Name...
Page 1 of 20 (500 items) 12345»