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)