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) |