Long-Term Internal Driver Buffers

The long-term buffer management routines are called by kernel-mode drivers to allocate long-term driver-internal 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.

MmAllocateMappingAddress

Reserves a range of virtual address space that can later be mapped with MmMapLockedPagesWithReservedMapping.

MmFreeMappingAddress

Frees a reserved memory address reserved by MmAllocateMappingAddress.

AllocateCommonBuffer

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. Returns TRUE if the requested length was allocated. Can be used for continuous bus-master DMA or for system DMA using the autoinitialize mode of a system DMA controller.

FreeCommonBuffer

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 AllocateCommonBuffer.

 

 

Send comments about this topic to Microsoft

Show: