Question about ExInitializeNPagedLookasideList

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