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