The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
If you don’t want to try to repair the data, then don’t, but you should at least know that you have corrupted data
When I wrote about understanding the consequences of , I mentioned that one of the possible responses was to try to repair the damage, but some people are suspicious of this approach. Mind you, I'm suspicious of it, too. Repairing corruption is hard. You have to anticipate the possibility, create enough of a trail to be able to reconstruct the original data once the corruption is recognized, and then be able to restore the data to some semblance of consistency. I didn't say that this was mandatory; I didn't even say that it was recommended. I just listed it as one of the options, an option for the over-achiev...
Man, this housing downturn is hitting everyone
Consider this house on Mercer Island, which happens to be for sale. Asking price: A shade under $35 million. Five bedrooms, nine bathrooms, over 22 thousand square feet, two swimming pools, space to park a 140-foot yacht, and an interior so opulent you'd be afraid to touch anything. If you were even allowed anywhere near it. But the sagging economy has taken its toll on this house. They were originally asking $40 million. Best line from the article: "But we decided we might want to simplify a little, and move to Medina." For those who aren't familiar with Seattle-area geography, Medina is the quiet li...
Sucking the trap frame out of a kernel mode stack trace
If you are placed in the unfortunate position of having to debug a user-mode crash from kernel mode, one of the first things you have to do is get back to the exception on the user-mode side so you can see what happened. We saw earlier how you can get symbols for operating system binaries to help you suck the exception pointers out of a user-mode stack trace; here's a corresponding tip for the kernel-mode side. Your stack trace will look something like this: ChildEBP RetAddr Args to Child 8fc86660 818844e3 83811e00 83811d78 83811e30 nt!KiSwapContext+0x26 8fc8669c 8184abd2 83811d78 00000000 83811d78 nt!KiSw...
Strange things happen when you let people choose their own name, part 3
Although Microsoft employees are internally assigned a cryptic email address by the IT department, the email address used for mail to and from the outside world is open to customization, to some degree. For example, consider an imaginary employee named Christopher Columbus. Christopher might be assigned an email address like or or or possibly the Slavic-sounding . But Christopher has the option of choosing the external email address: When he sends a message to somebody outside Microsoft, the "From" line will show the external address, and if somebody from outside Microsoft sends mail to the external addres...
Strange things happen when you let people choose their own name, part 2
I described last time how most parts of your entry in the company address book are closely regulated, but the differentiator is left to the honor system. Here are two and a half more examples of people who decided to do something funny with their bonus text. A message was sent to a mailing list I happen to be a member of, and the sender's name was listed as "John Doe (O|||||O)". I told John that I though the (O|||||O) was hilarious, and he wrote back, "Also, call my phone and listen to how the autobot says my name." I did, of course. The text to speech synthesizer pronounced his name as John Doe overtical b...
Strange things happen when you let people choose their own name, part 1
One of the things that happens when you arrive at Microsoft is you are assigned an email account, and the name of that account becomes your identity. The IT department has a set of rules which they follow to arrive at your account name, but you can petition for reconsideration if the result of their algorithm produces something you don't like. You have more flexibility with your display name. For example, you may commonly go by a less formal version of your legal name, or you may go by your middle name or your initials or you may choose to adopt an English name as your professional name. But even though y...
Off-Roading The Old New Thing
My friend ::Wendy:: decided that going off topic in the comments to this Web site was so much fun, she didn't want to let the Ground Rules stop her. So she created the Off-Roading The Old New Thing group, where people who get a thrill out of going off topic can do so without running afoul of this Web site's Ground Rules. Have fun, everybody!
Why can’t you thunk between 32-bit and 64-bit Windows?
It was possible to use generic thunks in 16-bit code to allow it to call into 32-bit code. Why can't we do the same thing to allow 32-bit code to call 64-bit code? It's the address space. Both 16-bit and 32-bit Windows lived in a 32-bit linear address space. The terms 16 and 32 refer to the size of the offset relative to the selector. Okay, I suspect most people haven't had to deal with selectors (and that's probably a good thing). In 16-bit Windows, addresses were specified in the form of a selector (often mistakenly called a "segment") and an offset. For example, a typical address might be . This mean...
The cult of PowerPoint, episode 2
PowerPoint is a fine presentation tool, but some people have elevated it to the level of a cult. The most recent member of the PowerPoint cult was a customer who decided to use PowerPoint in an email message. No, I don't mean that the customer attached a bad PowerPoint presentation to the email. I mean that the customer's email was itself a three-slide PowerPoint presentation. Well, not quite. What they actually did was create a three-slide presentation, then take screenshots of each slide and embed them in the email. Well, not quite. The screenshots were shrunk to save size. Each page from the Po...