Re: Driver getting Page Fault 0Eh Fault=0000, only when 2 PCI cards present in system
From: Mark Roddy (markr_at_hollistech.com)
Date: 05/13/04
- Next message: Spiro Trikaliotis: "Re: Oney's Book, HandleQueryStop(): Why is there no race condition?"
- Previous message: Phoenix: "Re: Can you install without Add/Remove Hardware?"
- In reply to: Curtis Rubel: "Re: Driver getting Page Fault 0Eh Fault=0000, only when 2 PCI cards present in system"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 13 May 2004 06:45:49 -0400
There certainly are stack limits that a poorly designed function can exceed,
however you will tend to get a different bugcheck. Also the stack will be
skronk. Your stack wasn't skronk, it just seemed to have the wrong symbols.
My guess is that you have some sort of overflow problem and that by moving
local variables around you have managed to mask it, for now.
-- ===================== Mark Roddy Windows 2003/XP/2000 Consulting Hollis Technology Solutions 603-321-1032 www.hollistech.com markr@hollistech.com "Curtis Rubel" <crubel@compro.net> wrote in message news:5ABE2469-C318-4D56-A2FB-60501369C2BC@microsoft.com... > Softicie hasn't misled to me up to this point, > but anything is possible. > > I'll see if I can find another PC to use and setup > Wndbg, maybe it will give us some better clues. > I haven't used it since training so it may take a > few days to get it up and running properly. > It would make the recovering from the crashes > alittle easier as its corrupting my disk even > though I have write-caching disabled in the > disk device settings. > > As soon as I do, if I have not got things 100% > working I'll submit an update. I'll try > to remember in the future to only submit > Wndbg traces. > > An update though, I have made some progress by > simply moving most of the initialization code out of > the StartHandler into its own subroutine. I am not > sure why that would have any affect but it seems to > for some reason. > > Is there a size issue on the size of a subroutine in a driver? > I haven't heard of any but... > > At any rate I am getting closer. I have 95% of the code back > into the driver and its still loading ok on both PCI cards with > the start handler split apart. > > Thanks for the reply, > > Curtis Rubel > > > > > > > > ----- Peter Wieland [MSFT] wrote: ----- > > Is there some magic to deciphering SoftICE stack traces? IoBuildPartialMdl > doesn't call IoReportResourceUsage as far as i'm aware. > > Maybe someone from Compuware can answer that question for you... > > > > -p > > -- > This posting is provided "AS IS" with no warranties, and confers no rights. > "Curtis Rubel" <crubel@compro.net> wrote in message > news:a90c8db8.0405120442.48e4d34a@posting.google.com... > > Hello again, > >> I now have a stack dump to add to the description of the problem > >> FrameEBP RetEIP Symbol > > F78DEA28 804EB3C1 EPRM!HandleStartDevice > > [driver.cpp#738] > > F78DEA5C 80576500 NTOSKRNL!IoBuildPartialMdl+00E3 > > F78DEA88 8057656F NTOSKRNL!IoReportResourceUsage+7814 > > F78DEAC8 804F1B92 NTOSKRNL!IoReportResourceUsage+7883 > > F78DEAE4 80575D53 NTOSKRNL!IoReportTargetDeviceChangeAsynchronis+04BE > > F78DED2C 80576190 NTOSKRNL!IoReportResourceUsage+7067 > > F78DED54 804F22E0 NTOSKRNL!IoReportResourceUsage+74A4 > > F78DED7C 80528545 NTOSKRNL!IoReportTargetDeviceChangeAsynchronis+0C0C > > F78DEDAC 805B05C6 NTOSKRNL!ExQueueWorkItem+0191 > > F78DEDDC 80534DE6 NTOSKRNL!PsRemoveCreateThreadNotifyRoutine+01C0 > > 00000000 00000000 NTOSKRNL!KiDispatchInterrupt+0706 > >> Thanks, > >>>>> crubel@compro.net (Curtis Rubel) wrote in message > > news:<a90c8db8.0405111549.12606db9@posting.google.com>... > >> Hello everyone, > >>>> I have a Win2k/XP device driver that appears to have found a problem > >> in the OS's Paging support. With only one of our PCI cards installed > >> the driver loads and runs ok. Driver verifier shows no errors, loading, > >> unloading or running the test suite that exercises the user API and > >> driver using all available calls. Even ran this driver with /PAE with > >> no problems. > >>>> However, when I install the 2nd PCI card the system gets a Page Fault > >> 0EH Fault=0000 when attempting jump to my start device routine. The > >> add device routine finishes successfully. > >>>> The PCI card is a memory card, that has 64MB of memory, a 256K register > >> area in Memory Space and also uses 1 PCI interrupt. The memory resources > >> are all mapped into the driver via: > >>>> pDevExt->local_sram_ptr = MmMapIoSpace > >> (pPartialDescriptor->u.Memory.Start, > >> pPartialDescriptor->u.Memory.Length, > >> MmNonCached); > >>>> calls. I also setup a 1MB CommonBuffer for DMA transfers to/from the > >> card. > >>>> The first PCI devices finishes loading/init. everything OK. The second > >> PCI > >> card starts to initialize, the Add Device routine runs ok, the PNP > >> manager > >> then issues the IRP_MN_START_DEVICE, which I decode and then call my > >> start device handler. When the system jumps to my Start device hander > >> I get Page Fault 0Eh Fault=0000 apparantly sometime before it actually > >> reaches my Start Device function as I have a breakpoint set right at > >> the beginning of it and it never makes it there. > >>>> Does WinXP support mapping multiple PCI devices with large onboard > >> memory into your driver? > >>>> Is there something I am missing that needs to be configure in the > >> system to run large memory PCI devices? > >>>> I have tried setting SystemPages to 0xffffffff as some posts are > >> suggesting > >> but that has no affect on this problem. > >>>> Either PCI card runs fine standalone. > >>>> Any suggestions would be appreciated. > >>>> Curtis Rubel > >> crubel@compro.net > > >
- Next message: Spiro Trikaliotis: "Re: Oney's Book, HandleQueryStop(): Why is there no race condition?"
- Previous message: Phoenix: "Re: Can you install without Add/Remove Hardware?"
- In reply to: Curtis Rubel: "Re: Driver getting Page Fault 0Eh Fault=0000, only when 2 PCI cards present in system"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|