The Big Picture: What a Device Borrows from the PC
To work, a device needs a few things from the computer, just as a new office worker needs a desk, a phone line, and a mailbox. In PC terms, these borrowed things are resources:
| Resource | Office comparison | What it is |
|---|---|---|
| IRQ | The phone line to the boss | The way the device gets the CPU's attention |
| I/O range | The small control panel | A short list of "port" addresses the CPU uses to talk to the device |
| Memory range | The big desk drawer | A block of addresses where the device's registers or memory appear |
| DMA channel | A delivery lane straight to the warehouse | A way to move data without the CPU copying it |
All four came from Chapter 4: interrupts in Section 3, DMA in Section 4, ports and memory-mapped I/O in Section 6. This section shows where you can see them in Windows.
Who hands out resources? Not you. The PnP manager (Section 1) works out what each device asks for, and gives each one a share that does not clash with the others. The device's driver then uses those resources.
Where to look. In Device Manager:
- View → Resources by type, to see the four lists with each device listed next to its resource.
- Properties → Resources tab for one device (Section 9.5).
8.1 IRQ (Interrupt Request Line) Assignment
What it is: An IRQ (Interrupt ReQuest) is the number a device uses when it taps the CPU on the shoulder and says "look at me" (Chapter 4, Section 3). The old classic PC had only 15 usable numbers, so devices often had to share.
In Device Manager: Choose View → Resources by type and expand Interrupt request (IRQ).
Interrupt request (IRQ)
├─ (ISA) 0 System timer
├─ (ISA) 1 Standard PS/2 Keyboard
├─ (ISA) 8 System CMOS/real time clock
├─ (ISA) 12 Microsoft PS/2 Mouse
├─ (PCI) 16 High Definition Audio Controller
├─ (PCI) 19 Standard SATA AHCI Controller
├─ -2147483648 Standard NVM Express Controller
├─ -2147483647 Intel(R) Wireless-AC 9560
└─ ...
(This is an example. Your numbers and names will differ.)
Reading the list:
| What you see | Meaning |
|---|---|
| Small positive number, with (ISA) | The old-style interrupt line; classic devices such as the keyboard (IRQ 1) |
| Small positive number, with (PCI) | A line from a PCI device, handled by the I/O APIC (Chapter 4, Section 3.2) |
| A big negative number such as -2147483648 | The device uses MSI or MSI-X (message-signalled interrupts, Chapter 4, Section 3.3) |
| The same number used twice | Two devices share a line. This is allowed for PCI devices; it is not a fault by itself |
Why negative? Windows gives MSI interrupts numbers starting at a very large negative number. The negative number is only a label. It does not mean an error. Modern fast devices, such as NVMe SSDs and network cards, use MSI, so a healthy PC shows many negative entries.
You cannot normally change these in Windows 10/11. The PnP manager picks them, and the Resources tab usually shows them greyed out.
8.2 DMA Channel Assignment
What it is: DMA (Direct Memory Access) lets a device move data to or from RAM without the CPU touching every byte (Chapter 4, Section 4).
Old style vs new style. This distinction matters here:
| Style | How DMA was set up | Shown in Device Manager? |
|---|---|---|
| Old (ISA DMA) | A small number of fixed DMA channels (for example channel 2 for the floppy disk) were given out by the chipset | Yes, in the Direct memory access (DMA) list |
| Modern (bus-master DMA) | The device itself acts as a "bus master" and reads or writes RAM using addresses the driver gives it. There are no numbered channels | No channel number |
On a modern PC, the Direct memory access (DMA) list in Resources by type is often empty or very short (it may contain only an old "Direct memory access controller" entry). That is normal. Your SSD, network card and graphics card still use DMA, but without a channel number. Windows keeps these safe with the IOMMU (Chapter 4, Section 4.5).
Why it matters: An empty DMA list does not mean DMA is turned off. It means modern devices use bus-master DMA, which does not need a numbered channel.
8.3 I/O Address Ranges
What it is: An I/O range (port range) is a set of numbers in a special address space used by the x86 IN and OUT instructions. Each old-style device has a block (Chapter 4, Section 6.3).
In Device Manager: Expand Input/output (IO) in Resources by type.
Input/output (IO)
├─ [0060 - 0060] Standard PS/2 Keyboard
├─ [0064 - 0064] Standard PS/2 Keyboard
├─ [03F8 - 03FF] Communications Port (COM1)
├─ [0CF8 - 0CFF] PCI Express Root Complex
└─ [E000 - EFFF] Intel(R) UHD Graphics
(Example only. Your values will differ.)
Reading it: [0060 - 0060] means the device uses ports 0060 to 0060 (one port). These numbers are in hex (Section 3). Each device must have its own block, with no overlap.
| Typical port | Classic use |
|---|---|
| 0060 and 0064 | Keyboard controller |
| 03F8 to 03FF | First serial port (COM1) |
| 0CF8 to 0CFF | The old way of reading the PCI configuration area |
Modern devices barely use ports. They prefer memory ranges (next).
8.4 Memory Address Ranges
What it is: A memory range is a block of addresses that does not point at real RAM. Instead, reads and writes to those addresses go to the device (this is MMIO, Chapter 4, Section 6). The device's registers, or its own memory (like a graphics card's video memory window), are placed there.
A device's BARs (Base Address Registers) tell Windows how big a window the device wants. The PnP manager chooses where to put it (Chapter 4, Section 6).
In Device Manager: Expand Memory in Resources by type.
Memory
├─ [00000000000A0000 - 00000000000BFFFF] PCI Express Root Complex
├─ [00000000FEE00000 - 00000000FEEFFFFF] Motherboard resources
├─ [00000000FB000000 - 00000000FBFFFFFF] NVIDIA graphics card
└─ ...
(Example only. Real entries are longer.)
What you will notice:
- There are many entries; this is normal.
- A graphics card owns a large block (hundreds of megabytes or more), because it needs a big window.
- Some blocks belong to Motherboard resources: ranges the firmware reserves for system chips, such as the interrupt controller. No driver may use them.
- Memory ranges are different from RAM size. They are addresses, not storage. A 16 GB PC may show windows in the very high address range.
8.5 Resource Conflicts (Legacy vs Modern PnP Allocation)
What it is: A resource conflict happens when two devices want the same resource, and the system cannot give them both.
The old days (legacy). On ISA cards (early PCs), you set small switches ("jumpers") on each card to choose its IRQ and port. If you set two cards the same, neither worked. Installing a new card meant hunting for a free IRQ by hand.
Modern PnP allocation. Today:
| Old (legacy) | Modern PnP |
|---|---|
| You set jumpers | The PnP manager assigns resources by itself |
| Fixed, scarce IRQ numbers | Many interrupts, or MSI with no shared lines |
| Conflict = broken | Sharing is allowed for PCI; ranges are managed so they do not overlap |
| Manual fixing | Little to nothing for the user to do |
Because of this, resource conflicts are very rare on modern PCs. If Windows truly cannot find a free resource, a device shows Code 12 ("This device cannot find enough free resources that it can use"). Typical fixes:
- Update the BIOS/UEFI (Chapter 5) and the chipset driver.
- Remove one of the devices that competes for the resource.
- Check BIOS/UEFI settings for something like "Above 4G decoding" (only change settings you understand and can reverse).
Legacy "Use automatic settings". On the Resources tab of a few old devices there is a tick box "Use automatic settings". For almost every modern device it is ticked and greyed out, and the PnP manager chooses. Do not try to override it.
Resources by connection. A useful trick: View → Resources by connection draws resources in the tree form. You can see that a block of memory used by a card sits under its bus. This helps you understand who "owns" which block.
Check for a conflict in System Information. Open msinfo32 and go to Hardware Resources → Conflicts/Sharing. A healthy PC lists sharing (devices on the same interrupt line), but no real conflicts. The page can look a little different on your version.
Summary
| Term | Plain meaning |
|---|---|
| Resource | Something a device needs from the PC to work |
| IRQ | Number by which a device gets the CPU's attention |
| Negative IRQ number | The device uses MSI; normal and healthy |
| Shared IRQ | Two devices on one line; fine for PCI |
| DMA channel | Old numbered lane; modern devices use bus-master DMA with no channel |
| I/O range | Ports used with IN and OUT; written in hex |
| Memory range | Addresses that lead to the device (MMIO) |
| BAR | A device's request for a window of addresses |
| Resource conflict | Two devices needing the same resource; rare today |
| Code 12 | Not enough free resources |
| Use automatic settings | The PnP manager chooses; leave it ticked |