I would like to view physical memory that is mapped to a pci board. (I am
writing a driver for the board for a real-time OS and I would like to see
what data is in the board's registers after a successful startup in Windows
to help recreate that in the other OS.) I tried using a tool called WinIO
to try to create a virtual address to that physical memory. It works for
both read and write of some addresses, like 0x9FFF0. However, the resource
the board uses is address at 0xE8100000 which I cannot pick up with the
tool. I have confirmed that address in windows device manager and in the
BAR0 entry in the table that the PCI board registers with windows. Is there
some protection in Windows that I must circumvent to view that memory?

I am running XP SP2. The board's driver is installed and the board is
functioning properly in windows while I am trying to read the memory. I have
1 GB of physical RAM and a swap file of 1.5 GB. (the memory address that PCI
board is at appears to be about 3.8 GB offset (0xE8100000)... I'm not sure
why it is able to have an address that is beyond the sum of the physical and
swap memory.)


I appreciate any thoughts you have.


Thanks,
John

Re: accessing physical memory mapped to a pci board by Maxim

Maxim
Fri Jun 01 14:35:44 CDT 2007

The correct way is to not use WinIO, but to patch the board's driver.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com

"John" <jkluza@mathworks.com> wrote in message
news:eG%23xWQ4oHHA.4632@TK2MSFTNGP04.phx.gbl...
> I would like to view physical memory that is mapped to a pci board. (I am
> writing a driver for the board for a real-time OS and I would like to see
> what data is in the board's registers after a successful startup in Windows
> to help recreate that in the other OS.) I tried using a tool called WinIO
> to try to create a virtual address to that physical memory. It works for
> both read and write of some addresses, like 0x9FFF0. However, the resource
> the board uses is address at 0xE8100000 which I cannot pick up with the
> tool. I have confirmed that address in windows device manager and in the
> BAR0 entry in the table that the PCI board registers with windows. Is there
> some protection in Windows that I must circumvent to view that memory?
>
> I am running XP SP2. The board's driver is installed and the board is
> functioning properly in windows while I am trying to read the memory. I have
> 1 GB of physical RAM and a swap file of 1.5 GB. (the memory address that PCI
> board is at appears to be about 3.8 GB offset (0xE8100000)... I'm not sure
> why it is able to have an address that is beyond the sum of the physical and
> swap memory.)
>
>
> I appreciate any thoughts you have.
>
>
> Thanks,
> John
>
>


Re: accessing physical memory mapped to a pci board by Tim

Tim
Sat Jun 02 21:15:17 CDT 2007

"John" <jkluza@mathworks.com> wrote:

>I would like to view physical memory that is mapped to a pci board. (I am
>writing a driver for the board for a real-time OS and I would like to see
>what data is in the board's registers after a successful startup in Windows
>to help recreate that in the other OS.) I tried using a tool called WinIO
>to try to create a virtual address to that physical memory. It works for
>both read and write of some addresses, like 0x9FFF0. However, the resource
>the board uses is address at 0xE8100000 which I cannot pick up with the
>tool.

Why? What happens when you try to access it? WinIO is able to do this
function.

Is there already a Windows driver for this board?

>I have confirmed that address in windows device manager and in the
>BAR0 entry in the table that the PCI board registers with windows. Is there
>some protection in Windows that I must circumvent to view that memory?
>
>I am running XP SP2. The board's driver is installed and the board is
>functioning properly in windows while I am trying to read the memory. I have
>1 GB of physical RAM and a swap file of 1.5 GB. (the memory address that PCI
>board is at appears to be about 3.8 GB offset (0xE8100000)... I'm not sure
>why it is able to have an address that is beyond the sum of the physical and
>swap memory.)

Because your board is not part of physical memory. If you think about is,
your board MUST be assigned an address that is not already occupied by
something else, like RAM. That's why PCI devices are usually assigned
addresses way up at the top part of memory.

The swap file doesn't live in physical memory at all. Indeed, it's entire
purpose is to hold things that USED to be in physical memory when that
memory needs to be used for something else.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.

Re: accessing physical memory mapped to a pci board by John

John
Mon Jun 04 09:04:38 CDT 2007

The reason I am trying to use WinIO is because I don't have access to the
board driver's source code. If there is a way to attach to the driver while
only using the release version of hte board's windows driver, that may be an
option.

When I do access it with WinIO, it gives me an error that I'm accessing
memory it cannot access. If I use a visual memory viewer program like
WinHex, it will either show me no values. I can use both of these options
to access other memory addresses on the PC.




"John" <jkluza@mathworks.com> wrote in message
news:eG%23xWQ4oHHA.4632@TK2MSFTNGP04.phx.gbl...
>I would like to view physical memory that is mapped to a pci board. (I am
>writing a driver for the board for a real-time OS and I would like to see
>what data is in the board's registers after a successful startup in Windows
>to help recreate that in the other OS.) I tried using a tool called WinIO
>to try to create a virtual address to that physical memory. It works for
>both read and write of some addresses, like 0x9FFF0. However, the resource
>the board uses is address at 0xE8100000 which I cannot pick up with the
>tool. I have confirmed that address in windows device manager and in the
>BAR0 entry in the table that the PCI board registers with windows. Is
>there some protection in Windows that I must circumvent to view that
>memory?
>
> I am running XP SP2. The board's driver is installed and the board is
> functioning properly in windows while I am trying to read the memory. I
> have 1 GB of physical RAM and a swap file of 1.5 GB. (the memory address
> that PCI board is at appears to be about 3.8 GB offset (0xE8100000)... I'm
> not sure why it is able to have an address that is beyond the sum of the
> physical and swap memory.)
>
>
> I appreciate any thoughts you have.
>
>
> Thanks,
> John
>
>