Yes I know the PHYSICAL_ADDRESS structure allows 64-bit address as does the
Windows DMA architecture.
The blog entry at
http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx
in the paragraph “Windows Client Memory Limits”, written by Mark
Russinovich, describes just what I said, about older drivers being unstable
with memory above 4 GB. I assume I was probably just passing on the info
from Mark’s posting.
I tend to think of Mark Russinovich as a pretty credible source of Windows
information.
Jan
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-485659-
xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Tuesday, December 06, 2011 12:35 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] How does windows find available memory
Jan Bottorff wrote:
> I though the deal was that 32-bit Windows was limited to only use
> physical DMA addresses below the 4 Gbyte line because there are old
> buggy drivers for some hardware that don’t correctly handle 64-bit
> physical addresses, even if the OS can. This address limit was set to
> improve OS compatibility with these old drivers. Since there is no
> 32-bit Win 2008 R2 (i.e. Win 7) server, only 64-bit, this would only
> apply to Win 7 client. This is a real technical reason for the limit,
not just a
marketing reason.
I think you are being overly generous. The DMA abstraction has always
provided a way for drivers to report whether their hardware supports
64-bit
addressing or not. The Windows PHYSICAL_ADDRESS structure has always
been a 64-bit value. This is not a new problem, by any stretch of the
imagination.
Plus, this restriction is only in the 32-bit *client* systems. The
complete list
of affected systems is XP, Vista 32, and Win 7 32. All other 21st Century
systems, including Server 2003 32, handle it just fine.
No, I’m pretty confident this is a policy limitation rather than a
technical
limitation.
> Since you generally don’t (or can’t) use old driver binaries with a
> newer Linux release, Linux may not do this compatibility improvement.
“Compatibility improvement”? You might just have a bright career ahead of
you as a Microsoft marketing representative. “In order to serve you
better,
we have restricted your memory usage.”
> My understanding of Linux is it makes no attempt to support a stable
> driver binary interface, and drivers need to be rebuild or changed as
> the Linux kernel evolves.
True. The issue is really that dynamically-loaded kernel drivers in Linux
are
more tightly coupled to the kernel than is the case in Windows. The
concept
is less like a DLL than it is like partially deferred static linking. A
kernel module
is partially linked to a specific kernel. If the kernel changes and the
exported
symbols change (which they often do), the partial linking is no longer
valid.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer