1

I let my family members use my pc over rdp to play their flash-based games as their laptops overheat if they use them directly. I have it setup so I can use the pc at the same time as them. The pc has a quad core cpu and I would like to be able to assign one of those cores to the user logged in via RDP so that the other 3 cores are left alone. Is this possible?

They login via a specific user account setup for the purpose.

Thanks for any advice!

Dean Ward
  • 113

3 Answers3

2

The Windows function SetThreadAffinityMask allows you to set the processor/core affinity of a thread. So with this function you can instruct/force a thread to use one specific core.

To solve your problem, do the following:

  • Write an application that loops over all processes and checks the user
  • If the user of the process equals the username given as argument to the application:
    • loop over all threads
    • set the affinity to the first core

You can give this application a nice windowing front-end, and run it automatically as soon as you log in to your computer.

You could also make this application a Windows service, and have it run automatically if the computer boots up.

Patrick
  • 334
0

There are a number of things here. Simplest solution would be to get it working on the laptop would it not?

  • Perhaps there is a problem with the laptop hardware, the fan?
  • You could try underclocking the laptop to reduce the running temperature.

If you're set on the RDP idea you could try:

  • reducing the process priority for rdp in the task manager. (I don't have windows 7, so I'm unsure whether this runs as a seperate process.) I think this should have a similar effect to what you're after. If rdp is running as a service, there probably is a way to reduce it's priority, but it isn't as straight forward I would imagine.
  • you could also try changing the process affinity in the task manager, I think using this you could assign rdp to exactly one core, but, again, it depends on whether rdp is a service as to how easy it would be to do this.
kellpossible
  • 101
  • 2
0

This is not a simple solution but the best way to completely split the computer in to two (ore more) computers using VM (Virtual machine) software. This will solve your problem might solve future related issues as well (Junk, viruses...)

With VM installed you can choose how much CPU processing time each computer will get. This selection also works for other resources like memory, disk space, network bandwidth...

If you choose to do this, better make sure that your CPU supports Virtualization.

Gilad
  • 101