From: Kota on
Hi,

I am using MmMapLockedPagesSpecifyCache function to map my device memory RAM
to user area. It is not a security conernt to me to do by this method.

I want to support this for a 32 bit application, calls 64 bit driver(64 bit
system), I am taking care of 32 bit process detection, In this case, if i
uses above function, it returns a PVOID, I am not sure, will get a 32/64 bit
pointer, but PVOID is 64 bit in 64 bit system?

Is there any way to request only 32 bit User pointer from this API?
Any coversion of mapping 64 bit userarea pointer to 32 bit different user
area pointer?

Any other ways to support this in 32 bit process in a 64 bit driver, for
getting a 32 bit User address pointer?

I have tested once, I received a 32 bit pointer, but i doubt, this will not
be a case always.

Thanks,
kota
From: Scott Noone on
> Is there any way to request only 32 bit User pointer from this API?
> Any coversion of mapping 64 bit userarea pointer to 32 bit different user
> area pointer?

If the user application is 32bit you'll get a 32bit pointer.

See:

http://analyze-v.com/?p=227

-scott

--
Scott Noone
Consulting Associate
OSR Open Systems Resources, Inc.
http://www.osronline.com


"Kota" <Kota(a)discussions.microsoft.com> wrote in message
news:A98810BA-5D94-4C9C-A780-E637C06D4CE8(a)microsoft.com...
> Hi,
>
> I am using MmMapLockedPagesSpecifyCache function to map my device memory
> RAM
> to user area. It is not a security conernt to me to do by this method.
>
> I want to support this for a 32 bit application, calls 64 bit driver(64
> bit
> system), I am taking care of 32 bit process detection, In this case, if i
> uses above function, it returns a PVOID, I am not sure, will get a 32/64
> bit
> pointer, but PVOID is 64 bit in 64 bit system?
>
> Is there any way to request only 32 bit User pointer from this API?
> Any coversion of mapping 64 bit userarea pointer to 32 bit different user
> area pointer?
>
> Any other ways to support this in 32 bit process in a 64 bit driver, for
> getting a 32 bit User address pointer?
>
> I have tested once, I received a 32 bit pointer, but i doubt, this will
> not
> be a case always.
>
> Thanks,
> kota

From: Maxim S. Shatskih on
> Any other ways to support this in 32 bit process in a 64 bit driver, for
> getting a 32 bit User address pointer?

Return the 64bit pointer to user mode, and, in 32bit app, just truncate the upper 32 bits.

--
Maxim S. Shatskih
Windows DDK MVP
maxim(a)storagecraft.com
http://www.storagecraft.com