Составители:
dwBytes - число байт в блоке.
Возвращаемые значения:
В случае успеха возвращает указатель на распределенный блок, иначе, если не
задан флаг HEAP_GENERATE_EXCEPTIONS, возвращает NULL. Если возникла
ошибка и флаг HEAP_GENERATE_EXCEPTIONS задан, могут генерироваться
следующие исключения:
Код Значение
STATUS_NO_MEMORY Недостаточно памяти или куча повреждена.
STATUS_ACCESS_VIOLATION
Повреждена куча или заданы неправильные
параметры.
16. HeapReAlloc
Функция HeapReAlloc перераспределяет блок в куче, позволяя менять его размер
или свойства. Новый блок будет фиксированным (not movable).
LPVOID HeapReAlloc(
HANDLE hHeap, // дескриптор кучи
DWORD dwFlags, // флаги нового блока
LPVOID lpMem, // указатель на старый (подлежащий изменению) блок
DWORD dwBytes // новый размер блока
);
Возможно задание следующих флагов:
HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE,
HEAP_ZERO_MEMORY и HEAP_REALLOC_IN_PLACE_ONLY. Последний
указывает, что если новый блок
больше старого, то его нельзя перемещать в
памяти. Если это невозможно работа функции завершается ошибкой, а старый блок
не меняется.
Возвращаемые значения:
В случае успеха возвращает указатель на новый блок, иначе, если не задан флаг
HEAP_GENERATE_EXCEPTIONS, то возвращает NULL, а, если задан,
генерируется исключение STATUS_NO_MEMORY или
STATUS_ACCESS_VIOLATION.
17. HeapFree
Функция HeapFree освобождает блок, распределенный в куче с помощью
HeapAlloc или HeapRealloc.
BOOL HeapFree(
HANDLE hHeap, // дескриптор кучи
DWORD dwFlags, // флаги
LPVOID lpMem // указатель на освобождаемый блок
);
Может быть указан только один флаг: HEAP_NO_SERIALIZE.
18. HeapSize
Функция HeapSize возвращает размер в байтах блока, распределенного прежде с
помощью HeapAlloc или HeapRealloc.
DWORD HeapSize(
dwBytes - число байт в блоке.
Возвращаемые значения:
В случае успеха возвращает указатель на распределенный блок, иначе, если не
задан флаг HEAP_GENERATE_EXCEPTIONS, возвращает NULL. Если возникла
ошибка и флаг HEAP_GENERATE_EXCEPTIONS задан, могут генерироваться
следующие исключения:
Код Значение
STATUS_NO_MEMORY Недостаточно памяти или куча повреждена.
Повреждена куча или заданы неправильные
STATUS_ACCESS_VIOLATION
параметры.
16. HeapReAlloc
Функция HeapReAlloc перераспределяет блок в куче, позволяя менять его размер
или свойства. Новый блок будет фиксированным (not movable).
LPVOID HeapReAlloc(
HANDLE hHeap, // дескриптор кучи
DWORD dwFlags, // флаги нового блока
LPVOID lpMem, // указатель на старый (подлежащий изменению) блок
DWORD dwBytes // новый размер блока
);
Возможно задание следующих флагов:
HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE,
HEAP_ZERO_MEMORY и HEAP_REALLOC_IN_PLACE_ONLY. Последний
указывает, что если новый блок больше старого, то его нельзя перемещать в
памяти. Если это невозможно работа функции завершается ошибкой, а старый блок
не меняется.
Возвращаемые значения:
В случае успеха возвращает указатель на новый блок, иначе, если не задан флаг
HEAP_GENERATE_EXCEPTIONS, то возвращает NULL, а, если задан,
генерируется исключение STATUS_NO_MEMORY или
STATUS_ACCESS_VIOLATION.
17. HeapFree
Функция HeapFree освобождает блок, распределенный в куче с помощью
HeapAlloc или HeapRealloc.
BOOL HeapFree(
HANDLE hHeap, // дескриптор кучи
DWORD dwFlags, // флаги
LPVOID lpMem // указатель на освобождаемый блок
);
Может быть указан только один флаг: HEAP_NO_SERIALIZE.
18. HeapSize
Функция HeapSize возвращает размер в байтах блока, распределенного прежде с
помощью HeapAlloc или HeapRealloc.
DWORD HeapSize(
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »
