デバイスマネージャーのコード12とは?「使用できる空きリソースが不足しています」をGPU・PCIe・BIOSから切り分ける
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
「空きリソース不足」はRAMやVRAMの容量ではなく、PCIeなどへの割り当ての話です
出典:Microsoft公式「Code 12 – CM_PROB_NORMAL_CONFLICT」「Introduction to Hardware Resources」「PCI Express expansion chassis のCode 12・Code 31」「Hyper-VのGPU DDA」「Code 43 – CM_PROB_FAILED_POST_START」「MBR/GPTとWindows Setup」、ASUS「ROG Z790シリーズ BIOSマニュアル」「PCIE Interface Operation Mode Confirmation」
グラボやキャプチャーボード、10GbEのLANカードなどのPCI Express(PCIe)機器を増設した直後に、デバイスマネージャーで黄色い「!」が付き、プロパティに「このデバイスが使用できる空きリソースが不足しています(コード12)」と出ることがあります。「空きリソース」という言葉から、メモリが足りない、VRAMが足りない、電源が足りないと考えがちですが、どれも的を外れています。
Microsoftはコード12をCM_PROB_NORMAL_CONFLICTと定義し、2つのデバイスに同じI/Oポート・割り込み・DMAチャネルが割り当てられた場合と、BIOSがデバイスに十分なリソースを割り当てなかった場合を原因に挙げています。ここでいうリソースはRAMやVRAMの容量ではなく、Windowsがデバイスごとに割り当てる通信用の枠で、RAMを増設しても解消の根拠にはなりません。
コード12は故障の診断結果でもありません。増設した機器を外す、スロットを替える、BIOS設定を確認する、といった戻しやすい手順から順に試します。コード43とは見る場所が違い、ドライバーの再導入を繰り返す前にPCIe構成とBIOSを確かめる価値があります。
目次
意味コード12は「デバイスを動かす枠をWindowsが割り当てられない」状態
Microsoft Learnのドライバー資料では、コード12の表示メッセージは「This device cannot find enough free resources that it can use. (Code 12)」で、続けて「If you want to use this device, you will need to disable one of the other devices on this system.」と案内されています。日本語のWindowsでは表示の言い回しが少し異なることがあるため、番号の「コード 12」で見分けてください。
資料が挙げる原因は2つです。1つは、2台のデバイスに同じI/Oポート、同じ割り込み、同じDMAチャネルが割り当てられたこと(BIOS・OS・その組み合わせのどれかが割り当てたもの)。もう1つは、BIOSがデバイスに十分なリソースを割り当てなかったことで、資料の例では、不正なマルチプロセッサ仕様(MPS)テーブルのせいでUSBコントローラーに割り込みが割り当てられないケースが挙がっています。
ディスプレイアダプターに「NVIDIA GeForce RTX …」や「AMD Radeon RX …」と名前が出ていても、プロパティがコード12のことがあります。WindowsがPCIeデバイスとして列挙はできていて、動かすための枠を確保できていない状態と読めます。ただし、これはGPUが壊れていないという意味ではないので、故障の有無は別構成での比較で確かめます。
誤解「空きリソース」はRAMやVRAMの空き容量ではない
システムのハードウェアリソースとは、I/Oポート、割り込みベクター、DMAチャネル、その他の通信経路のうち、接続された各デバイスに割り当てなければならないものを指します。タスクマネージャーで見るメモリ使用量とは別の概念です。
このため、RAMが32GB空いていても、PCIeデバイスに割り当てる枠が足りなければコード12は出ます。逆に、コード12が出たからといって、メモリ増設やGPUの買い替えで解決する根拠はありません。購入を考える前に、構成の切り分けを先に行ってください。
PCIe現代のPCでは、PCIeブリッジやMMIOの割り当ても関わりうる
昔のPCではIRQの重複が典型例でしたが、現在のPCIeベースのPCでは、リソースの割り当ての大半をWindowsとUEFI/BIOSが自動で行います。公式資料から、PCIeの構成が原因になる例が2つ読み取れます。
ここから、PCIeカードを何枚も載せた構成や、GPU・NVMe・キャプチャーボードを同時に増設した直後に出たコード12では、アドレス空間まわりのBIOS設定も確認候補になります。
違いコード12とコード43は、見る場所が逆
Microsoftの定義では、コード43はドライバーのひとつが「デバイスが失敗した」とOSに報告した状態です。コード12は、デバイスを動かすためのリソースを確保できない状態です。同じ黄色い「!」でも、出発点が違います。
| 項目 | コード12 | コード43 |
|---|---|---|
| 内部名 | CM_PROB_NORMAL_CONFLICT | CM_PROB_FAILED_POST_START |
| 状態 | リソースの競合、またはBIOSの割り当て不足 | ドライバーがデバイスの失敗を報告 |
| 先に見る場所 | 直前の増設、PCIeスロット、BIOS設定 | ドライバーの更新・ロールバック・再導入 |
| ドライバー再導入 | 効果が出る根拠は薄い。構成の確認が先 | Microsoftが最初の対処として案内 |
コード43の側はグラボが「コード43」で認識されない原因で、ドライバー、PCIe、補助電源、別PCでの比較の順に整理しています。
起点直前に変えたことで、確認する順番を決める
コード12は結果であって原因名ではないので、「最後に正常だった構成から何が変わったか」が最大の手がかりです。手当たり次第にBIOSを触るより、変更を一つずつ戻すほうが原因を絞れます。
| 直前に起きたこと | 先に疑う場所 | 最初にすること |
|---|---|---|
| PCIeカードやNVMe SSDを増設した | 追加機器とのリソース競合、スロットの共有 | 増設した機器を外して、コード12が消えるか見る |
| グラボを交換した | BIOSの対応状況、アドレス空間の設定 | 旧GPUに戻せるなら戻して比べ、マザーボードのBIOS更新履歴を確認する |
| BIOS更新・CMOSクリアをした | PCIe関連のBIOS設定が初期値に戻った | Above 4G Decodingなどの項目を、記録しておいた以前の設定と比べる |
| 思い当たることがない | Windows Update、BIOS設定、接触 | 下の手順1から順に進める |
手順戻しやすい順に切り分ける
注意CSMは、起動方式を確かめてから触る
Resizable BARのためにCSMを無効にする案内は多いのですが、WindowsがMBR形式のディスクにインストールされている場合は注意が必要です。UEFIモードで起動するには、GPT形式のドライブが必要です。起動方式を確かめずにCSMを無効にすると、Windowsが起動しなくなるおそれがあります。
Windowsの「システム情報」(msinfo32)で「BIOSモード」が「UEFI」になっていることを確認してから、CSMの変更を検討してください。コード12の解消だけが目的なら、ここまで踏み込まずに他の手順を先に済ませるほうが安全です。
古い記事にある「IRQ番号を手動で変える」「リソース設定の自動設定を外す」は、割り当てをWindowsとファームウェアが自動で行う現在のPCIeデバイスでは、最初に行う対処ではありません。MicrosoftのPCI Express拡張シャーシの資料にはレジストリを使う回避策がありますが、資料自体がレジストリの誤った変更で重大な問題が起きうると警告しており、対象も拡張シャーシです。自作PCのGPUに同じ手順をそのまま当てはめないでください。
補足電源不足やGPU故障との関係
電源ユニットの容量不足は、ゲーム負荷時のブラックアウトや突然の再起動、ドライバーの停止といった別の形で現れます。Microsoftの定義上、コード12はリソースの競合・不足なので、コード12と電源不足を同じものとして扱う必要はありません。グラボを交換したときの補助電源の接続やPSU容量の確認は、コード12とは別に行ってください。
GPUの故障かどうかは、別のPCに同じGPUを取り付けて確かめられます。別PCで正常に動けば元のPC側(マザーボード、BIOS、ほかのPCIe機器の組み合わせ)、別PCでもエラーやGPUの認識不良が出るならGPU本体の確認が必要です。別PCで動いたとしても、コード12の原因が元のPCのどこにあるかまでは特定できません。
Q&Aよくある質問
まとめまとめ|コード12は、直前の構成変更を戻すところから切り分ける
コード12は、Windowsがデバイスを動かすためのリソースを割り当てられない状態で、RAMやVRAMの容量不足、電源不足、GPU故障の診断結果ではありません。PCIeカードやNVMe SSDを増設した直後なら、まず追加した機器を外して元の構成に戻します。
その次に、マザーボードのレーン共有、Above 4G Decodingなどのアドレス空間の設定、別スロット・ライザー直挿し・1GPU構成での比較、BIOSの更新履歴の順に進めます。Resizable BARやCSMの変更は、起動方式を確かめてから一つずつ行ってください。



