1.4.2  Long-Term Internal Driver Buffers

MmAllocateContiguousMemory

Allocates a range of physically contiguous, cache-aligned memory in nonpaged pool.

MmFreeContiguousMemory

Releases a range of physically contiguous memory when the driver unloads.

MmAllocateNonCachedMemory

Allocates a virtual address range of noncached and cache-aligned memory in nonpaged system space (pool).

MmFreeNonCachedMemory

Releases a virtual address range of noncached memory in nonpaged system space when the driver unloads.

HalAllocateCommonBuffer

Allocates and maps a logically contiguous region of memory that is simultaneously accessible both from the processor and from a device, given access to an adapter object, the requested length of the memory region to allocate, and access to variables where the starting logical and virtual addresses of the allocated region are returned. This routine returns TRUE if the requested length was allocated. It can be used for continuous busmaster DMA or for system DMA using the autoinitialize mode of a system DMA controller.

HalFreeCommonBuffer

Releases an allocated common buffer and unmaps it, given access to the adapter object, the length, and the starting logical and virtual addresses of the region to be freed when the driver unloads. Arguments must match those passed in the call to HalAllocateCommonBuffer.