I think, if you enable PAE on the 32-bit box (which may only be possible if
you have Windows 2003 Server Enterprise or Datacenter), it will also show
you 64-bit addresses on the PTE command.
Certainly, the PAE bit is key to what WinDBG does, there is no magical
things that make a AMD64 machine any different in 32-bit mode (aside from
the fact that if you really know what you’re doing, you can make it run
64-bit code…).
Kernel calls that deal with physical addresses, such as
MmGetPhysicalAddress or MmMapIoSpace uses a data-type PHYSICAL_ADDRESS that
is a 64-bit integer (defined using LARGE_INTEGER). So you shouldn’t need to
know whether it’s a 32-bit or 64-bit address in the PTE/PDE, just use he
OS-functions that are already there, and that are 64-bit capable (if the
rest of the system is set to a 64-bit capable mode, i.e. PAE or 64-bit
mode).
–
Mats
xxxxx@lists.osr.com wrote on 01/27/2005 03:00:59 AM:
Hi All,
I’m running the 32 bit WinXP SP2 on an AMD athlon 64bit box,
the PAE mode was enabled. From WinDBG, I can see the address
like this:
kd> !pte 139430
VA 00139430
PDE at 00000000C0600000 PTE at 00000000C00009C8
contains 0000000012EC7067 contains 0000000015E06067
pfn 12ec7 —DA–UWV pfn 15e06 —DA–UWV
But when running XP SP2 on the 32bit box,
kd> !pte 804e3b25
VA 804e3b25
PDE at C0300804 PTE at C020138C
contains 0003D163 contains 004E3121
pfn 3d -G-DA–KWV pfn 4e3 -G–A–KRV
My question is, WinDBG(32bit) knew the target address actually
is a 64bit address and the PDE/PTE are all showed in 64 bit, how
can I get this 64bit information in my 32bit device driver? any kernel
APIs or embedded assembly instructions?
Thanks in advance,
AFei
Questions? First check the Kernel Driver FAQ at http://www.
osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@3dlabs.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
ForwardSourceID:NT0000BAC2