Effective with version 3.0, Windows CE offers 256 priority levels, with zero being the highest priority and 255 being the lowest priority.
The original eight priority levels for Windows CE 2.12 and previous versions are mapped to levels 255 through 248, which are defined for application threads.
Many higher priority levels (247 through zero) are assigned to real-time applications, drivers, and system processes.
To prevent random applications from degrading the performance of the system, an OEM can restrict all priority levels between 247 and zero to OEM-specified applications. (For information on your target device's available priority levels, consult the OEM.)
Applications and device drivers should use the CeGetThreadPriority and CeSetThreadPriority functions, instead of the legacy functions GetThreadPriority and SetThreadPriority. The legacy functions are still available with the same interfaces but the functions have access only to the original 8 priority levels.
Use CeSetThreadPriority and SetThreadPriority to assign a priority level to a thread.
Use CeGetThreadPriority and GetThreadPriority to retrieve the priority level of a thread.
The priority level system has four ranges, shown in the following table.
Range Description
0 through 96 Reserved for real-time above drivers.
97 through 152 Used by the default Windows CE-based device drivers.
153 through 247 Reserved for real-time below drivers.
248 through 255 Maps to non-real-time priorities.
For more information about the default priority levels associated with device drivers, see Real-Time Priority System Levels.