Reply To: TDI FILTER driver

Home Forums Discussions General Discussion TDI FILTER driver Reply To: TDI FILTER driver

#6302

Dmitry_177
Participant

Я выкладывал код в своем посте: Posted:Wed Jun 27, 2007 12:02 am. Он практически так и не изменился, добавились только прерывания..

Не вижу всего кода, но если pBlockFromPagedLookasideList действительно аппокирован из paged pool, то падает вполне закономерно, так как ClientEventReceive вызывается на IRQL_DISPATCH_LEVEL.

У меня pBlockFromPagedLookasideList находится в НЕСТРАНИЧНОЙ ПАМЯТИ(NonPagedPool)! Вот:

g_pPagedLookasideList = ExAllocatePool(NonPagedPool, sizeof(PAGED_LOOKASIDE_LIST));

ExInitializePagedLookasideList(g_pPagedLookasideList, NULL, NULL, 0, sizeof(CLIENTEVENTRECEIVECONTEXT), 'tdis', 0);

InitializeListHead(&g_ClientEventReceiveListHead);

.........

.....

......

.....

pBlockFromPagedLookasideList = ExAllocateFromPagedLookasideList(g_pPagedLookasideList);

memset(pBlockFromPagedLookasideList, 0, sizeof(CLIENTEVENTRECEIVECONTEXT));

InsertHeadList(&g_ClientEventReceiveListHead, &pBlockFromPagedLookasideList->ListEntry);

// ñîõðàíÿåì îðèãèíàë ôóíêöèè â ñòðóêòóðå

pBlockFromPagedLookasideList->EventHandler = ((PTDI_REQUEST_KERNEL_SET_EVENT)&irpStack->Parameters)->EventHandler;

// ñîõðàíÿåì îðèãèíàë êîíòåêñòà â ñòðóêòóðå

pBlockFromPagedLookasideList->EventContext = ((PTDI_REQUEST_KERNEL_SET_EVENT)&irpStack->Parameters)->EventContext;

((PTDI_REQUEST_KERNEL_SET_EVENT)&irpStack->Parameters)->EventHandler = HookedClientEventReceive;

((PTDI_REQUEST_KERNEL_SET_EVENT)&irpStack->Parameters)->EventContext = pBlockFromPagedLookasideList;