PAGE_FAULT_... and PCI64
From: blu (b.lu_at_fastwebnet.it)
Date: 05/13/04
- Previous message: Bryan S. Burgin [MSFT]: "RE: Installing Signed Ndis IM driver"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 13 May 2004 09:37:41 +0200
Deal all,
I'm writing a WDM driver for PCI 64 bit.
Transfer is done in DMA (Block DMA - Channel 0) and after every DMA transfer
I receive an interrupt.
Hardware sends 32KBytes for each DMA transfer (and this is not
customizable).
When I receive interrupt I copy memory transferred with DMA to an Array
allocated when driver start with
ExAllocatePoolWithTag(NonPagedPool, MEMORY_SIZE, nTag);
where MEMORY_SIZE is the size of a structure (0x8150 bytes)
This way I free DMA memory and I'm ready to receive new data from PCI.
In the meantime an user application send an IOCTL to read the array and put
data to a user process.
This works fine for about 1 or 2 hours then system crashes and I receive
PAGE_FAULT_IN_NONPAGED_AREA
with the following parameters : (<some address>, 0 (= Read), <some address>,
<reserved>).
I cannot use Debugger because using it my driver/application became slow and
I loose data from PCI
(I cannot loose data because user application cannot work if some byte are
missing). I must use free
version of both driver and application and application must run with real
time priority.
a schematic of my application is the following :
User Application
|
|
Array (256 blocks of 0x8150 bytes allocated with ExAllocatePoolWithTag)
|
|
DMA memory
|
|
PCI
Some suggestions ?
Thank a lot,
Blu
- Previous message: Bryan S. Burgin [MSFT]: "RE: Installing Signed Ndis IM driver"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|