Re: Re: Identify physical pages mapped with MapUserPhysicalPages()

Using AWE within user programs seems to be well documented, but does exits
something similar for device drivers ? In case regular documented interfaces
for allcating memory should be used, does exist a kind of cook-recept to use
these for example to grab memory above the 4 GB physical boundery ?

C.

----- Original Message -----
From: “Maxim S. Shatskih”
To: “Windows System Software Devs Interest List”
Sent: Thursday, December 04, 2003 8:25 PM
Subject: [ntdev] Re: Identify physical pages mapped with MapUserPhysicalPages()

> Try VirtualQuery, can it help?
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
>
> ----- Original Message -----
> From: “David P”
> To: “Windows System Software Devs Interest List”
> Sent: Thursday, December 04, 2003 5:41 PM
> Subject: [ntdev] Identify physical pages mapped with MapUserPhysicalPages()
>
>
> > I’m using AWE to allocate and map physical memory as follows:
> > AllocateUserPhysicalPages()
> > VirtualAlloc()
> > MapUserPhysicalPages()
> >
> > and to deallocate:
> > MapUserPhysicalPages()
> > FreeUserPhysicalPages()
> > VirtualFree()
> >
> > However, I’m slightly incredulous that the API appears to offer no way to
> > query mapped memory to retrieve a list of physical pages. This means that
> > in order to call FreeUserPhysicalPages() I must remember this information
> > myself. This isn’t difficult, but it seems akward and wasteful when I’m
> > certain that the kernel knows full well which pages are mapped. So, my
> > question is,
> >
> > Is there any way to retrieve a list of physical pages mapped to a given
> > region?
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

> From: Christiaan Ghijselinck

Using AWE within user programs seems to be well documented,
but does exits
something similar for device drivers ?

Look at DDK’s
MmAllocateMappingAddress(), MmFreeMappingAddress(), MmAllocatePagesForMdl(),
MmFreePagesFromMdl(), MmMapLockedPagesWithReservedMapping(),
MmUnmapReservedMapping().

These functions are kernel analog of AWE. Unfortunately some of them are only
available on
Windows XP and later.

Use MmAllocatePagesForMdl() to allocate pages above 4 GB.

Dmitriy Budko VMware