Выделение памяти
Выделение памяти
PVOID ExAllocatePool(
IN POOLJTYPE PoolType,
IN ULONG NumberOfBytes) ; PVOID ExAllocatePoolWithTag(
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes, IN ULONG Tag); Где: POOLJTYPE принимает следующие значения:
Тип памяти (PoolType) | Описание | ||
NonPagedPool | Обычное выделение памяти из Nonpaged Pool. | ||
NonPagedPoolCacheAligned | Выделение памяти из Nonpaged Pool будет выровнено по линии кеша. | ||
NonPagedPooMustSucceed | Используется в специальных случаях драйверами, необходимыми для загрузки системы. | ||
NonPagedPoolCacheAlignedMustSucceed | |||
PagedPool | Обычное выделение памяти из Paged Pool. | ||
PagedPoolCacheAligned | Выделение памяти из Paged Pool будет выровнено по линии кеша. |
VOID ExFreePool(IN PVOID address);
PVOID MmAllocateNonCachedMemory(IN ULONG NumberOfBytes);
VOID MmFreeNonCachedMemory( IN PVOID BaseAddress,
IN ULONG NumberOfBytes); PVOID MmAllocateContiguousMemory(IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS HighestAcceptableAddress); VOID MmFreeContiguousMemory(IN PVOID BaseAddress);