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


Функция 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