xxxxx@yahoo.com/xxxxx@yahoo.com:
so you are in a classic hole digging operation. You have a problem you
need to root cause and resolve: “some problem with an interrupt”. Rather
than investigate and resolve this problem you have instead gotten out
your shovel and attempted to dig your hole deeper by ‘reassigning the
interrupt’, which of course is not actually going to work, but what the
heck. It is also likely that whatever your original interrupt problem
is/was will remain a problem should you actually manage to reassign this
interrupt. And meanwhile a set of new problems have arisen out of your
hole expansion operation.
Here is your clue: PCI devices are pnp devices and their resources are
managed by the PCI bus manager and PnP, not by the function drivers that
use these resources. Storport miniport drivers aren’t even function
drivers, storport is the function driver, your miniport is restricted to
managing your hardware registers in order to shuffle IO requests back
and forth, initialize your firmware, etc.
But you will persist in your hole enlargement operation instead. Good
luck with that.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Thursday, March 20, 2008 12:25 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Problem with resource assignment
Hi all,
I am writing miniport driver. My device have 1 MB of memory resource(PCI
device).
In findadapter routine i am assigning memory resource of 1MB by
IoAssignResource to device.
Reason i am assigning this resource explicitly is that i am facing some
problem with interrupt so i am overriding interrupt in INF file to
install driver Driver installation goes fine with this scenario but
memory range get lost.
When i don’t override interrupt resource then i get memory resource of
1MB in accessrange structure in findadapter routine, but my driver
installation fails with code 10.
In order to overcome this problem i am assigning 1 MB resource to device
explicitly. I am able to assign resource. After assigning resource i am
validating that range by storportvalidaterange routine and it is working
fine, but when i call storportgetdevicebase routine to map this address
to system address space i got NULL as return value from this routine.
Whereas when i don’t override IRQ, am able to get device base for 1 MB
range.
What might be the reason?
Also is there any other way by which i can do device installation
without interrupt resource assigned to the device?
I am not able to understand that when i dont assign any interrupt to
device, driver installation fails with code 10, whereas when i override
interrupt in INF file i am able to install driver but memory range is
lost.
Please elaborate on the same.
Thanks!
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer