Microsoft KB Archive/321467

= BUG: Swenum.sys PortCls devices do not work correctly in Microsoft Windows 98 Second Edition =

Article ID: 321467

Article Last Modified on 9/27/2005

-

APPLIES TO


 * Microsoft Windows 98 Second Edition
 * Microsoft Windows 98 Driver Development Kit (DDK)

-



This article was previously published under Q321467





SYMPTOMS
When you install certain multimedia devices that use the Swenum.sys driver as their bus driver and as their enumerator, the multimedia devices may not start or may not operate correctly. The following problems may occur:
 * The device may not appear in Multimedia Control Panel.
 * The problem may occur if you right-click the .inf device information file, and then you click Install.

This problem does not occur if you use Add Hardware in Control Panel to install the device.



CAUSE
The problems may occur because of the different ways that you can perform the installation. You can perform the installation in the following ways:
 * If you right-click the .inf device information file, and then you click Install, the Swenum.sys driver is used as the bus driver and as the enumerator.
 * If you use Add Hardware in Control Panel, the device becomes a root-enumerated device, and the Swenum.sys driver is not used as the enumerator.

A race condition exists between the Portcls.sys port class system driver and the Swenum.sys driver. That is why the problem occurs.

The Portcls.sys port class system driver receives the IRP_MN_START_DEVICE request and then synchronously sends the IRP_MN_START_DEVICE request to the Swenum.sys driver. The START IRP request must return before the Portcls.sys port class system driver marks the device as &quot;started.&quot; When the Swenum.sys driver receives the IRP_MN_START_DEVICE request, the Swenum.sys driver finishes any pending I/O. This causes the Portcls.sys port class system driver to receive at least one IRP_MJ_CREATE IRP request. On receipt of the IRP_MJ_CREATE IRP request, the Portcls.sys port class system driver determines that the device is not yet started because the START IRP request has not yet completed. Therefore, the IRP_MJ_CREATE request fails.



RESOLUTION
There is no known workaround.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the &quot;Applies to&quot; section.

Keywords: kbtshoot kbbug kbqfe kbddk kbhotfixserver KB321467

-

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

© Microsoft Corporation. All rights reserved.