1.4.1 Temporary Buffers and Zone Entries
Allocates (optionally cache-aligned) memory from paged or nonpaged system space.
Allocates pool memory charging quota against the original requestor of the I/O operation. (Only highest-level drivers can call this routine.)
Allocates (optionally cache-aligned) tagged memory from paged or nonpaged system space. The caller-supplied tag is put into any crash dump of memory that occurs.
Allocates tagged pool memory charging quota against the original requestor of the I/O operation. The caller-supplied tag is put into any crash dump of memory that occurs. (Only highest-level drivers can call this routine.)
Releases memory to paged or nonpaged system space.
ExInitializeNPagedLookasideList
Initializes a lookaside list of nonpaged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
ExAllocateFromNPagedLookasideList
Removes the first entry from the specified lookaside list in nonpaged memory. If the lookaside list is empty, an entry is allocated from nonpaged pool.
Returns an entry to the specified lookaside list in nonpaged memory. If the list has reached its maximum size, the entry is returned to nonpaged pool.
Deletes a nonpaged lookaside list.
ExInitializePagedLookasideList
Initializes a lookaside list of paged memory. After a successful initialization, fixed-size blocks can be allocated from and freed to the lookaside list.
ExAllocateFromPagedLookasideList
Removes the first entry from the specified lookaside list in paged memory. If the lookaside list is empty, an entry is allocated from paged pool.
Returns an entry to the specified lookaside list in paged memory. If the list has reached its maximum size, the entry is returned to paged pool.
Deletes a paged lookaside list.
Initializes a zone buffer header, setting up the fixed size for every block to be allocated from the zone.
Allocates a fixed-size block of storage from a zone buffer.
Returns a previously allocated, fixed-size block in a zone buffer to the zone’s free-block list.
Determines whether all fixed-size blocks have been allocated from a given zone buffer.
Allocates a fixed-size block from a zone buffer, using a spin lock to ensure multiprocessor-safe access to the zone’s free-block list.
Releases a fixed-size block in a zone buffer, using a spin lock to ensure multiprocessor-safe access to the zone’s free-block list.
Extends an existing zone buffer by allocating a block-size-granular amount of additional memory, which cannot be released until the machine is rebooted.
Extends an existing zone buffer, which cannot be released until the machine is rebooted, using a spin lock to ensure multiprocessor-safe access to the zone header.
Returns whether a given entry was allocated from the original zone segment or from an extension to the zone.
Returns whether the machine has a small, medium, or large amount of available memory.
Returns whether the machine is running as a server or as a desktop client. If this routine returns TRUE, the caller is likely to require more resources to process I/O requests, and the machine is a server so it is likely to have more resources available.