I am using XP as an OS and I am using C++ programming language and need
to write data to a physical address between 0xD0000 and 0xDFFFF I am
aware that this OS used virtual memory so I may need to create a
driver. I have download the windows DDK but have no experience with
this and would like to get up and running very quickly can any one
point me in the direction of an example that I could modify. I found a
reference to an example program called GENPORT but can't seem to find
any similar example in the latest DDK. I have also found an already
written and complied driver called portTalk but this only allows you to
talk to an addresses between 0x0000 and 0xFFFF. If anyone has any
experience with this any help would be most appreciated.

Thanks,

Grant

Re: Addressing Physical memory in XP using C++ by Aurelien

Aurelien
Wed Oct 25 06:19:19 CDT 2006

Grant a écrit :
> I am using XP as an OS and I am using C++ programming language and need
> to write data to a physical address between 0xD0000 and 0xDFFFF I am
> aware that this OS used virtual memory so I may need to create a
> driver. I have download the windows DDK but have no experience with
> this and would like to get up and running very quickly can any one
> point me in the direction of an example that I could modify. I found a
> reference to an example program called GENPORT but can't seem to find
> any similar example in the latest DDK. I have also found an already
> written and complied driver called portTalk but this only allows you to
> talk to an addresses between 0x0000 and 0xFFFF. If anyone has any
> experience with this any help would be most appreciated.

Note that physical RAM addresses and I/O Ports addresses are not the
same (different address spaces).

You can have a look at WinIo from internals:
http://www.internals.com/

Hope you know what you are doing...

--
Aurélien Regat-Barrel

RE: Addressing Physical memory in XP using C++ by bruno_nos_pam_van_dooren

bruno_nos_pam_van_dooren
Wed Oct 25 06:30:02 CDT 2006

> I am using XP as an OS and I am using C++ programming language and need
> to write data to a physical address between 0xD0000 and 0xDFFFF I am
> aware that this OS used virtual memory so I may need to create a
> driver. I have download the windows DDK but have no experience with
> this and would like to get up and running very quickly can any one
> point me in the direction of an example that I could modify. I found a
> reference to an example program called GENPORT but can't seem to find
> any similar example in the latest DDK. I have also found an already
> written and complied driver called portTalk but this only allows you to
> talk to an addresses between 0x0000 and 0xFFFF. If anyone has any
> experience with this any help would be most appreciated.

Hi,

If you are new to driver development, I strongly suggest you use the KMDF DDK.
KMDF is much easier to learn than WDM, which is what you would otherwise be
using.

For a link to the KMDF DDK and some tutorials, see this article on my blog
http://msmvps.com/blogs/vandooren/archive/2006/06/15/Is-it-possible-to-create-_2800_USB_2900_-device-drivers-with-Visual-C_2B002B003F00_.aspx

The following document may help you locate what you need in the samples
download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/KMDF-samp.doc

But in your case, I would first ask in the development.device.drivers
newsgroup. The people there can probably give you very specific information,
or point you to existing tools that do what you need.

--
Kind regards,
Bruno.
bruno_nos_pam_van_dooren@hotmail.com
Remove only "_nos_pam"


Re: Addressing Physical memory in XP using C++ by Grant

Grant
Wed Oct 25 07:56:46 CDT 2006

Thanks, this looks exactly what I was looking for. I will be using
this program to check the operation of an interface to dual port ram
which will be mapped to the free address space at 0xD0000 to 0xDFFFF on
a PC104 module.
Please let me know if you think this is a bad idea!

Regards,

Grant

On Oct 25, 12:19 pm, Aurelien Regat-Barrel
<nospam.arega...@yahoo.fr.invalid> wrote:
> Grant a =E9crit :
>
> > I am using XP as an OS and I am using C++ programming language and need
> > to write data to a physical address between 0xD0000 and 0xDFFFF I am
> > aware that this OS used virtual memory so I may need to create a
> > driver. I have download the windows DDK but have no experience with
> > this and would like to get up and running very quickly can any one
> > point me in the direction of an example that I could modify. I found a
> > reference to an example program called GENPORT but can't seem to find
> > any similar example in the latest DDK. I have also found an already
> > written and complied driver called portTalk but this only allows you to
> > talk to an addresses between 0x0000 and 0xFFFF. If anyone has any
> > experience with this any help would be most appreciated.Note that physi=
cal RAM addresses and I/O Ports addresses are not the
> same (different address spaces).
>
> You can have a look at WinIo from internals:http://www.internals.com/
>
> Hope you know what you are doing...
>=20
> --
> Aur=E9lien Regat-Barrel


Re: Addressing Physical memory in XP using C++ by Tim

Tim
Thu Oct 26 00:00:58 CDT 2006

"Grant" <g.crossingham@symetrica.com> wrote:
>
>Thanks, this looks exactly what I was looking for. I will be using
>this program to check the operation of an interface to dual port ram
>which will be mapped to the free address space at 0xD0000 to 0xDFFFF on
>a PC104 module.

You're running Windows XP on a PC/104 computer?

>Please let me know if you think this is a bad idea!

Well, you do what you have to do, right? Sometimes you have to deal with
hardware limitations. There's nothing particularly wrong with using
something like WinIO to provide access to a fixed-space device like this.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.