Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I’m experiencing a strange issue in Windows XP. On bootup, any processes spawned by the system (services, autorun programs, etc.) are set to use both of the CPU’s threads. Explorer however, and any programs it spawns are set to use only “CPU 0”.

I have tried setting the affinity of explorer.exe to both threads, but it still uses only one on the next boot. Somewhere, sometime, somehow, the setting for explorer.exe was modified and does not seem to want to be changed back/saved.

Don’t bother mentioning msconfig (this is XP), or Task Manager or Process Lasso because I am not asking about setting the affinity during runtime, I’m asking where Windows stores the affinity settings.

share|improve this question
CPU 0 is usually for core #1 and try getting Core Temp application to monitor cpu temps, usage and Freq. – FiKo Aug 12 '12 at 0:08
@ProFiKo, not that it matters or makes a difference, but there are not cores in this, it’s a P4 HT. And I’m not asking about any of the information you mentioned; I’m trying to find out where Windows saves the setting (as I said repeatedly). – Synetech Aug 12 '12 at 0:12
Are you with 32Bit or 64Bit version? – Zuul Aug 12 '12 at 0:15
@Zuul, 32-bit; but that shouldn’t matter (other than the root-branch in the registry). – Synetech Aug 12 '12 at 0:22 - options there for setting the affinity – SeanC Aug 14 '12 at 18:59
up vote 5 down vote accepted

It could be a third party shell extension like in this blog post. Some other application on your machine installed an extension that runs inside of explorer and it is setting the CPU affinity.

I don't believe that there is anything built into Windows that saves CPU affinity settings.

share|improve this answer
Correct. Affinity settings are normally automatically set to the parent process's affinity, and initial system processes always have full affinity whereas initial user processes have affinity depending on the user's quota settings (usually full). There must be a third-party application somewhere modifying the defaults immediately after boot. – Thomas Aug 12 '12 at 2:16
Nice link, it’s exactly what I’m looking for. I’ll try disabling everything to see if it still happens. > I don't believe that there is anything built into Windows that saves CPU affinity settings. That’s what I figured; I can find no information about affinity being persistent (though perhaps there should be). – Synetech Aug 12 '12 at 2:55

CPU affinity can be set in a .exe. There was a program called imagecfg that came with an old version of the Resource Kit. It allowed you to set the affinity mask on an exe, or set it to "uniprocessor" (which meant "pick any processor"), set the large address aware flag, and other things.

This is not done by default for any exe's supplied with Windows. But something you installed might have done this to explorer.exe.

As shf301 said, it is also possible that a shell extension has done this to your instance of explorer. You can peruse (and experimentally disable) your shell extensions with the ShellExView tool from NirSoft:

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .