StorPortGetUncachedExtension function (storport.h)
The StorPortGetUncachedExtension routine allocates an uncached common buffer to be shared by the CPU and the device.
Syntax
STORPORT_API PVOID StorPortGetUncachedExtension(
PVOID HwDeviceExtension,
PPORT_CONFIGURATION_INFORMATION ConfigInfo,
ULONG NumberOfBytes
);
Parameters
HwDeviceExtension
A pointer to the hardware device extension. This is a per HBA storage area that the port driver allocates and initializes on behalf of the miniport driver. Miniport drivers usually store HBA-specific information in this extension, such as the state of the HBA and the mapped access ranges for the HBA. This area is available to the miniport driver immediately after the miniport driver calls StorPortInitialize. The port driver frees this memory when it removes the device.
ConfigInfo
Specifies information about the HBA's DMA capabilities. The following members must be filled in: DmaChannel or DmaPort, DmaWidth, DmaSpeed, MaximumTransferLength, ScatterGather, Master set to TRUE, NumberOfPhysicalBreaks, AdapterInterfaceType, Dma32BitAddresses, Dma64BitAddresses, SystemIoBusNumber, AutoRequestSense, and SrbExtensionSize.
Members that are not pertinent to the HBA, such as DmaChannel for an EISA bus-master adapter, must be left as is.
NumberOfBytes
The size required, in bytes, of the uncached extension to allocate.
Return value
StorPortGetUncachedExtension returns a virtual address pointer to the uncached extension. If it cannot allocate the requested memory, it returns NULL. If the memory was previously allocated, the virtual address pointer to the current uncached extension is returned.
Remarks
Bus-master devices use common buffer space for DMA transfers.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | storport.h (include Storport.h) |
Library | Storport.lib |