Good morning,
Can someone tell me if ExInitializeNPagedLookasideList guarantees each
of the allocated elements to be in a physically contiguous memory ? (5th
argument to the function , ‘Size’)
Thanks,
Shay
Good morning,
Can someone tell me if ExInitializeNPagedLookasideList guarantees each
of the allocated elements to be in a physically contiguous memory ? (5th
argument to the function , ‘Size’)
Thanks,
Shay
No it does not, the allocation function by default is
ExAllocatePoolWithTag which does not guarantee this. You can write your
own Allocate and Free functions for the list and then take care of this.
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
“xxxxx@emc.com” wrote in message
news:xxxxx@ntdev:
> Good morning,
>
>
>
> Can someone tell me if ExInitializeNPagedLookasideList guarantees each
> of the allocated elements to be in a physically contiguous memory ? (5th
> argument to the function , ‘Size’)
>
>
>
> Thanks,
>
> Shay
As the underlying default alloc function simply calls
ExAllocatePoolWithTag when its free list is empty, it’s pretty
unlikely that there will be any element memory alignment even at the
virtual level.
Of course, if you provided your own allocate and free functions then
you could come up with such a scheme to carve up a previously
allocated and mapped block of physical memory. But if I did that,
I’d probably just implement and call the buffer alloc and free
routines without hiding them behind a lookaside list.
Mark.
At 14:04 22/11/2010, xxxxx@emc.com wrote:
Good morning,
Can someone tell me if ExInitializeNPagedLookasideList guarantees
each of the allocated elements to be in a physically contiguous
memory ? (5th argument to the function , ‘Size’)Thanks,
Shay