Программирование драйверов Windows



Работа с ассоциативными списками - часть 3


размером sizeof(PAGED_LOOKASIDE_LIST) или sizeof(NPAGED_LOOKASIDE_LIST) &#8212 в зависимости от того, какой список инициализируется. Для этих целей можно использовать описанные выше системные вызовы ExAllocatePool

или ExAllocatePoolWithTag. В конце работы со списком обязательно следует выполнить вызов ExDelete(N)PagedLookasideList.

Функции, на которые указывает pAllocFunction, имеют прототип:

PVOID MyAllocateFunction ( IN_POOL_TYPE PoolType, // PagedPool или NonPagedPool IN ULONG NumberOfBytes, // размер IN ULONG Tag // тег );

Функции, на которые указывает pFreeFunction, имеют прототип:

PVOID MyFreeFunction (PVOID pBuffer);

Таблица 7.11. Прототип вызова ExAllocateFromNPagedLookasideList

PVOID ExAllocateFromNPagedLookasideList IRQL &#60= DISPATCH_LEVEL
Параметры Выполняет выделение блока памяти из нестраничного списка
IN PNPAGED_LOOKASIDE_LIST

pLookasideList

Указатель на инициализированный ассоциативный список
Возвращаемое значение Указатель на блок фиксированного размера или NULL (если функция выделения памяти не смогла получить очередной блок)

Таблица 7.12. Прототип вызова ExAllocateFromPagedLookasideList

PVOID ExAllocateFromPagedLookasideList IRQL &#60 DISPATCH_LEVEL
Параметры Выполняет выделение блока памяти из страничного списка
IN PPAGED_LOOKASIDE_LIST

pLookasideList

Указатель на инициализированный ассоциативный список
Возвращаемое значение Указатель на блок фиксированного размера или NULL (если функция выделения памяти не смогла получить очередной блок)

Таблица 7.13. Прототип вызова ExFreeToNPagedLookasideList

VOID ExFreeToNPagedLookasideList IRQL &#60= DISPATCH_LEVEL
Параметры Возвращает блок в нестраничный ассоциативный список
IN PNPAGED_LOOKASIDE_LIST pLookasideList Указатель на инициализированный ассоциативный список
IN PVOID pEntry Указатель на ранее полученный из списка блок фиксированного размера
Возвращаемое значение void

Таблица 7.14. Прототип вызова ExFreeToPagedLookasideList




Содержание  Назад  Вперед