Самоучитель по программированию систем защиты

       

Выделение памяти



Выделение памяти



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);



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