StorPortAllocatePool 函数 (storport.h)

StorPortAllocatePool 例程分配一个非连续的非分页池内存块。

语法

ULONG StorPortAllocatePool(
  [in]  PVOID HwDeviceExtension,
  [in]  ULONG NumberOfBytes,
  [in]  ULONG Tag,
  [out] PVOID *BufferPointer
);

参数

[in] HwDeviceExtension

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

[in] NumberOfBytes

要分配的内存块的大小(以字节为单位)。

[in] Tag

已分配内存的池标记。 驱动程序将池标记指定为四个 ASCII 字符的字符串,用单引号分隔。 字符串通常按反向顺序指定。

[out] BufferPointer

指向已分配内存块的地址的指针,如果未成功,则 NULL

返回值

StorPortAllocatePool 返回以下状态代码之一:

返回代码 描述
STOR_STATUS_NOT_IMPLEMENTED 此函数未在活动作系统上实现。
STOR_STATUS_SUCCESS 指示例程已成功分配请求大小的内存块。
STOR_STATUS_INVALID_PARAMETER 用于接收缓冲区地址的指针 NULL
STOR_STATUS_INVALID_IRQL 调用在无效的 IRQL 中发出。
STOR_STATUS_INSUFFICIENT_RESOURCES 无法分配所请求大小的内存。

言论

微型端口驱动程序调用 StorPortAllocatePool 例程,从非分页池分配一个非连续内存块。 为了释放内存块,微型端口驱动程序调用 StorPortFreePool。 如果请求失败,BufferPointer 将设置为 null

要求

要求 价值
目标平台 普遍
标头 storport.h (包括 Storport.h)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 StorPortAllocatePool(storport),StorPortAllocatePool2(storport)StorPortIrql(storport)

另请参阅

StorPortFreePool