Memory Management Routines

This section lists the memory management routines supplied by the Storport driver.

In this section

TopicDescription

StorPortAllocateContiguousMemorySpecifyCacheNode

The StorPortAllocateContiguousMemorySpecifyCacheNode routine allocates a range of physically contiguous noncached, nonpaged memory.

StorPortAllocateHostMemoryBuffer

This function allocates one or more ranges of physically contiguous memory to be used as a Host Memory Buffer (HMB). This is memory that the device may use directly and exclusively. The device may use this memory however it sees fit, but it must ensure that there is no data loss or data corruption in the event of a surprise removal or unexpected power loss.

StorPortAllocateMdl

The StorPortAllocateMdl routine allocates an MDL to describe the given non-paged pool memory.

StorPortAllocatePool

The StorPortAllocatePool routine allocates a block of non-contiguous, non-paged pool memory.

StorPortAllocateRegistryBuffer

The StorPortAllocateRegistryBuffer routine is called by the miniport driver to allocate a buffer that can be used to read and write registry data.

StorPortBuildMdlForNonPagedPool

The StorPortBuildMdlForNonPagedPool routine updates the MDL to describe the associated non-paged memory.

StorPortConvertPhysicalAddressToULong64

The StorPortConvertPhysicalAddressToULong64 routine converts a physical address to a ULONG64 value.

StorPortConvertUlongToPhysicalAddress

The StorPortConvertUlongToPhysicalAddress routine converts an unsigned long address into a physical address.

StorPortFreeContiguousMemorySpecifyCache

The StorPortFreeContiguousMemorySpecifyCache routine deallocates a range of noncached memory in the nonpaged portion of the system address space.

StorPortFreeHostMemoryBuffer

The StorPortFreeHostMemoryBuffer routine frees the physically contiguous memory that was allocated to be used for a Host Memory Buffer (HMB)

StorPortFreeMdl

The StorPortFreeMdl routine frees a memory descriptor list (MDL) describing non-paged pool memory.

StorPortFreePool

The StorPortFreePool routine frees a block of memory that was previously allocated by a call to the StorPortAllocatePool routine.

StorPortFreeRegistryBuffer

The StorPortFreeRegistryBuffer routine frees the buffer that was allocated for storing registry data.

StorPortGetDataInBufferMdl

Returns an MDL associated with the input data buffer of a SCSI request block (SRB).

StorPortGetDataInBufferScatterGatherList

Returns the scatter-gather list associated with the input data buffer of a SCSI request block (SRB).

StorPortGetDataInBufferSystemAddress

Returns the system address for the input data buffer of a SCSI request block (SRB).

StorPortGetOriginalMdl

The StorPortGetOriginalMdl routine returns the MDL associated with the given SRB.

StorPortGetPfns

The StorPortGetPfns routine can be called when a miniport needs to retreive PFNs associated with a MDL for a SRB

StorPortGetPhysicalAddress

The StorPortGetPhysicalAddress routine converts a given virtual address range to a physical address range for a DMA operation.

StorPortGetSystemAddress

The StorPortGetSystemAddress routine returns a virtual address in system space for the data buffer of the specified SCSI request block (SRB).

StorPortGetUncachedExtension

The StorPortGetUncachedExtension routine allocates an uncached common buffer to be shared by the CPU and the device.

StorPortGetVirtualAddress

The StorPortGetVirtualAddress routine obtains a virtual address that maps to the indicated physical address.

StorPortMarkDumpMemory

A miniport should mark memory used for the dump file or the hibernation file. Marked memory is retained and remains valid after a resume from hibernation operation. The memory to mark is specified by an address and range length in a call to StorPortMarkDumpMemory.

StorPortMoveMemory

The StorPortMoveMemory routine copies memory from one buffer to another.

 

 

 

Send comments about this topic to Microsoft

Show: