この記事では、PCI Express 拡張シャーシをコンピューターに接続するときに発生するエラーの回避策について説明します。
元の KB 番号: 942959
重要
この資料には、レジストリの編集方法が記載されています。 レジストリを変更する前に必ずレジストリのバックアップを作成してください。 また、問題が発生した場合に備えて、レジストリの復元方法を理解しておいてください。 レジストリをバックアップ、復元、および変更する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するには、次の資料番号をクリックします。 322756 Windows でレジストリをバックアップおよび復元する方法
現象
以下のシナリオについて考えてみます。
- PCI Express 拡張シャーシは、コンピューターに接続されています。
- PCI Express 拡張シャーシに接続されているデバイスがあります。
このシナリオでは、デバイスが正しく列挙されていないか、正しく起動しない可能性があります。 さらに、デバイス マネージャーでデバイスのプロパティを表示すると、次のいずれかのエラー メッセージが表示される場合があります。
エラー1:
このデバイスは、使用できる十分な空きリソースを見つけることができません。 (コード 12)
エラー 2:
Windows はこのデバイスに必要なドライバーを読み込むことができないため、デバイスが正常に動作していません。 (コード 31)
原因
エラー 1 の原因
この問題は、拡張シャーシの PCI Express ブリッジ デバイスの初期状態が原因で発生する可能性があります。 既定では、PCI Express ブリッジ デバイスを起動またはリセットすると、ブリッジ リソース ウィンドウの制限レジスタの初期値は、ブリッジ リソース ウィンドウのベース レジスタの初期値よりも小さくなります。 この動作は、ブリッジ リソース ウィンドウが無効になっていることを示すものとして解釈されます。 さらに、PCI Express ブリッジ デバイスのブリッジ リソース ウィンドウの要件は生成されません。 そのため、ブリッジ リソース ウィンドウからのリソースを必要とする PCI Express ブリッジ デバイスは列挙に失敗します。 この状況では、コード 12 エラーが生成されます。
エラー 2 の原因
この問題は、オペレーティング システムが周辺機器コンポーネント 相互接続 (PCI) バス番号を使い切った場合に発生する可能性があります。 通常、コンピューター BIOS は PCI Express ブリッジ デバイスの限られたバス番号範囲を構成します。 PCI Express 複合スイッチを含む拡張シャーシと詳細なデバイス階層がコンピューターに追加されると、オペレーティング システムで使用可能なバス番号が不足します。 そのため、システムは拡張シャーシ内のデバイスを起動できません。
回避策
エラー 1 の回避策
警告
レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 こうした問題の修復について、マイクロソフトはいかなる保証もいたしません。 レジストリはユーザー自身の責任において変更してください。 この問題を回避するには、次の手順に従ってください。
[Start] をクリックし、[Start Search] ボックスに「regedit」と入力し、Programs リストの [regedit をクリックします。
管理者パスワードの入力または確認を求められたら、パスワードを入力するか、[ Continue をクリックします。
次のレジストリ サブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\Pci
HackFlags レジストリエントリが存在しない場合は、次の手順を実行します。
- [ Edit メニューの [ New] をポイントし、[ DWORD (32 ビット) 値をクリックします。
- HackFlags と入力し、Enter キーを押します。
- [ Edit メニューの Modify をクリックします。
- [Value data] ボックスに「400」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
HackFlags レジストリエントリが存在する場合は、次の手順に従います。
- HackFlagsを右クリックし、[ Modify] をクリックします。
- [Value data] ボックスに「400」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
エラー 2 の回避策
警告
レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 こうした問題の修復について、マイクロソフトはいかなる保証もいたしません。 レジストリはユーザー自身の責任において変更してください。 この問題を回避するには、次の手順に従ってください。
[Start] をクリックし、[Start Search] ボックスに「regedit」と入力し、Programs リストの [regedit をクリックします。
管理者パスワードの入力または確認を求められたら、パスワードを入力するか、[ Continue をクリックします。
次のレジストリ サブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\Pci
HackFlags レジストリエントリが存在しない場合は、次の手順を実行します。
- [ Edit メニューの [ New] をポイントし、[ DWORD (32 ビット) 値をクリックします。
- HackFlags と入力し、Enter キーを押します。
- [ Edit メニューの Modify をクリックします。
- [値のデータ] ボックスに「200」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
HackFlags レジストリエントリが存在する場合は、次の手順に従います。
- HackFlagsを右クリックし、[ Modify] をクリックします。
- [値のデータ] ボックスに「200」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
エラー 1 とエラー 2 の回避策を同時に有効にする
警告
レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 こうした問題の修復について、マイクロソフトはいかなる保証もいたしません。 レジストリはユーザー自身の責任において変更してください。
[Start] をクリックし、[Start Search] ボックスに「regedit」と入力し、Programs リストの [regedit をクリックします。
管理者パスワードの入力または確認を求められたら、パスワードを入力するか、[ Continue をクリックします。
次のレジストリ サブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\Pci
HackFlags レジストリエントリが存在しない場合は、次の手順を実行します。
- [ Edit メニューの [ New] をポイントし、[ DWORD (32 ビット) 値をクリックします。
- HackFlags と入力し、Enter キーを押します。
- [ Edit メニューの Modify をクリックします。
- [値のデータ] ボックスに「600」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
HackFlags レジストリエントリが存在する場合は、次の手順に従います。
- HackFlagsを右クリックし、[ Modify] をクリックします。
- [値のデータ] ボックスに「600」と入力し、[Base] 領域の [Hexadecimal をクリックし、OK をクリックします。
- レジストリ エディターを終了します。
データ収集
Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。