Re: Driver getting Page Fault 0Eh Fault=0000, only when 2 PCI cards present in system

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Peter Wieland [MSFT] (peterwie_at_online.microsoft.com)
Date: 05/12/04


Date: Wed, 12 May 2004 10:21:23 -0700

Is there some magic to deciphering SoftICE stack traces? IoBuildPartialMdl
doesn't call IoReportResourceUsage as far as i'm aware.

-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 


Relevant Pages