3

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.

Synetech
  • 69,547

2 Answers2

5

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.

Glorfindel
  • 4,158
shf301
  • 7,972
1

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: http://www.nirsoft.net/utils/shexview.html