StorPortAllocateContiguousMemorySpecifyCacheNode 函数 (storport.h)

StorPortAllocateContiguousMemorySpecifyCacheNode 例程分配一系列物理连续的非分页内存。

语法

ULONG StorPortAllocateContiguousMemorySpecifyCacheNode(
  [in]           PVOID               HwDeviceExtension,
  [in]           SIZE_T              NumberOfBytes,
  [in]           PHYSICAL_ADDRESS    LowestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS    HighestAcceptableAddress,
  [in, optional] PHYSICAL_ADDRESS    BoundaryAddressMultiple,
  [in]           MEMORY_CACHING_TYPE CacheType,
  [in]           NODE_REQUIREMENT    PreferredNode,
  [out]          PVOID               *BufferPointer
);

参数

[in] HwDeviceExtension

指向主机总线适配器(HBA)的硬件设备扩展的指针。

[in] NumberOfBytes

要分配的字节数。

[in] LowestAcceptableAddress

对分配有效的最低物理地址。 例如,如果设备只能引用 8 MB 到 16 MB 范围内的物理内存,则此值将设置为0x800000(8 MB)。

[in] HighestAcceptableAddress

对分配有效的最高物理地址。 例如,如果设备只能引用低于 16 MB 的物理内存,此值将设置为0xFFFFFF(16 MB - 1)。

[in, optional] BoundaryAddressMultiple

此分配不能跨越的物理地址倍数。

[in] CacheType

映射所需的缓存类型。

[in] PreferredNode

如果页面在该节点上可用,则应从该节点进行分配的首选节点。

[out] BufferPointer

接收已分配内存块起始地址的变量。 从此例程返回后,如果此变量为零,则找不到连续范围来满足请求。 如果此变量未 NULL,则它包含指向分配的物理连续内存的指针(例如,系统非分页部分中的虚拟地址)。

返回值

StorPortAllocateContiguousMemorySpecifyCacheNode 例程返回以下状态代码之一:

返回代码 描述
STOR_STATUS_NOT_IMPLEMENTED
此函数未在活动作系统上实现。
STOR_STATUS_SUCCESS
作成功。
STOR_STATUS_INSUFFICIENT_RESOURCES
由于资源不足,作未能分配请求的内存。

言论

如果请求失败,BufferPointer 将设置为 null

要求

要求 价值
最低支持的客户端 从 Windows 7 开始可用。
目标平台 普遍
标头 storport.h (包括 Storport.h)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 StorPortIrql(storport)