На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Heap Functions



The heap functions enable a process to create a private heap, a block of one or more pages in the address space of the calling process. The process can then use a separate set of functions to manage the memory in that heap. There is no difference between memory allocated from a private heap and that allocated by using the standard allocation functions (GlobalAlloc, LocalAlloc, malloc, and so on).

The HeapCreate function creates a private heap object from which the calling process can allocate memory blocks by using the HeapAlloc function. HeapCreate specifies both an initial size and a maximum size for the heap. The initial size determines the number of committed, read-write pages initially allocated for the heap. The maximum size determines the total number of reserved pages. These pages create a contiguous block in the virtual address space of a process into which the heap can grow. Additional pages are automatically committed from this reserved space if requests by HeapAlloc exceed the current size of committed pages, assuming that the physical storage for it is available. Once the pages are committed, they are not decommitted until the process is terminated or until the heap is destroyed by calling the HeapDestroy function.

The memory of a private heap object is accessible only to the process that created it. If a dynamic-link library (DLL) creates a private heap, it does so in the address space of the process that called the DLL. It is accessible only to that process.
The HeapAlloc function allocates a specified number of bytes from a private heap and returns a pointer to the allocated block. The pointer identifies the block for the HeapFree function to release or for the HeapSize function to determine the size.

Memory allocated by HeapAlloc is not movable. Because the system cannot compact a private heap, the heap can become fragmented.
A possible use for the heap functions is to create a private heap when a process starts up, specifying an initial size sufficient to satisfy the memory requirements of the process. If the call to the HeapCreate function fails, the process can terminate or notify the user of the memory shortage; if it succeeds, however, the process is assured of having the memory it needs.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Функции Кучи



Куча функционирует допустимый процесс, чтобы создавать частную кучу, блок одной или более страниц в пространстве адреса вызова процесса. Процесс может затем использовать отдельный набор функций, чтобы управлять памятью в этой куче. Нет различия между памятью распределенной из частной кучи и, что распределял используя стандартные функции распределения (GlobalAlloc, LocalAlloc, malloc, и так далее).

Функция HeapCreate создает частный объект кучи из которого вызов процесса может распределить блоков памяти используя функцию HeapAlloc. HeapCreate ОПРЕДЕЛЯЕТ как начальный размер так и максимальный размер для кучи. Начальный размер определяет число совершенное, прочитавшее-страницы записи первоначально распределялся для кучи. Максимальный размер определяет общее число резервных страниц. Эти страницы создают непрерывного блока в виртуальном пространстве адреса процесса в который куча может возрасти. Дополнительные страницы автоматически совершены из этого зарезервировавшее пространство если просьбы HeapAlloc превышают текущий размер совершенных страниц, допуская что физическое хранение для него доступно. Как только страницы будут совершены, они не decommitted пока процесс не будет расторгнутым или пока куча не будет уничтожена вызовом функции HeapDestroy.

Память частного объекта кучи доступна только в процессе, что создавшее это. Если динамическая связь библиотеки (DLL) создает частную кучу, она делает так в пространстве адреса процесса, которое было названо DLL. Это доступно только в этом процессе.
Функция HeapAlloc распределяет определенное количество байтов из частной кучи и возвращает указатель размещенному блоку. Указатель идентифицирует блока для функции HeapFree, чтобы выпускать или для функции HeapSize, чтобы определять размер.

Память распределенная HeapAlloc не подвижная. Поскольку система не может уплотнить частную кучу, куча может стать фрагментировать.
Возможное использование для функций кучи должно создать частную кучу когда процесс запускает, определение начального размера достаточное, чтобы удовлетворять требования памяти процесса. Если вызов в функцию HeapCreate терпит неудачу, процесс может завершить или уведомлять потребитель о нехватке памяти; если это получает, тем не менее, процесс гарантирован иметь память, ему нужно.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz