DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 313580 - Last Review: July 22, 2004 - Revision: 1.1

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  (http://support.microsoft.com/kb/322389/EN-US/ ) 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 

APPLIES TO
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
Keywords: 
kbbug kbfix kboswin2000fix kbwinxpsp1fix KB313580
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support