An attempt to increase process priority to the real-time priority
REALTIME_PRIORITY_CLASS may not set the PriorityClass to the expected
level.
Only accounts with the "Increase Scheduling Priority" permission can
increase the priority to real-time. Only Administrators and "Power Users"
have this permission by default.
Either run the program from an Administrator or Power User account, or
grant the Increase Scheduling Priority permission to any user group that
must run the program.
This behavior is by design.
The Increase Scheduling Priority permission can be granted by an
administrator to a user or group through the User Manager. To do this follow the steps below for your version of Windows NT:
Windows NT version 3.5 or 3.51:
- Open the "Administrative Tools" group in Program Manager.
- Run the User Manager application.
- Choose User Rights from the Policies menu.
- Select the Show Advanced User Rights check box.
- Select Increase Scheduling Priority from the drop-down list box.
- Choose the Add button to add users or groups to the list of entities that have this right.
Windows NT 4.0
- Open the "Administrative Tools" item under the "Programs" item in the Start Menu.
- Run the User Manager application.
- Choose User Rights from the Policies menu.
- Select the Show Advanced User Rights check box.
- Select Increase Scheduling Priority from the drop-down list box.
- Choose the Add button to add users or groups to the list of entities that have this right.
Windows 2000:
- Open the Administrative Tools menu under the "Programs" item in the Start Menu.
- Choose "Local Security Policy" in the Administrative Tools menu.
- In the left-pane, choose "User Rights Assignment".
- In the pane to the right, double-click "Increase scheduling priority".
- Click Add to add users or groups to the list of entities
that have this right.
Note that the call to SetPriorityClass() may return success even though the
priority was not set to REALTIME_PRIORITY_CLASS, because if you don't have
the Increase Scheduling Priority permission, a request for
REALTIME_PRIORITY_CLASS is interpreted as a request for the highest
priority class allowed in the current account. If it is important to know
the actual priority class that was set, use the GetPriorityClass()
function.