I have a test bench application for a PCI card that my company
manufactures. Power cycle reboots take much too long in a production
environment, so we’ve been using PCI extender cards with local power
switches. This requires that we refresh the PCI configuration block on
the card after powering up the extender.
The current setup runs on NT, and the driver is built on Jungo’s
KernelDriver toolkit. That kit gave me direct access to the config
block as I enumerated the PCI bus, so I could stash it and refresh it on
command.
Now the manufacturing facility wants to move everything to Win2K and I
can’t find a similar capability in the DDK. I’m sure I’m missing
something obvious. Any clues?
Are you using HalGetBusData(ByOffset)? These calls still exist on W2K and
XP, although they are depreciated. PnP devices are supposed to get config
data differently. But your test rig may not really qualify as a PnP device.
Loren
You can read the PCI configuration information from your driver using the
technique spelled out here:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;253232
Do not use the NT4 method of HalGetBusDataByOffset. This function is
obsolete and does not work consistently on 2000 and later platforms.
–
Bill McKenzie
Compuware Corporation
Watch your IRPs/IRBs/URBs/SRBs/NDIS pkts with our free WDMSniffer tool:
http://frontline.compuware.com/nashua/patches/utility.htm
“Roy M. Silvernail” wrote in message
news:xxxxx@ntdev…
>
> I have a test bench application for a PCI card that my company
> manufactures. Power cycle reboots take much too long in a production
> environment, so we’ve been using PCI extender cards with local power
> switches. This requires that we refresh the PCI configuration block on
> the card after powering up the extender.
>
> The current setup runs on NT, and the driver is built on Jungo’s
> KernelDriver toolkit. That kit gave me direct access to the config
> block as I enumerated the PCI bus, so I could stash it and refresh it on
> command.
>
> Now the manufacturing facility wants to move everything to Win2K and I
> can’t find a similar capability in the DDK. I’m sure I’m missing
> something obvious. Any clues?
>
>
>
I should have said don’t use the old HAL functions in a production
environment. Loren is right, for your test environment they may and
probably would work just fine.
–
Bill McKenzie
Compuware Corporation
Watch your IRPs/IRBs/URBs/SRBs/NDIS pkts with our free WDMSniffer tool:
http://frontline.compuware.com/nashua/patches/utility.htm
“Bill McKenzie” wrote in message
news:xxxxx@ntdev…
>
> You can read the PCI configuration information from your driver using the
> technique spelled out here:
>
> http://support.microsoft.com/default.aspx?scid=kb;EN-US;253232
>
> Do not use the NT4 method of HalGetBusDataByOffset. This function is
> obsolete and does not work consistently on 2000 and later platforms.
>
> –
> Bill McKenzie
> Compuware Corporation
> Watch your IRPs/IRBs/URBs/SRBs/NDIS pkts with our free WDMSniffer tool:
> http://frontline.compuware.com/nashua/patches/utility.htm
>
>
> “Roy M. Silvernail” wrote in message
> news:xxxxx@ntdev…
> >
> > I have a test bench application for a PCI card that my company
> > manufactures. Power cycle reboots take much too long in a production
> > environment, so we’ve been using PCI extender cards with local power
> > switches. This requires that we refresh the PCI configuration block on
> > the card after powering up the extender.
> >
> > The current setup runs on NT, and the driver is built on Jungo’s
> > KernelDriver toolkit. That kit gave me direct access to the config
> > block as I enumerated the PCI bus, so I could stash it and refresh it on
> > command.
> >
> > Now the manufacturing facility wants to move everything to Win2K and I
> > can’t find a similar capability in the DDK. I’m sure I’m missing
> > something obvious. Any clues?
> >
> >
> >
>
>
>
>
Hi,
You can continue using KernelDriver on Win98/2K/XP as well, if you have any
problem to get it work
please contact xxxxx@jungo.com or me directly xxxxx@jungo.com
Best Regards,
Ilya Lifshits.
R&D
Jungo Ltd.
Email: xxxxx@jungo.com
Web: http://www.jungo.com
At 01:40 PM 11/9/2003 -0400, you wrote:
I have a test bench application for a PCI card that my company
manufactures. Power cycle reboots take much too long in a production
environment, so we’ve been using PCI extender cards with local power
switches. This requires that we refresh the PCI configuration block on
the card after powering up the extender.
The current setup runs on NT, and the driver is built on Jungo’s
KernelDriver toolkit. That kit gave me direct access to the config block
as I enumerated the PCI bus, so I could stash it and refresh it on command.
Now the manufacturing facility wants to move everything to Win2K and I
can’t find a similar capability in the DDK. I’m sure I’m missing
something obvious. Any clues?
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@jungo.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
Loren Wilton lwilton-at-earthlink.net |ntdev/1.0-Allow| wrote:
Are you using HalGetBusData(ByOffset)? These calls still exist on W2K and
XP, although they are depreciated. PnP devices are supposed to get config
data differently. But your test rig may not really qualify as a PnP device.
And don’t necessarily work. Been there, ran away screamming in terror.
The only sanctioned way to get that the config space registers is via
special device I/O controls documented in the DDK. You will need to
synthesize IRPs within your driver to carry read/write requests
asynchronously to the O/S bus drivers. It’s icky.
I get that effect under Linux 2.4 using:
pci_save_state(xsp->dev, suspension_buffer);
pci_restore_state(xsp->dev, suspension_buffer);
(I too have a PCI card on an extender with a power switch.)
–
Steve Williams “The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep.”
> Now the manufacturing facility wants to move everything to Win2K and I
can’t find a similar capability in the DDK. I’m sure I’m missing
something obvious. Any clues?
IRP_MN_READ_CONFIG will help.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com