Expand Minimize

ExAllocateFromPagedLookasideList routine

The ExAllocateFromPagedLookasideList routine returns a pointer to a paged entry from the given lookaside list, or it returns a pointer to a newly allocated paged entry.

Syntax


PVOID ExAllocateFromPagedLookasideList(
  _Inout_  PPAGED_LOOKASIDE_LIST Lookaside
);

Parameters

Lookaside [in, out]

A pointer to the PAGED_LOOKASIDE_LIST structure for the lookaside list, which the caller already initialized with ExInitializePagedLookasideList.

Return value

ExAllocateFromPagedLookasideList returns a pointer to an entry if one can be allocated. Otherwise, it returns NULL.

Remarks

If the given lookaside list is not empty, ExAllocateFromPagedLookasideList removes the first entry from the list and returns a pointer to this entry. Otherwise, ExAllocateFromPagedLookasideList either calls the Allocate routine specified at list initialization or ExAllocatePoolWithTag to return an entry pointer.

The caller can then set up the returned entry with any caller-determined data. The caller should release each entry with ExFreeToPagedLookasideList when it is no longer in use.

Because the entries in a paged lookaside list are allocated from pageable memory, they must not be accessed at an IRQL >= DISPATCH_LEVEL. You can use ExAllocateFromNPagedLookasideList to create a lookaside list with non-pageable entries.

On Windows 2000, drivers must use the -D_WIN2K_COMPAT_SLIST_USAGE switch to successfully link code that uses ExAllocateFromPagedLookasideList.

For more information, see Using Lookaside Lists.

Requirements

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

Ntoskrnl.lib

IRQL

<= APC_LEVEL

See also

ExAllocateFromNPagedLookasideList
ExFreeToPagedLookasideList
ExInitializePagedLookasideList
PAGED_LOOKASIDE_LIST

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft