CPU scheduling and thread priority
Interrupt affinity policy (DevicePolicy)
Which processors service a device's interrupts, the registry values Microsoft documents, and why the default is recommended
Last updated
Should you change a device's interrupt affinity?
A device's interrupt affinity is the set of processors allowed to service its interrupts. Windows lets a driver or an administrator set a policy for this in the registry, including restricting a device to specific cores. Microsoft recommends using the default policy where it applies, and changing it is a targeted remedy for a measured problem, not a general optimisation.
Registry location and values
DevicePolicy
- Location
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device>\<instance>\Device Parameters\Interrupt Management\Affinity Policy- Value name
DevicePolicy- Type
REG_DWORD- Default
- Set by the driver's installation file, otherwise the machine default (0)
| Value | What it does |
|---|---|
0 | IrqPolicyMachineDefault: no particular processor assignment. |
1 | IrqPolicyAllCloseProcessors: processors close to the device; the same as 3 on systems without NUMA. |
2 | IrqPolicyOneCloseProcessor: one processor close to the device. |
3 | IrqPolicyAllProcessorsInMachine: any processor in the machine. |
4 | IrqPolicySpecifiedProcessors: the processors selected in AssignmentSetOverride. |
5 | IrqPolicySpreadMessagesAcrossAllProcessors: spreads message-signalled interrupts across processors. |
AssignmentSetOverride
- Location
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device>\<instance>\Device Parameters\Interrupt Management\Affinity Policy- Value name
AssignmentSetOverride- Type
REG_BINARY, REG_DWORD or REG_QWORD (a processor bitmask)- Default
- Not set
| Value | What it does |
|---|---|
Bitmask | Each bit selects a logical processor, lowest bit first. Used only when DevicePolicy is 4. |
What Windows actually does with this
When a device raises an interrupt, Windows routes it to a processor, which runs the driver's interrupt service routine and any deferred procedure calls that follow. The affinity policy tells Windows which processors are eligible to do that work. Windows reads the policy from the device's Affinity Policy key and hands it to the driver when the device's resources are assigned, which is why a change only takes effect once the device restarts. Microsoft recommends the default policy where applicable and documents the specified-processors policy for cases where a device's interrupts need to stay on particular cores.
What it affects
Which cores handle one device's interrupts and deferred procedure calls, and therefore which other work that driver competes with. It does not change how much work the driver does.
Is it worth changing?
Keep the default unless you have evidence that a specific device's interrupt handling is the problem, such as LatencyMon showing its driver with high DPC execution times. Even then, updating or replacing the driver is usually the better remedy. Microsoft's Interrupt-Affinity Policy Tool is documented for Windows Server 2008 and 2008 R2, with no current support statement for Windows 10 or 11, so treat guides built around it with caution.
What can go wrong
Restricting a device's interrupts to cores that are already busy, or to a single core, can increase latency rather than reduce it. Because the values sit under a hardware instance key, reinstalling the driver or moving the device to another slot can create a new instance that no longer carries the setting.
How to undo it
Delete DevicePolicy and AssignmentSetOverride from the device's Affinity Policy key, then restart the device or the PC. Find the key from the device's Details tab in Device Manager, under Device instance path.
Create a System Restore Point before editing the registry. Every setting on this page is reversible, but a restore point is the difference between undoing one change and reinstalling Windows.
Which Windows versions this applies to
Windows 10 and Windows 11, for devices whose drivers honour the affinity policy.
Interrupt affinity policy (DevicePolicy): common questions
What does IrqPolicySpecifiedProcessors do?
It restricts a device's interrupts to the processors selected in the AssignmentSetOverride bitmask. It only takes effect when DevicePolicy is set to 4, and Windows applies it when the device is restarted.
Does changing interrupt affinity reduce input delay?
Not as a rule. It can help when one device's driver has been shown to delay a core that matters, but Microsoft recommends the default policy, and moving interrupts onto a busy core can make latency worse.
Do I need to restart after changing a device's interrupt affinity?
Yes. Windows passes the policy to the driver when the device's resources are assigned, so the device must restart. Restarting the whole PC is the simplest way to be sure the change is in effect.
Is Microsoft's Interrupt-Affinity Policy Tool still supported?
Microsoft documents it for Windows Server 2008 and 2008 R2 and publishes no current support statement for Windows 10 or 11, so it is best treated as a legacy tool.
Sources
Related settings
Guides that cover this setting
Every change JINSHI PC Tweaks can make is listed on the complete tweak list, and the product itself is described on PC Tweaks for gaming.
If you would rather not do it by hand
JINSHI Tweaks: all four apps
£29.99one-time
Get all four appsEvery change can be reversed on its own. No subscription, nothing to renew.