Microsoft KB Archive/313580

= BUG: PC Card of Type Parallel Does Not Obtain Input/Output Resources =

Article ID: 313580

Article Last Modified on 7/22/2004

-

APPLIES TO


 * Microsoft Windows XP Professional
 * Microsoft Windows XP Home Edition

-



This article was previously published under Q313580



SYMPTOMS
A driver for a PC Card with function code Parallel does not receive any resources in its IRP_MN_START_DEVICE under Windows XP. This typically causes the Plug and Play (PNP) input/output request packet (IRP) handler to fail IRP_MN_START_DEVICE. The result is that the device manager marks the device with a yellow exclamation mark and error code 10.

However, if the driver succeeds IRP_MN_START_DEVICE anyway, the device may appear in the device manager as successfully started but its associated resources are missing or incomplete.



CAUSE
Windows XP PCMCIA bus driver marks as invalid any configuration tuple that belongs to a device with function ID tuple (21) code 3 (Parallel) if it does not have only two I/O ports ranges, or if the configuration tuple requests any memory range.

For example, a parallel port that is implemented into a PC Card that requests common I/O ports ranges for LPT1, LPT2 or LPT3 finds all its configuration tuples marked as invalid. This causes the system to not assign any resource to the device. The driver finds that IRP_MN_START_DEVICE has an empty resource list and the driver typically fails this IRP.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows XP. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

322389 How to Obtain the Latest Windows XP Service Pack

To work around this behavior, override configurations that are marked invalid by means of an IOConfig directive into a LogConfig section in the device INF. After you do this, you can add a dummy I/O port range to the overridden configuration to satisfy the requirement for having only two I/O port ranges.

The following sample code is a LogConfig section for a card that required LPT1 range and has been corrected to include a dummy I/O port range at 0778-077F: [MyDeviceInstallSection] ...

[MyDeviceInstallSection.LogConfigOverride] LogConfig=MyLogConfig ...

[MyLogConfig] ConfigPriority=NORMAL IOConfig=378-37F(3ff::) IOConfig=778-77F(ffff::)

NOTE: This example assumes that the parallel port has a 10-bit decoder, which is the worst case. For the dummy range, although a 16-bit decoder has been set, no decoder exists.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows XP Service Pack 1.



MORE INFORMATION
Following is a common example of tuples that may experience the problem. A PC Card has a function ID tuple (21h) evaluated to 3 so the device is Parallel. Among the other tuples, the function ID will be as follows: 21h TPL_CODE=CISTPL_FUNCID 02h TPL_LINK 03h TPLFID_FUNCTION 00h

Additional query words: kbBaseOS

Keywords: kbbug kbfix kboswin2000fix kbwinxpsp1fix KB313580

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.