Составители:
возвращает NULL.
HEAP_NO_SERIALIZE
Используется, чтобы отменить сериализацию, при
одновременном доступе нескольких потоков к
куче.
dwInitialSize - начальный размер кучи в байтах, значение выравнивается по границе
следующей страницы.
dwMaximumSize - если значение этого параметра больше нуля, то он задает
максимальный размер кучи (с учетом выравнивания на границу страницы). Кроме
того, максимальный размер захватываемого в этой
куче блока должен быть
немного меньше чем 0x7FFF8 байт, даже если максимальный размер кучи больше
этой величины. Если dwMaximumSize равен нулю, куча может менять свой
максимальный размер. Ограничение - только общий размер доступной памяти.
Запрос блока, размер которого больше чем 0x7FFF8 байт приводит к вызову
VirtualAlloc для захвата такого блока памяти. Возвращаемые значения:
В
случае успеха - дескриптор новой кучи. В случае неуспеха - NULL.
14. HeapDestroy
Функция HeapDestroy освобождает память занятую "кучей" и ее дескриптор
становится недействительным.
BOOL HeapDestroy(
HANDLE hHeap // дескриптор кучи
);
Возвращаемые значения:
В случае успеха возвращает не нулевое значение, в противном случае - ноль.
15. HeapAlloc
Функция HeapAlloc распределяет фиксированный (не перемещаемый) блок памяти
из кучи.
LPVOID HeapAlloc(
HANDLE hHeap, // дескриптор кучи
DWORD dwFlags, // флаги распределения
DWORD dwBytes // размер лока в байтах
);
Параметры:
hHeap - дескриптор кучи, возвращенный прежде функцией HeapCreate или
функцией GetProcessHeap.
dwFlags - флаги распределения, которые могут перекрывать флаги заданные при
создании кучи:
Флаг Значение
HEAP_GENERATE_EXCEPTIONS
При возникновении
ошибки функция не будет
возвращать NULL, но выбрасывается
исключение, подобное "out-of-memory".
HEAP_NO_SERIALIZE
Не использовать "mutual exclusion" при доступе к
куче нескольких потоков одновременно. Нельзя
использовать для стандартной кучи.
HEAP_ZERO_MEMORY Инициализировать выделенный блок нулями.
возвращает NULL. Используется, чтобы отменить сериализацию, при HEAP_NO_SERIALIZE одновременном доступе нескольких потоков к куче. dwInitialSize - начальный размер кучи в байтах, значение выравнивается по границе следующей страницы. dwMaximumSize - если значение этого параметра больше нуля, то он задает максимальный размер кучи (с учетом выравнивания на границу страницы). Кроме того, максимальный размер захватываемого в этой куче блока должен быть немного меньше чем 0x7FFF8 байт, даже если максимальный размер кучи больше этой величины. Если dwMaximumSize равен нулю, куча может менять свой максимальный размер. Ограничение - только общий размер доступной памяти. Запрос блока, размер которого больше чем 0x7FFF8 байт приводит к вызову VirtualAlloc для захвата такого блока памяти. Возвращаемые значения: В случае успеха - дескриптор новой кучи. В случае неуспеха - NULL. 14. HeapDestroy Функция HeapDestroy освобождает память занятую "кучей" и ее дескриптор становится недействительным. BOOL HeapDestroy( HANDLE hHeap // дескриптор кучи ); Возвращаемые значения: В случае успеха возвращает не нулевое значение, в противном случае - ноль. 15. HeapAlloc Функция HeapAlloc распределяет фиксированный (не перемещаемый) блок памяти из кучи. LPVOID HeapAlloc( HANDLE hHeap, // дескриптор кучи DWORD dwFlags, // флаги распределения DWORD dwBytes // размер лока в байтах ); Параметры: hHeap - дескриптор кучи, возвращенный прежде функцией HeapCreate или функцией GetProcessHeap. dwFlags - флаги распределения, которые могут перекрывать флаги заданные при создании кучи: Флаг Значение При возникновении ошибки функция не будет HEAP_GENERATE_EXCEPTIONS возвращать NULL, но выбрасывается исключение, подобное "out-of-memory". Не использовать "mutual exclusion" при доступе к HEAP_NO_SERIALIZE куче нескольких потоков одновременно. Нельзя использовать для стандартной кучи. HEAP_ZERO_MEMORY Инициализировать выделенный блок нулями.
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »