Поделиться через


Функция 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. Если запрос завершается ошибкой, буфера буфера будет задано значение NULL.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка storport.h (include Storport.h)
IRQL <=DISPATCH_LEVEL
правил соответствия DDI StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport)

См. также

StorPortFreePool