Link to home
Start Free TrialLog in
Avatar of moczar
moczar

asked on

Map to user space

I have a kernel mode driver (actually a graphics miniport driver) that allocates a buffer by calling ExAllocatePool(PagedPoolCacheAligned,NumberOfBytes).
Is there a way to make this buffer available for an application?
Avatar of jkr
jkr
Flag of Germany image

Check out http://support.microsoft.com/default.aspx?scid=kb;en-us;191840 ("How To Share Memory Between User Mode and Kernel Mode")
Avatar of moczar
moczar

ASKER

jkr, thank you for the link!

How can I create named memory object in the driver (similar call to CreateFileMapping)?
Can I use the mapped view of this section as fast as the buffer allocated by ExAllocatePool?
(Note: the size of the buffer in question can be >50Mb. I read somewhere that using file mapping object for large buffers may degrade the system performance.)

Instead of file mapping can I use ExAllocatePool, MmProbeAndLockPages, MmMapLockedPages, etc. If such a sequence can work, what steps would it consist of exactly (I haven't used these memory management functions before)?
ASKER CERTIFIED SOLUTION
Avatar of jkr
jkr
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial