PCMCIA problems introduced with XP SP1

Hi NTDEV,

We’re experiencing a problem with a WDM driver, in that the underlying (bus)
driver returns STATUS_INSUFFICIENT_RESOURCES from IRP_MN_START_DEVICE.

This leaves us beached, with no way to proceed. It could well be a genuine
resource problem, but the problem only occurs when running XP after adding
SP1. Even if this is a real resource issue, which resource is exhausted? and
how do we resolve it?

It seems to be a problem with XP SP1 (and later) and outside our scope to
fix.

Our device is a PCMCIA card. The problem occurs on a number of machines
without particularly heavy resource needs. Our driver has been running
trouble free since Windows 2000.

We are testing with the Windows 2000 binary (not rebuilt with the latest
DDK), so that is one avenue of investigation, but I think that is a quite
unrelated open issue, given that the driver runs fine on vanilla XP.

My best guess is that the guys at Redmond messed up the PCI bus driver in a
hot-fix somewere before SP1.

But maybe they suddenly got really uptight about PCMCIA card configuration
spec conformance in the CIS and our card has transgressed in some subtle
way? Or maybe Microsoft changed the support rules for PCMCIA cards, and we
missed their warning (posted on alpha centauri)? Or maybe we broke an
undocumented INF rule and it has come back to bite us?

We changed the card CIS to indicate that it would share its interrupt since
it appeared that might be a problem… but no joy there. The only other
resources it indicates are two memory windows, and this has been working
correctly on the past, and also on Li**x (dare I mention that word here?)

Is anybody having similar problems, and do they have an explanation and
perhaps a workaround?

If not, does anybody have a good idea of how we can proceed from here?

Many thanks,

Jack.

I’ve seen some silliness with PCMCIA resources on XP SP2. That’s not to
rule out SP1, however. I just didn’t look there. We have a card that uses
LogConfig overrides to select from a list of possible address/IRQ
combinations in order to support some third-party legacy software. I have
seen XP SP2 pass the driver a base address range but no IRQ.

In the past, Windows did the right thing and skipped to the next override if
either the address or the IRQ were unavailable. Now, it appears to be
finding the address available and using that override, even though the IRQ
is unavailable. Pretty worthless.

I worked around the problem by adding more choices to the IRQConfig line for
each override configuration. In my case, it turns out that the address
choice is more important than the IRQ, so I could get away with a
“non-standard” IRQ.

Before any “Fix your software” flames come, let me stress that it’s not my
software. It’s certain customers insisting that they need the device to use
specific resources.

Chris Myers

-----Original Message-----
From: Jack Heeley [mailto:xxxxx@chess.nl]
Sent: Friday, January 14, 2005 5:24 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] PCMCIA problems introduced with XP SP1

Hi NTDEV,

We’re experiencing a problem with a WDM driver, in that the
underlying (bus) driver returns STATUS_INSUFFICIENT_RESOURCES
from IRP_MN_START_DEVICE.

This leaves us beached, with no way to proceed. It could well
be a genuine resource problem, but the problem only occurs
when running XP after adding SP1. Even if this is a real
resource issue, which resource is exhausted? and how do we resolve it?

It seems to be a problem with XP SP1 (and later) and outside
our scope to fix.

Our device is a PCMCIA card. The problem occurs on a number of
machines without particularly heavy resource needs. Our driver
has been running trouble free since Windows 2000.

We are testing with the Windows 2000 binary (not rebuilt with
the latest DDK), so that is one avenue of investigation, but I
think that is a quite unrelated open issue, given that the
driver runs fine on vanilla XP.

My best guess is that the guys at Redmond messed up the PCI
bus driver in a hot-fix somewere before SP1.

But maybe they suddenly got really uptight about PCMCIA card
configuration spec conformance in the CIS and our card has
transgressed in some subtle way? Or maybe Microsoft changed
the support rules for PCMCIA cards, and we missed their
warning (posted on alpha centauri)? Or maybe we broke an
undocumented INF rule and it has come back to bite us?

We changed the card CIS to indicate that it would share its
interrupt since it appeared that might be a problem… but no
joy there. The only other resources it indicates are two
memory windows, and this has been working correctly on the
past, and also on Li**x (dare I mention that word here?)

