Archive for October, 2006

Vista and Windows Error Reporting

Wednesday, October 25th, 2006

Wow, have we been busy. This week has been absolutely full of interesting ups and downs, from a software compatibility perspective. We’ve gotten through a lot of issues so far, and have make some nice discoveries along the way.

We had the good fortune of getting to talk with the Windows Error Reporting PM, who helped us solve a problem we ran into with how our software generates crash dumps in our ActiveX-based product. It turns out that the WER API is greatly expanded and can now do all of the things we need, so we can abandon our in-house solution on Vista+ and just use Microsoft’s. WER can be configured to send particular memory ranges, attach log files, and more.

Furthermore, the rumor is that they may even automate !analyze runs on reported crashes, using uploaded stripped symbols. I made the suggestion that they should allow ISVs to provide !analyze plugins (which Ken promises to document someday if Microsoft doesn’t get to it first). That would help with bucketing and initial auto-analysis even more. We’ll see what happens, but this is a great improvement over the pre-Vista APIs.

Worth checking out, if you haven’t yet.

Vista kd cheat sheet

Wednesday, October 25th, 2006

I am annoyingly scatterbrained and have had to look this up repeatedly this week. Here’s hoping I can save someone else the trouble:

c:\\> bcdedit /debug on
c:\\> bcdedit /dbgsettings serial debugport:1 baudrate:115200

Then reboot and enjoy.

Commenting update

Tuesday, October 24th, 2006

I’ve changed my comment policy to no longer require registration or moderation. I’ve been meaning to do this for some time now.

BTW, this is only even possible because of the amazingly good service provided by Akismet. Comment spam was the original reason I enacted that policy, and Akismet has kept me spam-free for months now. Highly recommended.

NDIS6 stack usage

Tuesday, October 24th, 2006

While working with one of our drivers, Ken and I ran across an interesting stack fault that I’ve never seen or heard of on a pre-Vista OS. It turns out that the Vista network stack uses much more stack than previous OSes. Ken has all of the details.

My advice: if you have any sort of NDIS driver that goes above a basic miniport, you should be testing with Vista now. Install an IM driver or two, while you’re at it. NDIS-WDM drivers could have issues here as well.

Happy testing!

Microsoft Vista compatibility lab, day 1

Tuesday, October 24th, 2006

The first day of the Vista compatibility lab was… long. We got to the campus at about 9:00, and didn’t leave until 11:00 PM. This is the second time I’ve done something like this at Microsoft (the first was at Driver DevCon 2003, getting our network drivers running on NDIS6). It’s always a productive time – plenty of food, water, experts, books, and computers around so that there really are no impediments to getting real work done.

Vista is going to be an interesting challenge. The UAC stuff changed a lot in the last six months, and our software doesn’t quite interact perfectly with it yet. On the upside, the things that I thought were working – the drivers, for example – are indeed working. Other things are mostly clean-up work for code that was probably in need of clean-up anyway. There haven’t been many (any?) Vista-only changes that would break on downlevel OSes, which reinforces my claim that, if you are careful and code to the API in the documented way, you’re way less likely to break compatibility in the future.

Some of the experiences haven’t been quite so great, though; Ken found a seemingly very severe problem with IpHlpApi route addition, for example, and we’re seeing slightly different behavior from some other APIs in IpHlpApi as well – I fought with IpReleaseAddress for a while when it started returning a new (undocumented, of course) return code

And, of course, there are the major breaking changes – for example, GINA DLLs are gone, which may not mean much to 99% of software vendors out there, but if you happen to need a GINA replacement, you have to re-write that code completely and produce a credential provider instead.

In the annoyances category, there are things like icons looking bad (the dark grey task bar is hell on colorful icons) and high-res support in various places. And, ideally, we want to fully embrace the UAC system rather than fighting with it, which raises some interesting product design questions.

We made way more progress than I thought we’d make on day 1, and we still have most of the week ahead of us, so I’m optimistic that we can actually finish what we came here for. So far, so good, at any rate.

Windows Defender released

Monday, October 23rd, 2006

Jeff Centimano, a WSUS/Exchange MVP, points out that Windows Defender has exited beta. Beta 2 is due to expire in ~2 months, so upgrade fast.

I’m glad they decided to go gold with this; I’ve been using it for months and it certainly seems to be better than any of the other anti-spyware products out there.

OK, last beef for the weekend, promise…

Sunday, October 22nd, 2006

We’ve had a lot to complain about this weekend, which isn’t normally my style, but since I’m in that kind of mood, I may as well add one more item to the list.

C:\\Users\\dispensa>telnet
'telnet' is not recognized as an internal or external command,
operable program or batch file.

No telnet?! This Vista thing is gonna take some getting used to…

UPDATE: An anonymous commenter points out that telnet.exe is simply not installed by default any more, but you can add it by going through the control panel. I guess this is better than nothing, but it was certainly annoying and the solution was non-obvious.

Welcome to Bellevue

Sunday, October 22nd, 2006

Ken and I have arrived in Seattle and are staying at the Paragon Hotel in Bellevue. Not bad, except it’s about 5 feet from the highway. They even offer free wi-fi service for the entire hotel. But, there’s one problem.

When you connect to the network and open your browser, it goes right to their portal page and asks you to create a free account. You get to pick a username and a password. When you’re done registering, you get a friendly prompt:

Please check your e-mail to get a message with your password from our administrator.

Wow. Seriously. I’m at a hotel. I don’t have Internet access with which to check my e-mail, or else I wouldn’t need theirs.

So, I’m now borrowing Ken’s Verizon EVDO service to get my password. POOR DESIGN.

Incidentally, if these brainiacs e-mail me the password that I just typed in, I’m going to go nuts. That is (was?) a secure password! Sigh…

UPDATE: They didn’t mail the password, just a link to click on.

Going to Redmond

Saturday, October 21st, 2006

Ken and I are going to be in Redmond all week next week working on putting the finishing touches on Vista support for our products. It looks like we’ll be in Building 20 most of the week. My guess is that it’s going to be a very full week!

TDI is on the path to deprecation

Friday, October 20th, 2006

Mike Flasko posted to the Windows Core Networking blog with an entry discussing Winsock Kernel. He points out that it is the successor to TDI, and goes on to say that TDI in Vista is an emulation layer built on top of WSK:

On Windows Vista & Windows Server Longhorn, TDI is still supported for compatibility reasons; however, it has been implemented using a translation layer and thus its performance is sub-optimal resulting in performance degradation for TDI clients. For this reason, as well as others (TDI on path to deprecation, etc — see resource links below), drivers should opt to use WSK whenever possible.

He’s conducting a survey on the blog about WSK adoption. If you have a TDI driver, it would probably benefit you to get involved.

This has that standard everything before Vista is legacy feel that a lot of us have complained about before; I for one will have to continue supporting TDI for years, and I suspect I’m not alone. We are still shipping code supporting Win98 (although thankfully I’m out of the business of actually writing new Win9x code, but only recently).

Interesting stuff; worth a read.