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:

ResourceOffice comparisonWhat it is
IRQThe phone line to the bossThe way the device gets the CPU's attention
I/O rangeThe small control panelA short list of "port" addresses the CPU uses to talk to the device
Memory rangeThe big desk drawerA block of addresses where the device's registers or memory appear
DMA channelA delivery lane straight to the warehouseA 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 seeMeaning
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 -2147483648The device uses MSI or MSI-X (message-signalled interrupts, Chapter 4, Section 3.3)
The same number used twiceTwo 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:

StyleHow DMA was set upShown 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 chipsetYes, 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 channelsNo 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 portClassic use
0060 and 0064Keyboard controller
03F8 to 03FFFirst serial port (COM1)
0CF8 to 0CFFThe 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 jumpersThe PnP manager assigns resources by itself
Fixed, scarce IRQ numbersMany interrupts, or MSI with no shared lines
Conflict = brokenSharing is allowed for PCI; ranges are managed so they do not overlap
Manual fixingLittle 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:

  1. Update the BIOS/UEFI (Chapter 5) and the chipset driver.
  2. Remove one of the devices that competes for the resource.
  3. 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

TermPlain meaning
ResourceSomething a device needs from the PC to work
IRQNumber by which a device gets the CPU's attention
Negative IRQ numberThe device uses MSI; normal and healthy
Shared IRQTwo devices on one line; fine for PCI
DMA channelOld numbered lane; modern devices use bus-master DMA with no channel
I/O rangePorts used with IN and OUT; written in hex
Memory rangeAddresses that lead to the device (MMIO)
BARA device's request for a window of addresses
Resource conflictTwo devices needing the same resource; rare today
Code 12Not enough free resources
Use automatic settingsThe PnP manager chooses; leave it ticked