Article ID: 942959 - Last Review: June 10, 2011 - Revision: 2.4
Error message when you attach a PCI Express expansion chassis to a computer that is running Windows Vista or Windows Server 2008: "Code 12" or "Code 31"
System TipThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Support for Windows Vista Service Pack 1 (SP1) ends on July 12, 2011. To continue receiving security updates for Windows, make sure you're running Windows Vista with Service Pack 2 (SP2). For more information, refer to this Microsoft web page: Support is ending for some versions of Windows
(http://windows.microsoft.com/en-us/windows/help/end-support-windows-xp-sp2-windows-vista-without-service-packs)
.
Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756
(http://support.microsoft.com/kb/322756/
)
How to back up and restore the registry in Windows
A PCI Express expansion chassis is connected to a computer that is running Windows Vista Service Pack 1 (SP1) or Windows Server 2008.
There are devices connected to the PCI Express expansion chassis.
In this scenario, the devices may not be enumerated correctly, or they may not start correctly. Additionally, you may receive one of the following error messages when you view the device properties in Device Manager:
Error 1:
This device cannot find enough free resources that it can use. (Code 12)
Error 2:
The device is not working properly because Windows cannot load the drivers required for this device. (Code 31)
This issue may occur because of the initial state of the PCI Express bridge device in the expansion chassis. By default, when you start or reset PCI Express bridge devices, the initial values of the limit register for the bridge resource window are less than the initial values of the base register for the bridge resource window. Windows Vista and Windows Server 2008 interpret this behavior as an indication that the bridge resource window is disabled. Additionally, Windows Vista and Windows Server 2008 do not generate any bridge resource window requirements for the PCI Express bridge device. Therefore, any PCI Express bridge device that requires resources from the bridge resource window will fail enumeration. In this situation, a Code 12 error is generated.
This issue may occur if the operating system runs out of Peripheral Component Interconnect (PCI) bus numbers. Typically, the computer BIOS configures a limited bus-number range for PCI Express bridge devices. When an expansion chassis that contains a PCI Express complex switch together with a deep device hierarchy is added to the computer, the operating system runs out of available bus numbers. Therefore, the system cannot start devices in the expansion chassis.
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk. To work around this issue, follow these steps:
Click Start
Collapse this imageExpand this image
, type regedit in the Start Search box, and then click regedit in the Programs list.
Collapse this imageExpand this image
If you are prompted for an administrator password or for confirmation, type the password, or click Continue.
Locate the following registry subkey, and then click it:
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk. To work around this issue, follow these steps:
Click Start
Collapse this imageExpand this image
, type regedit in the Start Search box, and then click regedit in the Programs list.
Collapse this imageExpand this image
If you are prompted for an administrator password or for confirmation, type the password, or click Continue.
Locate the following registry subkey, and then click it:
Enable the workarounds for error 1 and error 2 at the same time
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
Click Start
Collapse this imageExpand this image
, type regedit in the Start Search box, and then click regedit in the Programs list.
Collapse this imageExpand this image
If you are prompted for an administrator password or for confirmation, type the password, or click Continue.
Locate the following registry subkey, and then click it: