< Back to OSY 1.0 thread list

OSY 1.0 Thread Viewer

Thread #: 1156

XP and 2000 drivers: why are they different?

Socrates

Tue Nov 13 03:22:03 2001

Seriously: Now that I have your attention:
Why are the drivers different?

I thought XP was supposed to be NT based?

Socrates

Imitation Gruel

Tue Nov 13 03:24:28 2001

XP =  ~NT5.1; the drivers should not be much different from Win2K.

Perhaps something to do with the compatibility modes? I don't know, I'm not a programmer.

DuffMan

Tue Nov 13 10:03:20 2001

Most of my 2000 drivers i have gotten to work, but a few others have not.
Socrates

Tue Nov 13 10:23:05 2001

I thought XP was supposed to be the great combining os.

I'm really hoping Paul, or Peter will stop by and give us a real explanation for the differences.

I'm reluctant to upgrade, while so many people are having driver problems, when I just got mine sorted out.

By the way, my ATTO raid card won't work with XP, or dual processor Tiger boards.  I feel like one of Peter's boy toys right now.

I bought it for forward compatibility, and it won't work with the only server quality boards I want it to work with.

Socrates

Feeling like a boy toy...

HitScan

Tue Nov 13 13:03:50 2001

I'm thinking that if a driver uses some specific kernel calls that exist in 2K but not XP, or more likely, in XP but not 2K, then they wouldn't work back and forth. Since your average programmer is never, ever exposed to the actual kernel API, there's really little way of telling. Best guess I've got though, heh.
PaulHill

Tue Nov 13 18:50:02 2001

They're not "different" so much as "more restricted", which means although they'll still work if correctly written, they're much more likely to bluescreen if there's any problems at all.

For example, one of the things you could do with old drivers is when you're requesting memory, you can flag it as "Must Succeed", which means if the driver doesn't get the memory it asked for, it'll bluescreen the OS.

This makes life simple for driver writers, (as they don't have to bother with error handling) but under stress (usually low memory situations) it could cause a otherwise perfectly working OS to bomb just because a coder couldn't be arsed checking a flag.

This, clearly, wouldn't do.

So, now, if you flag a memory grab as "Must Succeed" Windows will bluescreen immediatly, therefore making the driver inoperable and forcing the driver writer to clean their code up.

There's loads of stuff like this, which basically make life worse for driver writers but much more pleasant for everyone else.

Does this help?

Socrates

Tue Nov 13 23:06:32 2001

Thanks Paul:

I noticed when I asked in ARS the guys posted notes saying what you describe, and, that with smaller heap blocks, 16k for SP, and 32 K for 2000, some of the drivers for 2k don't fit in the XP system heap block sizes now.

Also, it appears that drivers now use protected memory on startup, with XP?  That's a really big deal, if true.

Socrates

Socrates

Wed Nov 14 06:40:41 2001

OK: So I was wrong about the drivers in protected memory in XP...

Socrates

Socrates

Wed Nov 14 23:45:23 2001

Are XP drivers going to be backwards compatible to 2000, by nature?

Socrates

PaulHill

Thu Nov 15 00:02:55 2001

Mostly. There's some new stuff in GDI+ which might make video drivers not work properly, but generally speaking if it works in XP it's gonna work in Windows 2000.
Socrates

Thu Nov 15 05:56:44 2001

thanks Paul.

Socrates

Socrates

Fri Nov 16 05:56:26 2001

Just got done reading some of the MSFT stuff on the drivers.
I guess part of this mess is trying to write drivers that support the Itanium 64 bit format, as well as the current 32 bit.

Really intrested to see how much of a boost 64 bit, and Itaniums produce.

Socrates