Программирование для Windows NT

Получение блока памяти из пула


Для получения памяти из стандартного или динамического пула приложение должно воспользоваться функцией HeapAlloc, прототип которой мы привели ниже:

LPVOID HeapAlloc(

  HANDLE hHeap,    // идентификатор пула

  DWORD  dwFlags,  // управляющие флаги

  DWORD  dwBytes); // объем получаемой памяти в байтах

Что касается параметра hHeap, то для него вы можете использовать либо идентификатор страндартного пула памяти, полученного от функции GetProcessHeap, либо идентификатор динамического пула, созданного приложением при помощи функции HeapCreate.

Параметр dwBytes определяет нужный приложению объем памяти в байтах.

Параметр dwFlags может быть комбинацией следующих значений:

Значение

Описание



HEAP_GENERATE_EXCEPTIONS

Если при выполнении функции произойдет ошибка, возникнет исключение

HEAP_NO_SERIALIZE

Если указан этот флаг, не выполняется блокировака одновременного обращения к блоку памяти нескольких задач одного процесса

HEAP_ZERO_MEMORY

Выделенная память заполняется нулями



Содержание раздела