Is anybody having similar problems, and do they have an
explanation and perhaps a workaround?

If not, does anybody have a good idea of how we can proceed from here?

Many thanks,

Jack.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as:
xxxxx@quatech.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

RE: [ntdev] PCMCIA problems introduced with XP SP1Hi Chris,

I’m giving remote help for a driver that I built for Windows 2000 four years
ago, and can hardly remember it but…

The card accepts any IRQ and has two memory windows, but it doesn’t requires
specific bus address ranges or relationships between IRQ and bus address. So
fairly simple one might think, no overrides. Usually the driver is quite
happy to take whatever it gets, but in this case it’s given a loud
raspberry.

I was toying with the idea that maybe in the INF or CIS there’s something
(or something missing) that constrains the memory window choice to < 1MB,
and on SP1 that resource just ran out for us.

But reading between the lines it occurs to me that I could still LOOK at the
IRP returned, and check if ANY resources have been assigned? I just assumed
bad status, bad luck, no more info and didn’t look further. So I’ll put my
‘laddie’ on to that possibility now (I’ve giving remote help).

Jack.

“Chris Myers” wrote in message news:xxxxx@ntdev…
I’ve seen some silliness with PCMCIA resources on XP SP2. That’s not to
rule out SP1, however. I just didn’t look there. We have a card that uses
LogConfig overrides to select from a list of possible address/IRQ
combinations in order to support some third-party legacy software. I have
seen XP SP2 pass the driver a base address range but no IRQ.
In the past, Windows did the right thing and skipped to the next override if
either the address or the IRQ were unavailable. Now, it appears to be
finding the address available and using that override, even though the IRQ
is unavailable. Pretty worthless.
I worked around the problem by adding more choices to the IRQConfig line for
each override configuration. In my case, it turns out that the address
choice is more important than the IRQ, so I could get away with a
“non-standard” IRQ.
Before any “Fix your software” flames come, let me stress that it’s not my
software. It’s certain customers insisting that they need the device to use
specific resources.
Chris Myers

>-----Original Message-----
>From: Jack Heeley [mailto:xxxxx@chess.nl]
>Sent: Friday, January 14, 2005 5:24 AM
>To: Windows System Software Devs Interest List
>Subject: [ntdev] PCMCIA problems introduced with XP SP1
>
>Hi NTDEV,
>
>We’re experiencing a problem with a WDM driver, in that the
>underlying (bus) driver returns STATUS_INSUFFICIENT_RESOURCES
>from IRP_MN_START_DEVICE.
>
>This leaves us beached, with no way to proceed. It could well
>be a genuine resource problem, but the problem only occurs
>when running XP after adding SP1. Even if this is a real
>resource issue, which resource is exhausted? and how do we resolve it?
>
>It seems to be a problem with XP SP1 (and later) and outside
>our scope to fix.
>
>Our device is a PCMCIA card. The problem occurs on a number of
>machines without particularly heavy resource needs. Our driver
>has been running trouble free since Windows 2000.
>
>We are testing with the Windows 2000 binary (not rebuilt with
>the latest DDK), so that is one avenue of investigation, but I
>think that is a quite unrelated open issue, given that the
>driver runs fine on vanilla XP.
>
>My best guess is that the guys at Redmond messed up the PCI
>bus driver in a hot-fix somewere before SP1.
>
>But maybe they suddenly got really uptight about PCMCIA card
>configuration spec conformance in the CIS and our card has
>transgressed in some subtle way? Or maybe Microsoft changed
>the support rules for PCMCIA cards, and we missed their
>warning (posted on alpha centauri)? Or maybe we broke an
>undocumented INF rule and it has come back to bite us?
>
>We changed the card CIS to indicate that it would share its
>interrupt since it appeared that might be a problem… but no
>joy there. The only other resources it indicates are two
>memory windows, and this has been working correctly on the
>past, and also on Li**x (dare I mention that word here?)
>
>Is anybody having similar problems, and do they have an
>explanation and perhaps a workaround?
>
>If not, does anybody have a good idea of how we can proceed from here?
>
>Many thanks,
>
>
>Jack.
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as:
>xxxxx@quatech.com To unsubscribe send a blank email to
>xxxxx@lists.osr.com
>